From 325fec259878a1e014aad58304db12c24657dfe6 Mon Sep 17 00:00:00 2001 From: m6z1 Date: Fri, 24 Jan 2025 02:23:32 +0900 Subject: [PATCH 1/5] =?UTF-8?q?hotfix:=20=EB=B7=B0=EB=AA=A8=EB=8D=B8?= =?UTF-8?q?=EC=97=90=20error=20=EB=B0=8F=20=EA=B0=95=EC=A0=9C=EC=97=85?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=ED=94=84=EB=A1=9C=ED=8D=BC?= =?UTF-8?q?=ED=8B=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../into/websoso/ui/splash/SplashViewModel.kt | 53 +++++++++++++------ 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/into/websoso/ui/splash/SplashViewModel.kt b/app/src/main/java/com/into/websoso/ui/splash/SplashViewModel.kt index a6e062e51..6bfd69506 100644 --- a/app/src/main/java/com/into/websoso/ui/splash/SplashViewModel.kt +++ b/app/src/main/java/com/into/websoso/ui/splash/SplashViewModel.kt @@ -5,6 +5,7 @@ import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.into.websoso.data.repository.AuthRepository +import com.into.websoso.data.repository.UserRepository import com.into.websoso.data.repository.VersionRepository import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch @@ -14,12 +15,46 @@ import javax.inject.Inject class SplashViewModel @Inject constructor( private val authRepository: AuthRepository, private val versionRepository: VersionRepository, + private val userRepository: UserRepository, ) : ViewModel() { + private val _isUpdateRequired: MutableLiveData = MutableLiveData() + val isUpdateRequired: LiveData get() = _isUpdateRequired - private var _isAutoLogin = MutableLiveData(false) + private var _isAutoLogin: MutableLiveData = MutableLiveData() val isAutoLogin: LiveData get() = _isAutoLogin - fun autoLogin() { + private var _error: MutableLiveData = MutableLiveData(false) + val error: LiveData get() = _error + + init { + checkAndUpdateVersion() + } + + private fun checkAndUpdateVersion() { + viewModelScope.launch { + runCatching { + versionRepository.isUpdateRequired() + }.onSuccess { isRequired -> + _isUpdateRequired.value = isRequired + } + } + } + + // 토큰 만료 확인용 - 추후 로직 수정 필요 + fun updateMyProfile() { + viewModelScope.launch { + runCatching { + userRepository.fetchMyProfile() + }.onSuccess { + autoLogin() + }.onFailure { + authRepository.clearTokens() + _error.value = true + } + } + } + + private fun autoLogin() { viewModelScope.launch { if (authRepository.isAutoLogin) { runCatching { @@ -34,16 +69,4 @@ class SplashViewModel @Inject constructor( } } } - - fun updateMinimumVersion(onUpdateRequired: (Boolean) -> Unit) { - viewModelScope.launch { - runCatching { - versionRepository.isUpdateRequired() - }.onSuccess { isUpdateRequired -> - onUpdateRequired(isUpdateRequired) - }.onFailure { - onUpdateRequired(false) - } - } - } -} \ No newline at end of file +} From 51e629258c0fe1a7d0cb72e78a4009c331bd0589 Mon Sep 17 00:00:00 2001 From: m6z1 Date: Fri, 24 Jan 2025 02:32:52 +0900 Subject: [PATCH 2/5] =?UTF-8?q?fix:=20=EC=8A=A4=ED=94=8C=EB=9E=98=EC=8B=9C?= =?UTF-8?q?=20=EB=82=B4=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95(?= =?UTF-8?q?=EC=9E=90=EB=8F=99=20=EB=A1=9C=EA=B7=B8=EC=9D=B8,=20=EA=B0=95?= =?UTF-8?q?=EC=A0=9C=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8,=20401=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../into/websoso/ui/splash/SplashActivity.kt | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/into/websoso/ui/splash/SplashActivity.kt b/app/src/main/java/com/into/websoso/ui/splash/SplashActivity.kt index fe7a5247a..d0ce490e2 100644 --- a/app/src/main/java/com/into/websoso/ui/splash/SplashActivity.kt +++ b/app/src/main/java/com/into/websoso/ui/splash/SplashActivity.kt @@ -9,6 +9,7 @@ import com.into.websoso.databinding.ActivityLoginBinding import com.into.websoso.ui.login.LoginActivity import com.into.websoso.ui.main.MainActivity import com.into.websoso.ui.splash.dialog.MinimumVersionDialogFragment +import com.kakao.sdk.user.UserApiClient import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -21,27 +22,42 @@ class SplashActivity : BaseActivity(R.layout.activity_spla super.onCreate(savedInstanceState) setupObserver() - splashViewModel.autoLogin() } private fun setupObserver() { + splashViewModel.isUpdateRequired.observe(this) { isUpdateRequired -> + if (isUpdateRequired) { + showMinimumVersionDialog() + return@observe + } + splashViewModel.updateMyProfile() + } + + splashViewModel.error.observe(this) { isError -> + if (isError) { + UserApiClient.instance.logout { + startActivity(LoginActivity.getIntent(this)) + } + } + } + splashViewModel.isAutoLogin.observe(this) { isAutoLogin -> lifecycleScope.launch { delay(1000L) - splashViewModel.updateMinimumVersion { isUpdateRequired -> - if (isUpdateRequired) { - showMinimumVersionDialog() - } else { - when (isAutoLogin) { - true -> navigateToMainActivity() - false -> navigateToLoginActivity() - } - } + when (isAutoLogin) { + true -> navigateToMainActivity() + false -> navigateToLoginActivity() } } } } + private fun showMinimumVersionDialog() { + val dialog = MinimumVersionDialogFragment.newInstance() + dialog.isCancelable = false + dialog.show(supportFragmentManager, MINIMUM_VERSION_TAG) + } + private fun navigateToMainActivity() { startActivity(MainActivity.getIntent(this, true)) finish() @@ -52,12 +68,6 @@ class SplashActivity : BaseActivity(R.layout.activity_spla finish() } - private fun showMinimumVersionDialog() { - val dialog = MinimumVersionDialogFragment.newInstance() - dialog.isCancelable = false - dialog.show(supportFragmentManager, MINIMUM_VERSION_TAG) - } - companion object { private const val MINIMUM_VERSION_TAG = "MinimumVersionDialog" } From dfaeb6b54980a4cdf78e27b0cb167345f8c1b9a9 Mon Sep 17 00:00:00 2001 From: m6z1 Date: Fri, 24 Jan 2025 02:43:15 +0900 Subject: [PATCH 3/5] =?UTF-8?q?build:=201.0.9=20=EB=B2=84=EC=A0=84=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d9e6f5935..2f917c91f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,13 +18,29 @@ android { applicationId = "com.into.websoso" minSdk = 30 targetSdk = 34 - versionCode = 10008 - versionName = "1.0.8" - - buildConfigField("String", "BASE_URL", gradleLocalProperties(rootDir).getProperty("base.url")) - buildConfigField("String", "S3_BASE_URL", gradleLocalProperties(rootDir).getProperty("s3.url")) - buildConfigField("String", "KAKAO_APP_KEY", gradleLocalProperties(rootDir).getProperty("kakao.app.key")) - buildConfigField("String", "AMPLITUDE_KEY", gradleLocalProperties(rootDir).getProperty("amplitude.key")) + versionCode = 9 + versionName = "1.0.9" + + buildConfigField( + "String", + "BASE_URL", + gradleLocalProperties(rootDir).getProperty("base.url") + ) + buildConfigField( + "String", + "S3_BASE_URL", + gradleLocalProperties(rootDir).getProperty("s3.url") + ) + buildConfigField( + "String", + "KAKAO_APP_KEY", + gradleLocalProperties(rootDir).getProperty("kakao.app.key") + ) + buildConfigField( + "String", + "AMPLITUDE_KEY", + gradleLocalProperties(rootDir).getProperty("amplitude.key") + ) manifestPlaceholders["kakaoAppKey"] = gradleLocalProperties(rootDir) .getProperty("kakao.app.key").replace("\"", "") From d91eeae3fcc2a7a86a5dd4a858c3a98e487aa042 Mon Sep 17 00:00:00 2001 From: m6z1 Date: Fri, 24 Jan 2025 02:57:25 +0900 Subject: [PATCH 4/5] =?UTF-8?q?build:=20=EB=B2=84=EC=A0=84=EC=BD=94?= =?UTF-8?q?=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 9 -> 10011 --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2f917c91f..2fc46a0bd 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,7 +18,7 @@ android { applicationId = "com.into.websoso" minSdk = 30 targetSdk = 34 - versionCode = 9 + versionCode = 10011 versionName = "1.0.9" buildConfigField( From 3f6860570269a0623ca19e002abcf6bff5488e3e Mon Sep 17 00:00:00 2001 From: m6z1 Date: Fri, 24 Jan 2025 18:32:06 +0900 Subject: [PATCH 5/5] =?UTF-8?q?build:=20=EB=B2=84=EC=A0=84=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b632106ca..596bd34d1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] # App Versioning -versionCode = "10008" -versionName = "1.0.8" +versionCode = "10011" +versionName = "1.0.9" # Gradle Plugin & Kotlin android-gradle-plugin = "8.1.3"