Skip to content

Commit 8c97403

Browse files
authored
Merge pull request #48 from SEONGGYU96/release/v1.0.0-beta
Release/v1.0.0 beta
2 parents 0cbb1e0 + c2d01f3 commit 8c97403

File tree

233 files changed

+11360
-210
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

233 files changed

+11360
-210
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,4 +134,7 @@ fabric.properties
134134

135135
### AndroidStudio Patch ###
136136

137-
!/gradle/wrapper/gradle-wrapper.jar
137+
!/gradle/wrapper/gradle-wrapper.jar
138+
139+
# Secret string class ex.url
140+
app/src/main/java/org/sopt/santamanitto/SecretString.kt

app/build.gradle

Lines changed: 84 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
plugins {
22
id 'com.android.application'
33
id 'kotlin-android'
4+
id 'kotlin-kapt'
5+
id 'com.google.gms.google-services'
6+
id 'dagger.hilt.android.plugin'
7+
id 'androidx.navigation.safeargs.kotlin'
48
}
59

610
android {
@@ -11,22 +15,64 @@ android {
1115
applicationId "org.sopt.santamanitto"
1216
minSdkVersion 23
1317
targetSdkVersion 30
14-
versionCode 1
15-
versionName "1.0"
18+
versionCode 2
19+
versionName "1.0.0"
1620

1721
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1822
}
1923

24+
android {
25+
sourceSets {
26+
String sharedTestDir = 'src/sharedTest/java'
27+
test {
28+
java.srcDir sharedTestDir
29+
}
30+
androidTest {
31+
java.srcDir sharedTestDir
32+
}
33+
}
34+
}
35+
2036
buildTypes {
37+
debug {
38+
minifyEnabled false
39+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
40+
testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguardTest-rules.pro'
41+
}
42+
2143
release {
2244
minifyEnabled false
23-
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
45+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
46+
testProguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguardTest-rules.pro'
47+
}
48+
}
49+
50+
flavorDimensions "default"
51+
52+
productFlavors {
53+
mock {
54+
dimension "default"
55+
applicationIdSuffix = ".mock"
56+
}
57+
prod {
58+
dimension "default"
59+
}
60+
}
61+
62+
android.variantFilter { variant ->
63+
if (variant.buildType.name == 'release'
64+
&& variant.getFlavors().get(0).name == 'mock') {
65+
variant.setIgnore(true)
2466
}
2567
}
68+
69+
dataBinding { enabled = true }
70+
2671
compileOptions {
2772
sourceCompatibility JavaVersion.VERSION_1_8
2873
targetCompatibility JavaVersion.VERSION_1_8
2974
}
75+
3076
kotlinOptions {
3177
jvmTarget = '1.8'
3278
}
@@ -39,7 +85,41 @@ dependencies {
3985
implementation 'androidx.appcompat:appcompat:1.2.0'
4086
implementation 'com.google.android.material:material:1.2.1'
4187
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
42-
testImplementation 'junit:junit:4.+'
88+
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.2'
89+
implementation 'androidx.navigation:navigation-ui-ktx:2.3.2'
90+
testImplementation 'junit:junit:4.13.1'
91+
testImplementation 'org.mockito:mockito-core:2.24.5'
92+
testImplementation 'org.mockito:mockito-inline:2.13.0'
4393
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
4494
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
95+
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
96+
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
97+
implementation 'androidx.recyclerview:recyclerview:1.1.0'
98+
implementation "androidx.cardview:cardview:1.0.0"
99+
100+
//firebase
101+
implementation platform('com.google.firebase:firebase-bom:26.2.0')
102+
103+
//lifecycle
104+
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"
105+
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
106+
107+
//hilt
108+
implementation "com.google.dagger:hilt-android:$hilt_version"
109+
implementation "androidx.hilt:hilt-lifecycle-viewmodel:$hiltViewModelVersion"
110+
kapt "com.google.dagger:hilt-android-compiler:$hilt_version"
111+
kapt "androidx.hilt:hilt-compiler:$hiltViewModelVersion"
112+
113+
//retrofit2
114+
implementation "com.squareup.okhttp3:logging-interceptor:$okhttpLoggingVersion"
115+
implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion"
116+
implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
117+
}
118+
119+
kapt {
120+
correctErrorTypes true
121+
}
122+
123+
hilt {
124+
enableTransformForLocalTests = true
45125
}

app/src/main/AndroidManifest.xml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,28 @@
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="org.sopt.santamanitto">
44

5+
<uses-permission android:name="android.permission.INTERNET" />
6+
57
<application
8+
android:name=".SantaManittoApplication"
69
android:allowBackup="true"
710
android:icon="@mipmap/ic_launcher"
811
android:label="@string/app_name"
912
android:roundIcon="@mipmap/ic_launcher_round"
1013
android:supportsRtl="true"
11-
android:theme="@style/Theme.SantaManito">
12-
<activity android:name=".MainActivity">
14+
android:theme="@style/AppTheme.Base"
15+
android:usesCleartextTraffic="true">
16+
<activity android:name=".room.manittoroom.ManittoRoomActivity" />
17+
<activity android:name=".room.create.CreateRoomActivity" />
18+
<activity android:name=".user.signin.SignInActivity" />
19+
<activity android:name=".SplashActivity">
1320
<intent-filter>
1421
<action android:name="android.intent.action.MAIN" />
1522

1623
<category android:name="android.intent.category.LAUNCHER" />
1724
</intent-filter>
1825
</activity>
26+
<activity android:name=".main.MainActivity" />
1927
</application>
2028

2129
</manifest>
24.9 KB
Loading

app/src/main/java/org/sopt/santamanitto/MainActivity.kt

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.sopt.santamanitto
2+
3+
import android.view.View
4+
import org.sopt.santamanitto.util.MetricsUtil
5+
6+
fun Float.toDP(): Float {
7+
return MetricsUtil.convertPixelsToDp(this, null)
8+
}
9+
10+
fun Float.toPixel() : Float {
11+
return MetricsUtil.convertDpToPixel(this, null)
12+
}
13+
14+
fun View.getDpFromPx(px: Float): Float {
15+
return MetricsUtil.convertPixelsToDp(px, this.context)
16+
}
17+
18+
fun View.getPxFromDp(dp: Float): Float {
19+
return MetricsUtil.convertDpToPixel(dp, this.context)
20+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.sopt.santamanitto
2+
3+
import androidx.lifecycle.LiveData
4+
import androidx.lifecycle.MutableLiveData
5+
import androidx.lifecycle.ViewModel
6+
7+
open class NetworkViewModel: ViewModel() {
8+
private var loadingCount = 0
9+
10+
protected val _networkErrorOccur = MutableLiveData(false)
11+
val networkErrorOccur : LiveData<Boolean>
12+
get() = _networkErrorOccur
13+
14+
protected val _isLoading = MutableLiveData(true)
15+
val isLoading: LiveData<Boolean>
16+
get() = _isLoading
17+
18+
protected fun startLoading() {
19+
_isLoading.value = true
20+
loadingCount++
21+
}
22+
23+
protected fun stopLoading() {
24+
loadingCount--
25+
if (loadingCount == 0) {
26+
_isLoading.value = false
27+
}
28+
}
29+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package org.sopt.santamanitto
2+
3+
import android.app.Application
4+
import androidx.appcompat.app.AppCompatDelegate
5+
import dagger.hilt.android.HiltAndroidApp
6+
7+
@HiltAndroidApp
8+
class SantaManittoApplication: Application() {
9+
10+
override fun onCreate() {
11+
super.onCreate()
12+
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
13+
}
14+
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package org.sopt.santamanitto
2+
3+
import android.content.Intent
4+
import android.os.Bundle
5+
import android.os.Handler
6+
import android.os.Looper
7+
import androidx.appcompat.app.AppCompatActivity
8+
import androidx.databinding.DataBindingUtil.*
9+
import dagger.hilt.android.AndroidEntryPoint
10+
import org.sopt.santamanitto.databinding.ActivitySplashBinding
11+
import org.sopt.santamanitto.main.MainActivity
12+
import org.sopt.santamanitto.user.signin.SignInActivity
13+
import org.sopt.santamanitto.user.data.LoginUser
14+
import org.sopt.santamanitto.user.data.source.UserDataSource
15+
import javax.inject.Inject
16+
import javax.inject.Named
17+
18+
@AndroidEntryPoint
19+
class SplashActivity : AppCompatActivity() {
20+
21+
companion object {
22+
private const val SPLASH_DELAY = 1000L
23+
}
24+
25+
@Inject
26+
@Named("cached")
27+
lateinit var userCachedDataSource: UserDataSource
28+
29+
@Inject
30+
@Named("serialNumber")
31+
lateinit var serialNumber: String
32+
33+
override fun onCreate(savedInstanceState: Bundle?) {
34+
super.onCreate(savedInstanceState)
35+
setContentView<ActivitySplashBinding>(this, R.layout.activity_splash)
36+
37+
Handler(Looper.getMainLooper()).postDelayed({
38+
startNextActivity()
39+
}, SPLASH_DELAY)
40+
}
41+
42+
private fun startNextActivity() {
43+
userCachedDataSource.login(serialNumber, object: UserDataSource.LoginCallback {
44+
override fun onLoginSuccess(loginUser: LoginUser) {
45+
startActivity(Intent(this@SplashActivity, MainActivity::class.java))
46+
finish()
47+
}
48+
49+
override fun onLoginFailed() {
50+
startActivity(Intent(this@SplashActivity, SignInActivity::class.java))
51+
finish()
52+
}
53+
})
54+
}
55+
}

0 commit comments

Comments
 (0)