From 29c51ec372f138e61db295dc8a3a4baaac193b45 Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 8 Jan 2024 15:10:29 +0900 Subject: [PATCH 01/25] =?UTF-8?q?[mod]=20#233=20.gitignore=20=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EB=82=B4=EC=9A=A9=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5888efe4..303541d3 100644 --- a/.gitignore +++ b/.gitignore @@ -120,7 +120,7 @@ captures/ *.pem # Google Services (e.g. APIs or Firebase) -# google-services.json +google-services.json # Android Patch gen-external-apklibs From 8467157b5c77d4094adaebd0e2c7e416924eceea Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 8 Jan 2024 15:15:00 +0900 Subject: [PATCH 02/25] =?UTF-8?q?[chore]=20#233=20=EC=9D=B8=EC=95=B1=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?=EB=94=94=ED=8E=9C=EB=8D=98=EC=8B=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 10 +++++++--- buildSrc/src/main/java/Dependencies.kt | 16 +++++++++------- buildSrc/src/main/java/Versions.kt | 8 +++++--- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 752698b1..9f8738d2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -117,13 +117,18 @@ dependencies { androidTestImplementation(espresso) } - implementation(MaterialDesignDependencies.materialDesign) - KaptDependencies.run { kapt(hiltAndroidCompiler) kapt(hiltWorkManagerCompiler) } + GoogleDependencies.run { + implementation(materialDesign) + implementation(ossLicense) + implementation(inAppUpdate) + implementation(inAppUpdateKtx) + } + ThirdPartyDependencies.run { implementation(coil) implementation(platform(okHttpBom)) @@ -132,7 +137,6 @@ dependencies { implementation(retrofit) implementation(retrofitJsonConverter) implementation(timber) - implementation(ossLicense) implementation(progressView) implementation(balloon) implementation(lottie) diff --git a/buildSrc/src/main/java/Dependencies.kt b/buildSrc/src/main/java/Dependencies.kt index e0f1e1b2..c7a35cec 100644 --- a/buildSrc/src/main/java/Dependencies.kt +++ b/buildSrc/src/main/java/Dependencies.kt @@ -41,16 +41,20 @@ object TestDependencies { const val espresso = "androidx.test.espresso:espresso-core:${Testing.espressoVersion}" } -object MaterialDesignDependencies { - const val materialDesign = - "com.google.android.material:material:${Versions.materialDesignVersion}" -} - object KaptDependencies { const val hiltAndroidCompiler = "com.google.dagger:hilt-android-compiler:${Versions.hiltVersion}" const val hiltWorkManagerCompiler = "androidx.hilt:hilt-compiler:1.0.0" } +object GoogleDependencies { + const val materialDesign = + "com.google.android.material:material:${Versions.materialDesignVersion}" + const val ossLicense = + "com.google.android.gms:play-services-oss-licenses:${Versions.ossVersion}" + const val inAppUpdate = "com.google.android.play:app-update:${Versions.inAppUpdateVersion}" + const val inAppUpdateKtx = "com.google.android.play:app-update-ktx:${Versions.inAppUpdateVersion}" +} + object ThirdPartyDependencies { const val coil = "io.coil-kt:coil:${Versions.coilVersion}" const val okHttpBom = "com.squareup.okhttp3:okhttp-bom:${Versions.okHttpVersion}" @@ -60,8 +64,6 @@ object ThirdPartyDependencies { const val retrofitJsonConverter = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:${Versions.kotlinSerializationConverterVersion}" const val timber = "com.jakewharton.timber:timber:${Versions.timberVersion}" - const val ossLicense = - "com.google.android.gms:play-services-oss-licenses:${Versions.ossVersion}" const val progressView = "com.github.skydoves:progressview:${Versions.progressViewVersion}" const val balloon = "com.github.skydoves:balloon:${Versions.balloonVersion}" const val lottie = "com.airbnb.android:lottie:${Versions.lottieVersion}" diff --git a/buildSrc/src/main/java/Versions.kt b/buildSrc/src/main/java/Versions.kt index b79a6f00..eac9f9ae 100644 --- a/buildSrc/src/main/java/Versions.kt +++ b/buildSrc/src/main/java/Versions.kt @@ -9,7 +9,6 @@ object Versions { const val coreKtxVersion = "1.10.1" const val appCompatVersion = "1.6.1" - const val materialDesignVersion = "1.6.1" const val constraintLayoutVersion = "2.1.4" const val swipeRefreshLayoutVersion = "1.1.0" const val appStartUpVersion = "1.1.1" @@ -21,13 +20,16 @@ object Versions { const val pagingVersion = "3.1.1" const val securityVersion = "1.0.0" const val lifecycleVersion = "2.6.1" - const val ossPluginVersion = "0.10.4" - const val ossVersion = "17.0.0" const val splashVersion = "1.0.1" const val workManagerVersion = "2.8.1" const val exifVersion = "1.3.2" const val dataStoreVersion = "1.0.0" + const val materialDesignVersion = "1.6.1" + const val ossPluginVersion = "0.10.4" + const val ossVersion = "17.0.0" + const val inAppUpdateVersion = "2.1.0" + const val coilVersion = "2.4.0" const val retrofitVersion = "2.9.0" const val kotlinSerializationConverterVersion = "1.0.0" From 454205fc09876b30f7dc1263f5de9522ba5eff8a Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 8 Jan 2024 17:34:28 +0900 Subject: [PATCH 03/25] =?UTF-8?q?[feat]=20#233=20=EC=A6=89=EC=8B=9C=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EC=9A=94=EC=B2=AD?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EC=BD=94=EB=93=9C=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/splash/SplashActivity.kt | 72 +++++++++++++++++-- 1 file changed, 65 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index 110b47f4..b219e3bb 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -5,9 +5,17 @@ import android.content.Intent import android.os.Build import android.os.Bundle import android.view.WindowInsetsController +import androidx.activity.result.contract.ActivityResultContracts import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.ViewCompat import androidx.lifecycle.lifecycleScope +import com.google.android.gms.tasks.Task +import com.google.android.play.core.appupdate.AppUpdateInfo +import com.google.android.play.core.appupdate.AppUpdateManager +import com.google.android.play.core.appupdate.AppUpdateManagerFactory +import com.google.android.play.core.appupdate.AppUpdateOptions +import com.google.android.play.core.install.model.AppUpdateType +import com.google.android.play.core.install.model.UpdateAvailability import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.delay import kotlinx.coroutines.flow.firstOrNull @@ -19,6 +27,7 @@ import org.go.sopt.winey.presentation.main.MainActivity import org.go.sopt.winey.presentation.onboarding.guide.GuideActivity import org.go.sopt.winey.util.binding.BindingActivity import org.go.sopt.winey.util.context.colorOf +import timber.log.Timber import javax.inject.Inject @AndroidEntryPoint @@ -26,6 +35,17 @@ class SplashActivity : BindingActivity(R.layout.activity_ @Inject lateinit var dataStoreRepository: DataStoreRepository + private val appUpdateManager by lazy { AppUpdateManagerFactory.create(this) } + private val resultLauncher = + registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result -> + if (result.resultCode == RESULT_OK) { + checkAutoLogin() + } else { + Timber.e("Update flow failed! Result code: " + result.resultCode) + checkAppUpdateInfo() + } + } + override fun onCreate(savedInstanceState: Bundle?) { installSplashScreen() super.onCreate(savedInstanceState) @@ -33,7 +53,21 @@ class SplashActivity : BindingActivity(R.layout.activity_ setUpStatusBar() lifecycleScope.launch { delay(DELAY_TIME) - checkAutoLogin() + checkAppUpdateInfo() + } + } + + override fun onResume() { + super.onResume() + + // 백그라운드에서 포그라운드로 돌아왔는데 아직 설치하고 있는 경우 + appUpdateManager.appUpdateInfo.addOnSuccessListener { appUpdateInfo -> + if (appUpdateInfo.updateAvailability() + == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS + ) { + // 즉시 업데이트 다시 요청 보내기 + requestImmediateUpdate(appUpdateInfo) + } } } @@ -53,12 +87,36 @@ class SplashActivity : BindingActivity(R.layout.activity_ } } - private suspend fun checkAutoLogin() { - val accessToken = dataStoreRepository.getAccessToken().firstOrNull() - if (accessToken.isNullOrBlank()) { - navigateTo() - } else { - navigateTo() + private fun checkAppUpdateInfo() { + val appUpdateInfoTask: Task = appUpdateManager.appUpdateInfo + + // 설치 가능한 업데이트 버전이 있고, 즉시 업데이트가 허용된 경우 + appUpdateInfoTask.addOnSuccessListener { appUpdateInfo -> + if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE + && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE) + ) { + // todo: 업데이트 요청 다이얼로그 띄우기 + + } + } + } + + private fun requestImmediateUpdate(appUpdateInfo: AppUpdateInfo) { + appUpdateManager.startUpdateFlowForResult( + appUpdateInfo, + resultLauncher, + AppUpdateOptions.newBuilder(AppUpdateType.IMMEDIATE).build() + ) + } + + private fun checkAutoLogin() { + lifecycleScope.launch { + val accessToken = dataStoreRepository.getAccessToken().firstOrNull() + if (accessToken.isNullOrBlank()) { + navigateTo() + } else { + navigateTo() + } } } From 83b27063feb97cb486508b6cf9fc86afcb78ad65 Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 8 Jan 2024 17:47:05 +0900 Subject: [PATCH 04/25] =?UTF-8?q?[add]=20#233=20=EC=A6=89=EC=8B=9C=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=EC=9A=94=EC=B2=AD?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../winey/presentation/splash/SplashActivity.kt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index b219e3bb..47f088fb 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -11,7 +11,6 @@ import androidx.core.view.ViewCompat import androidx.lifecycle.lifecycleScope import com.google.android.gms.tasks.Task import com.google.android.play.core.appupdate.AppUpdateInfo -import com.google.android.play.core.appupdate.AppUpdateManager import com.google.android.play.core.appupdate.AppUpdateManagerFactory import com.google.android.play.core.appupdate.AppUpdateOptions import com.google.android.play.core.install.model.AppUpdateType @@ -36,7 +35,7 @@ class SplashActivity : BindingActivity(R.layout.activity_ lateinit var dataStoreRepository: DataStoreRepository private val appUpdateManager by lazy { AppUpdateManagerFactory.create(this) } - private val resultLauncher = + private val appUpdateResultLauncher = registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { result -> if (result.resultCode == RESULT_OK) { checkAutoLogin() @@ -65,8 +64,8 @@ class SplashActivity : BindingActivity(R.layout.activity_ if (appUpdateInfo.updateAvailability() == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS ) { - // 즉시 업데이트 다시 요청 보내기 - requestImmediateUpdate(appUpdateInfo) + // 즉시 업데이트 다시 요청하기 + requestImmediateAppUpdate(appUpdateInfo) } } } @@ -95,16 +94,16 @@ class SplashActivity : BindingActivity(R.layout.activity_ if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE) ) { - // todo: 업데이트 요청 다이얼로그 띄우기 - + // 즉시 업데이트 요청하기 + requestImmediateAppUpdate(appUpdateInfo) } } } - private fun requestImmediateUpdate(appUpdateInfo: AppUpdateInfo) { + private fun requestImmediateAppUpdate(appUpdateInfo: AppUpdateInfo) { appUpdateManager.startUpdateFlowForResult( appUpdateInfo, - resultLauncher, + appUpdateResultLauncher, AppUpdateOptions.newBuilder(AppUpdateType.IMMEDIATE).build() ) } From 5454eb3f67ac2387cfa890ecaa54d00277da8ca5 Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 8 Jan 2024 17:48:20 +0900 Subject: [PATCH 05/25] =?UTF-8?q?[mod]=20#233=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=EC=99=80=20=EB=B2=84=EC=A0=84=20=EC=9D=B4?= =?UTF-8?q?=EB=A6=84=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/release/output-metadata.json | 4 ++-- buildSrc/src/main/java/DefaultConfig.kt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 9747a9be..ee49bfb5 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,8 +11,8 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 17, - "versionName": "1.0.1", + "versionCode": 18, + "versionName": "1.1.0", "outputFile": "app-release.apk" } ], diff --git a/buildSrc/src/main/java/DefaultConfig.kt b/buildSrc/src/main/java/DefaultConfig.kt index b4eca1c7..f660108f 100644 --- a/buildSrc/src/main/java/DefaultConfig.kt +++ b/buildSrc/src/main/java/DefaultConfig.kt @@ -3,6 +3,6 @@ object DefaultConfig { const val compileSdk = 33 const val minSdk = 28 const val targetSdk = 33 - const val versionCode = 17 - const val versionName = "1.0.1" + const val versionCode = 18 + const val versionName = "1.1.0" } From 3c5b44dc725e515afc234a3186d8998600e98818 Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 15 Jan 2024 16:06:06 +0900 Subject: [PATCH 06/25] =?UTF-8?q?[chore]=20#233=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EC=9A=94=EC=B2=AD=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/splash/SplashActivity.kt | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index 95f7f3c2..f650b736 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -65,7 +65,7 @@ class SplashActivity : BindingActivity(R.layout.activity_ == UpdateAvailability.DEVELOPER_TRIGGERED_UPDATE_IN_PROGRESS ) { // 즉시 업데이트 다시 요청하기 - requestImmediateAppUpdate(appUpdateInfo) + requestImmediateUpdate(appUpdateInfo) } } } @@ -95,12 +95,12 @@ class SplashActivity : BindingActivity(R.layout.activity_ && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE) ) { // 즉시 업데이트 요청하기 - requestImmediateAppUpdate(appUpdateInfo) + requestImmediateUpdate(appUpdateInfo) } } } - private fun requestImmediateAppUpdate(appUpdateInfo: AppUpdateInfo) { + private fun requestImmediateUpdate(appUpdateInfo: AppUpdateInfo) { appUpdateManager.startUpdateFlowForResult( appUpdateInfo, appUpdateResultLauncher, @@ -108,17 +108,19 @@ class SplashActivity : BindingActivity(R.layout.activity_ ) } - private suspend fun checkAutoLogin() { - val accessToken = dataStoreRepository.getAccessToken().firstOrNull() - if (accessToken.isNullOrBlank()) { - navigateTo() - } else { - navigateToMainScreen() + private fun checkAutoLogin() { + lifecycleScope.launch { + val accessToken = dataStoreRepository.getAccessToken().firstOrNull() + if (accessToken.isNullOrBlank()) { + navigateToGuideScreen() + } else { + navigateToMainScreen() + } } } - private inline fun navigateTo() { - Intent(this, T::class.java).apply { + private fun navigateToGuideScreen() { + Intent(this, GuideActivity::class.java).apply { addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK) startActivity(this) } @@ -136,8 +138,8 @@ class SplashActivity : BindingActivity(R.layout.activity_ } companion object { - private const val KEY_FEED_ID = "feedId" private const val KEY_NOTI_TYPE = "notiType" + private const val KEY_FEED_ID = "feedId" private const val DELAY_TIME = 1500L } } From 4cf3aa90979aa376e40e4d30aee7392caaedbe84 Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 15 Jan 2024 16:08:12 +0900 Subject: [PATCH 07/25] =?UTF-8?q?[chore]=20#233=20appUpdateInfo=20?= =?UTF-8?q?=EA=B0=9D=EC=B2=B4=20=EB=94=B0=EB=A1=9C=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=ED=95=98=EC=A7=80=20=EC=95=8A=EA=B3=A0=20=EB=B0=94=EB=A1=9C=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9=ED=95=98=EB=8F=84=EB=A1=9D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/go/sopt/winey/presentation/splash/SplashActivity.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index f650b736..565b45e9 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -87,10 +87,8 @@ class SplashActivity : BindingActivity(R.layout.activity_ } private fun checkAppUpdateInfo() { - val appUpdateInfoTask: Task = appUpdateManager.appUpdateInfo - // 설치 가능한 업데이트 버전이 있고, 즉시 업데이트가 허용된 경우 - appUpdateInfoTask.addOnSuccessListener { appUpdateInfo -> + appUpdateManager.appUpdateInfo.addOnSuccessListener { appUpdateInfo -> if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE) ) { From d6f224ec497743bd06371568d234cb3289b4acc3 Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 15 Jan 2024 16:51:35 +0900 Subject: [PATCH 08/25] =?UTF-8?q?[chore]=20#233=20=EB=82=B4=EB=B6=80=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=EB=A5=BC=20=EC=9C=84=ED=95=B4=20?= =?UTF-8?q?=EB=B2=84=EC=A0=84=20=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/release/output-metadata.json | 2 +- buildSrc/src/main/java/DefaultConfig.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index ee49bfb5..d74e6210 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,7 +11,7 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 18, + "versionCode": 19, "versionName": "1.1.0", "outputFile": "app-release.apk" } diff --git a/buildSrc/src/main/java/DefaultConfig.kt b/buildSrc/src/main/java/DefaultConfig.kt index f660108f..c7abd7dc 100644 --- a/buildSrc/src/main/java/DefaultConfig.kt +++ b/buildSrc/src/main/java/DefaultConfig.kt @@ -3,6 +3,6 @@ object DefaultConfig { const val compileSdk = 33 const val minSdk = 28 const val targetSdk = 33 - const val versionCode = 18 + const val versionCode = 19 const val versionName = "1.1.0" } From ba1bae7d4af038dd88e95def5303bac1b3d45eef Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 15 Jan 2024 16:53:08 +0900 Subject: [PATCH 09/25] =?UTF-8?q?[mod]=20#233=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EA=B0=80=EB=8A=A5=ED=95=9C=20=EC=83=81?= =?UTF-8?q?=ED=83=9C=EA=B0=80=20=EC=95=84=EB=8B=90=20=EB=95=8C=EB=8A=94=20?= =?UTF-8?q?=EC=9E=90=EB=8F=99=20=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EB=8F=99=ED=95=98?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/go/sopt/winey/presentation/splash/SplashActivity.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index 565b45e9..faffc54f 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -92,8 +92,9 @@ class SplashActivity : BindingActivity(R.layout.activity_ if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE) ) { - // 즉시 업데이트 요청하기 requestImmediateUpdate(appUpdateInfo) + } else { + checkAutoLogin() } } } From b955b3b855ff0d016ee8ccf1ca85e908c5d06bb2 Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 15 Jan 2024 17:13:11 +0900 Subject: [PATCH 10/25] =?UTF-8?q?[del]=20#233=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20=EC=9E=84=ED=8F=AC?= =?UTF-8?q?=ED=8A=B8=EB=AC=B8=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/go/sopt/winey/presentation/splash/SplashActivity.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index faffc54f..1c998e6e 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -1,6 +1,5 @@ package org.go.sopt.winey.presentation.splash -import android.app.Activity import android.content.Intent import android.os.Build import android.os.Bundle @@ -9,7 +8,6 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.ViewCompat import androidx.lifecycle.lifecycleScope -import com.google.android.gms.tasks.Task import com.google.android.play.core.appupdate.AppUpdateInfo import com.google.android.play.core.appupdate.AppUpdateManagerFactory import com.google.android.play.core.appupdate.AppUpdateOptions From 1e5da9105b7ffbee652e2dcbcc5608c0beba179d Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 15 Jan 2024 22:03:30 +0900 Subject: [PATCH 11/25] =?UTF-8?q?[chore]=20#233=20=EB=82=B4=EB=B6=80=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=EB=A5=BC=20=EC=9C=84=ED=95=B4=20?= =?UTF-8?q?=EB=B2=84=EC=A0=84=20=EC=BD=94=EB=93=9C=20=EC=97=85=EA=B7=B8?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/release/output-metadata.json | 2 +- buildSrc/src/main/java/DefaultConfig.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index d74e6210..f863ef1a 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,7 +11,7 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 19, + "versionCode": 20, "versionName": "1.1.0", "outputFile": "app-release.apk" } diff --git a/buildSrc/src/main/java/DefaultConfig.kt b/buildSrc/src/main/java/DefaultConfig.kt index c7abd7dc..8fab1f97 100644 --- a/buildSrc/src/main/java/DefaultConfig.kt +++ b/buildSrc/src/main/java/DefaultConfig.kt @@ -3,6 +3,6 @@ object DefaultConfig { const val compileSdk = 33 const val minSdk = 28 const val targetSdk = 33 - const val versionCode = 19 + const val versionCode = 20 const val versionName = "1.1.0" } From 4597453b0ed957fa2279677cdd8603d624a93697 Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 15 Jan 2024 22:10:03 +0900 Subject: [PATCH 12/25] =?UTF-8?q?[del]=20#229=20ActivityLifecycleHandler?= =?UTF-8?q?=20=ED=81=B4=EB=9E=98=EC=8A=A4=EC=97=90=EC=84=9C=20=EB=B6=88?= =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20=EC=83=9D=EC=84=B1=EC=9E=90=20?= =?UTF-8?q?=EC=9D=B8=EC=9E=90=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/go/sopt/winey/ActivityLifecycleHandler.kt | 3 +-- app/src/main/java/org/go/sopt/winey/WineyApplication.kt | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/go/sopt/winey/ActivityLifecycleHandler.kt b/app/src/main/java/org/go/sopt/winey/ActivityLifecycleHandler.kt index 562cab42..133f25e7 100644 --- a/app/src/main/java/org/go/sopt/winey/ActivityLifecycleHandler.kt +++ b/app/src/main/java/org/go/sopt/winey/ActivityLifecycleHandler.kt @@ -4,8 +4,7 @@ import android.app.Activity import android.app.Application import android.os.Bundle -class ActivityLifecycleHandler(private val application: Application) : - Application.ActivityLifecycleCallbacks { +class ActivityLifecycleHandler : Application.ActivityLifecycleCallbacks { override fun onActivityCreated(p0: Activity, p1: Bundle?) { } diff --git a/app/src/main/java/org/go/sopt/winey/WineyApplication.kt b/app/src/main/java/org/go/sopt/winey/WineyApplication.kt index b16dbd3d..6b8c0e72 100644 --- a/app/src/main/java/org/go/sopt/winey/WineyApplication.kt +++ b/app/src/main/java/org/go/sopt/winey/WineyApplication.kt @@ -14,7 +14,7 @@ class WineyApplication : Application() { setupTimber() setupKakaoSdk() preventDarkMode() - registerActivityLifecycleCallbacks(ActivityLifecycleHandler(this)) + registerActivityLifecycleCallbacks(ActivityLifecycleHandler()) } private fun setupTimber() { From 5d6e7a5003907f2b7e2c24f340066850feeca8b1 Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 15 Jan 2024 22:23:19 +0900 Subject: [PATCH 13/25] =?UTF-8?q?[add]=20#233=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EC=84=A4=EB=AA=85=20=EB=8B=A4=EC=9D=B4?= =?UTF-8?q?=EC=96=BC=EB=A1=9C=EA=B7=B8=20=ED=81=B4=EB=9E=98=EC=8A=A4,=20?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=95=84=EC=9B=83=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../splash/AppUpdateDialogFragment.kt | 21 +++++++++++++++++++ .../res/layout/fragment_app_update_dialog.xml | 13 ++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 app/src/main/java/org/go/sopt/winey/presentation/splash/AppUpdateDialogFragment.kt create mode 100644 app/src/main/res/layout/fragment_app_update_dialog.xml diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/AppUpdateDialogFragment.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/AppUpdateDialogFragment.kt new file mode 100644 index 00000000..f28025f9 --- /dev/null +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/AppUpdateDialogFragment.kt @@ -0,0 +1,21 @@ +package org.go.sopt.winey.presentation.splash + +import android.os.Bundle +import android.view.View +import org.go.sopt.winey.R +import org.go.sopt.winey.databinding.FragmentAppUpdateDialogBinding +import org.go.sopt.winey.util.binding.BindingDialogFragment + +class AppUpdateDialogFragment : + BindingDialogFragment(R.layout.fragment_app_update_dialog) { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + dialog?.setCanceledOnTouchOutside(false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + // todo: 업데이트 버튼 클릭 리스너 정의 + } +} diff --git a/app/src/main/res/layout/fragment_app_update_dialog.xml b/app/src/main/res/layout/fragment_app_update_dialog.xml new file mode 100644 index 00000000..7442b71d --- /dev/null +++ b/app/src/main/res/layout/fragment_app_update_dialog.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + From a50a5d225f5767734b5fbce5645ecb9c81f6804b Mon Sep 17 00:00:00 2001 From: leeeha Date: Tue, 16 Jan 2024 01:58:52 +0900 Subject: [PATCH 14/25] =?UTF-8?q?[ui]=20#233=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=20=EC=8B=A4=ED=8C=A8=20=EC=8B=9C=20=EB=9C=A8=EB=8A=94?= =?UTF-8?q?=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C=EA=B7=B8=20ui=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/drawable/img_app_update_saver.xml | 183 ++++++++++++++++++ .../res/layout/fragment_app_update_dialog.xml | 104 +++++++++- 2 files changed, 281 insertions(+), 6 deletions(-) create mode 100644 app/src/main/res/drawable/img_app_update_saver.xml diff --git a/app/src/main/res/drawable/img_app_update_saver.xml b/app/src/main/res/drawable/img_app_update_saver.xml new file mode 100644 index 00000000..b4039475 --- /dev/null +++ b/app/src/main/res/drawable/img_app_update_saver.xml @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_app_update_dialog.xml b/app/src/main/res/layout/fragment_app_update_dialog.xml index 7442b71d..a16038af 100644 --- a/app/src/main/res/layout/fragment_app_update_dialog.xml +++ b/app/src/main/res/layout/fragment_app_update_dialog.xml @@ -1,13 +1,105 @@ - - - - - + + android:layout_height="wrap_content" + android:paddingHorizontal="14dp" + android:paddingTop="20dp" + android:paddingBottom="16dp"> + + + + + + + + + + + + + + + + + + + + + From 4a4d297f756d64133fc52fd734f4033adf409a15 Mon Sep 17 00:00:00 2001 From: leeeha Date: Tue, 16 Jan 2024 02:05:54 +0900 Subject: [PATCH 15/25] =?UTF-8?q?[refactor]=20#233=20=EB=8B=A4=EC=9D=B4?= =?UTF-8?q?=EC=96=BC=EB=A1=9C=EA=B7=B8=EC=97=90=20=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=9E=90=EC=97=B4=20=EB=A6=AC?= =?UTF-8?q?=EC=86=8C=EC=8A=A4=20=EC=B6=94=EC=B6=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/res/layout/fragment_app_update_dialog.xml | 13 +++++++------ app/src/main/res/values/strings.xml | 7 +++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/layout/fragment_app_update_dialog.xml b/app/src/main/res/layout/fragment_app_update_dialog.xml index a16038af..384205e0 100644 --- a/app/src/main/res/layout/fragment_app_update_dialog.xml +++ b/app/src/main/res/layout/fragment_app_update_dialog.xml @@ -24,7 +24,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" - android:text="업데이트가 필요해요." + android:text="@string/update_dialog_title" android:textAppearance="@style/TextAppearance.WINEY.Headline_b_18_xl" app:layout_constraintEnd_toEndOf="@id/iv_update_saver" app:layout_constraintStart_toStartOf="@id/iv_update_saver" @@ -46,7 +46,7 @@ android:id="@+id/tv_update_guide_title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="업데이트가 잘 되지 않으시나요?" + android:text="@string/update_dialog_guide_title" android:textAppearance="@style/TextAppearance.WINEY.detail_m_13" android:textColor="@color/purple_400" app:layout_constraintEnd_toEndOf="parent" @@ -67,21 +67,21 @@ @@ -89,12 +89,13 @@ Can\'t loading winey feed list + + 업데이트가 필요해요. + 업데이트가 잘 되지 않으시나요? + • 위니를 삭제 후 재설치 해보세요. + • 위니 삭제 후 Google play 스토어를 강제 종료한 뒤, 재설치해 보세요. + • 설정 → 어플리케이션 → Google play 스토어 → 저장공간 → 데이터 삭제 및 캐시 삭제, 강제 종료 후 재시작하여 위니를 재설치해 보세요. + 업데이트하러 가기 From c7c4ee61bf42203066c82fc7f84a87c71bd6f458 Mon Sep 17 00:00:00 2001 From: leeeha Date: Tue, 16 Jan 2024 14:18:29 +0900 Subject: [PATCH 16/25] =?UTF-8?q?[feat]=20#233=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20=EC=83=9D=EC=84=B1=EC=9E=90=20=EB=B0=98=ED=99=98?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=ED=95=A8=EC=88=98=20=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../splash/AppUpdateDialogFragment.kt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/AppUpdateDialogFragment.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/AppUpdateDialogFragment.kt index f28025f9..d9b4a867 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/AppUpdateDialogFragment.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/AppUpdateDialogFragment.kt @@ -8,6 +8,8 @@ import org.go.sopt.winey.util.binding.BindingDialogFragment class AppUpdateDialogFragment : BindingDialogFragment(R.layout.fragment_app_update_dialog) { + private var onUpdateButtonClicked: () -> Unit = {} + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) dialog?.setCanceledOnTouchOutside(false) @@ -15,7 +17,20 @@ class AppUpdateDialogFragment : override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + initAppUpdateButtonClickListener() + } + + private fun initAppUpdateButtonClickListener() { + binding.btnUpdate.setOnClickListener { + onUpdateButtonClicked.invoke() + dismiss() + } + } - // todo: 업데이트 버튼 클릭 리스너 정의 + companion object { + fun newInstance(onUpdateButtonClicked: () -> Unit) = + AppUpdateDialogFragment().apply { + this.onUpdateButtonClicked = onUpdateButtonClicked + } } } From 594814088fd8e638baed6f54f77985b2a57d980e Mon Sep 17 00:00:00 2001 From: leeeha Date: Tue, 16 Jan 2024 14:19:54 +0900 Subject: [PATCH 17/25] =?UTF-8?q?[feat]=20#233=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EC=8B=A4=ED=8C=A8=ED=95=9C=20=EA=B2=BD?= =?UTF-8?q?=EC=9A=B0=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C=EA=B7=B8=20?= =?UTF-8?q?=EB=9D=84=EC=9A=B0=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/go/sopt/winey/presentation/splash/SplashActivity.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index 1c998e6e..7720b553 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -39,7 +39,9 @@ class SplashActivity : BindingActivity(R.layout.activity_ checkAutoLogin() } else { Timber.e("Update flow failed! Result code: " + result.resultCode) - checkAppUpdateInfo() + AppUpdateDialogFragment.newInstance { + checkAppUpdateInfo() + } } } From bf92e2acbbc0175fecfde77dc98ddbc578cbb8fa Mon Sep 17 00:00:00 2001 From: leeeha Date: Tue, 16 Jan 2024 14:27:59 +0900 Subject: [PATCH 18/25] =?UTF-8?q?[ui]=20#233=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C=EA=B7=B8=20?= =?UTF-8?q?=EB=B0=B0=EA=B2=BD=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/res/layout/fragment_app_update_dialog.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/layout/fragment_app_update_dialog.xml b/app/src/main/res/layout/fragment_app_update_dialog.xml index 384205e0..7dc85fb1 100644 --- a/app/src/main/res/layout/fragment_app_update_dialog.xml +++ b/app/src/main/res/layout/fragment_app_update_dialog.xml @@ -5,6 +5,7 @@ From 0ef28c8ad4bce7c2773472331f22da2b19b8919b Mon Sep 17 00:00:00 2001 From: leeeha Date: Tue, 16 Jan 2024 14:28:57 +0900 Subject: [PATCH 19/25] =?UTF-8?q?[add]=20#233=20=EC=97=85=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=8A=B8=20=EB=8B=A4=EC=9D=B4=EC=96=BC=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=20show=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/go/sopt/winey/presentation/splash/SplashActivity.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index 7720b553..bd173a65 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -24,6 +24,7 @@ import org.go.sopt.winey.presentation.main.MainActivity import org.go.sopt.winey.presentation.onboarding.guide.GuideActivity import org.go.sopt.winey.util.binding.BindingActivity import org.go.sopt.winey.util.context.colorOf +import org.go.sopt.winey.util.context.toast import timber.log.Timber import javax.inject.Inject @@ -41,7 +42,7 @@ class SplashActivity : BindingActivity(R.layout.activity_ Timber.e("Update flow failed! Result code: " + result.resultCode) AppUpdateDialogFragment.newInstance { checkAppUpdateInfo() - } + }.show(supportFragmentManager, TAG_APP_UPDATE_DIALOG) } } @@ -140,5 +141,6 @@ class SplashActivity : BindingActivity(R.layout.activity_ private const val KEY_NOTI_TYPE = "notiType" private const val KEY_FEED_ID = "feedId" private const val DELAY_TIME = 1500L + private const val TAG_APP_UPDATE_DIALOG = "APP_UPDATE_DIALOG" } } From 736fa69dd3e14b07d893e7e746e35787d5c365e8 Mon Sep 17 00:00:00 2001 From: leeeha Date: Tue, 16 Jan 2024 14:59:28 +0900 Subject: [PATCH 20/25] =?UTF-8?q?[chore]=20#233=20=EC=A3=BC=EC=84=9D=20?= =?UTF-8?q?=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/go/sopt/winey/presentation/splash/SplashActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index bd173a65..33905927 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -88,11 +88,11 @@ class SplashActivity : BindingActivity(R.layout.activity_ } private fun checkAppUpdateInfo() { - // 설치 가능한 업데이트 버전이 있고, 즉시 업데이트가 허용된 경우 appUpdateManager.appUpdateInfo.addOnSuccessListener { appUpdateInfo -> if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE) ) { + // 설치 가능한 업데이트 버전이 있고, 즉시 업데이트가 허용된 경우 requestImmediateUpdate(appUpdateInfo) } else { checkAutoLogin() From 29d27943bd34a8e52f03d781252a527f7952839c Mon Sep 17 00:00:00 2001 From: leeeha Date: Tue, 16 Jan 2024 15:17:58 +0900 Subject: [PATCH 21/25] =?UTF-8?q?[chore]=20#233=20ktlint=20check=20?= =?UTF-8?q?=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/go/sopt/winey/presentation/splash/SplashActivity.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index 33905927..cbdd6644 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -24,7 +24,6 @@ import org.go.sopt.winey.presentation.main.MainActivity import org.go.sopt.winey.presentation.onboarding.guide.GuideActivity import org.go.sopt.winey.util.binding.BindingActivity import org.go.sopt.winey.util.context.colorOf -import org.go.sopt.winey.util.context.toast import timber.log.Timber import javax.inject.Inject @@ -89,8 +88,8 @@ class SplashActivity : BindingActivity(R.layout.activity_ private fun checkAppUpdateInfo() { appUpdateManager.appUpdateInfo.addOnSuccessListener { appUpdateInfo -> - if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE - && appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE) + if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && + appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.IMMEDIATE) ) { // 설치 가능한 업데이트 버전이 있고, 즉시 업데이트가 허용된 경우 requestImmediateUpdate(appUpdateInfo) From f3cbc0e4fe166ca2f404a87bd10b8862841dcdc0 Mon Sep 17 00:00:00 2001 From: leeeha Date: Mon, 22 Jan 2024 17:30:32 +0900 Subject: [PATCH 22/25] =?UTF-8?q?[chore]=20#233=20=EB=82=B4=EB=B6=80=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=EB=A5=BC=20=EC=9C=84=ED=95=9C=20?= =?UTF-8?q?=EB=B2=84=EC=A0=84=20=EC=BD=94=EB=93=9C=20=EC=97=85=EA=B7=B8?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/release/output-metadata.json | 2 +- buildSrc/src/main/java/DefaultConfig.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index f863ef1a..81cd00ee 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,7 +11,7 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 20, + "versionCode": 21, "versionName": "1.1.0", "outputFile": "app-release.apk" } diff --git a/buildSrc/src/main/java/DefaultConfig.kt b/buildSrc/src/main/java/DefaultConfig.kt index 8fab1f97..a5286c96 100644 --- a/buildSrc/src/main/java/DefaultConfig.kt +++ b/buildSrc/src/main/java/DefaultConfig.kt @@ -3,6 +3,6 @@ object DefaultConfig { const val compileSdk = 33 const val minSdk = 28 const val targetSdk = 33 - const val versionCode = 20 + const val versionCode = 21 const val versionName = "1.1.0" } From f37d964d3973fee4d023839c4381a293cc8c8632 Mon Sep 17 00:00:00 2001 From: leeeha Date: Tue, 23 Jan 2024 00:05:26 +0900 Subject: [PATCH 23/25] =?UTF-8?q?[mod]=20#233=20=EC=8A=A4=ED=94=8C?= =?UTF-8?q?=EB=9E=98=EC=8B=9C=20=ED=99=94=EB=A9=B4=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=92=A4=EB=A1=9C=EA=B0=80=EA=B8=B0=20=EB=88=84=EB=A5=B4?= =?UTF-8?q?=EB=A9=B4=20=EC=95=A1=ED=8B=B0=EB=B9=84=ED=8B=B0=20=EC=99=84?= =?UTF-8?q?=EC=A0=84=ED=9E=88=20=EC=A2=85=EB=A3=8C=EC=8B=9C=ED=82=A4?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/splash/SplashActivity.kt | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt index cbdd6644..75b7b0e7 100644 --- a/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt +++ b/app/src/main/java/org/go/sopt/winey/presentation/splash/SplashActivity.kt @@ -4,6 +4,7 @@ import android.content.Intent import android.os.Build import android.os.Bundle import android.view.WindowInsetsController +import androidx.activity.OnBackPressedCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.ViewCompat @@ -38,7 +39,10 @@ class SplashActivity : BindingActivity(R.layout.activity_ if (result.resultCode == RESULT_OK) { checkAutoLogin() } else { + // 뒤로가기 또는 X 버튼을 눌러 업데이트가 취소된 경우 Timber.e("Update flow failed! Result code: " + result.resultCode) + + // 다시 한번 요청 다이얼로그 띄우기 AppUpdateDialogFragment.newInstance { checkAppUpdateInfo() }.show(supportFragmentManager, TAG_APP_UPDATE_DIALOG) @@ -49,11 +53,9 @@ class SplashActivity : BindingActivity(R.layout.activity_ installSplashScreen() super.onCreate(savedInstanceState) + registerBackPressedCallback() setUpStatusBar() - lifecycleScope.launch { - delay(DELAY_TIME) - checkAppUpdateInfo() - } + showLottieAnimation() } override fun onResume() { @@ -70,6 +72,15 @@ class SplashActivity : BindingActivity(R.layout.activity_ } } + private fun registerBackPressedCallback() { + val callback = object : OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + finish() + } + } + onBackPressedDispatcher.addCallback(this, callback) + } + private fun setUpStatusBar() { // 상태바 색상 변경 window.statusBarColor = colorOf(R.color.black) @@ -86,6 +97,13 @@ class SplashActivity : BindingActivity(R.layout.activity_ } } + private fun showLottieAnimation() { + lifecycleScope.launch { + delay(DELAY_TIME) + checkAppUpdateInfo() + } + } + private fun checkAppUpdateInfo() { appUpdateManager.appUpdateInfo.addOnSuccessListener { appUpdateInfo -> if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && From f42aa2e4c61b7b8d1b11d9b3b81d912d16374a9a Mon Sep 17 00:00:00 2001 From: leeeha Date: Tue, 23 Jan 2024 00:06:17 +0900 Subject: [PATCH 24/25] =?UTF-8?q?[chore]=20#233=20=EB=82=B4=EB=B6=80=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=EB=A5=BC=20=EC=9C=84=ED=95=9C=20?= =?UTF-8?q?=EB=B2=84=EC=A0=84=20=EC=BD=94=EB=93=9C=20=EC=97=85=EA=B7=B8?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/release/output-metadata.json | 2 +- buildSrc/src/main/java/DefaultConfig.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 81cd00ee..1718632d 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,7 +11,7 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 21, + "versionCode": 22, "versionName": "1.1.0", "outputFile": "app-release.apk" } diff --git a/buildSrc/src/main/java/DefaultConfig.kt b/buildSrc/src/main/java/DefaultConfig.kt index a5286c96..eb552feb 100644 --- a/buildSrc/src/main/java/DefaultConfig.kt +++ b/buildSrc/src/main/java/DefaultConfig.kt @@ -3,6 +3,6 @@ object DefaultConfig { const val compileSdk = 33 const val minSdk = 28 const val targetSdk = 33 - const val versionCode = 21 + const val versionCode = 22 const val versionName = "1.1.0" } From 96acce673e34575026ccc9ae6f8da0c213283dde Mon Sep 17 00:00:00 2001 From: leeeha Date: Sat, 27 Jan 2024 20:22:23 +0900 Subject: [PATCH 25/25] =?UTF-8?q?[chore]=20#233=20appUpdateInfoTask=20?= =?UTF-8?q?=EC=B7=A8=EC=86=8C,=20=EC=8B=A4=ED=8C=A8=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=EB=A5=BC=20=EC=9C=84=ED=95=9C=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=97=85=EA=B7=B8=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/release/output-metadata.json | 2 +- buildSrc/src/main/java/DefaultConfig.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/release/output-metadata.json b/app/release/output-metadata.json index 1718632d..567a07d1 100644 --- a/app/release/output-metadata.json +++ b/app/release/output-metadata.json @@ -11,7 +11,7 @@ "type": "SINGLE", "filters": [], "attributes": [], - "versionCode": 22, + "versionCode": 23, "versionName": "1.1.0", "outputFile": "app-release.apk" } diff --git a/buildSrc/src/main/java/DefaultConfig.kt b/buildSrc/src/main/java/DefaultConfig.kt index eb552feb..fac79e57 100644 --- a/buildSrc/src/main/java/DefaultConfig.kt +++ b/buildSrc/src/main/java/DefaultConfig.kt @@ -3,6 +3,6 @@ object DefaultConfig { const val compileSdk = 33 const val minSdk = 28 const val targetSdk = 33 - const val versionCode = 22 + const val versionCode = 23 const val versionName = "1.1.0" }