From 1da0e75b1e1793fb6a727a8daa3778f34f26f71f Mon Sep 17 00:00:00 2001 From: Minyeong Lee <13619@snu.ac.kr> Date: Sun, 26 Nov 2023 23:25:54 +0900 Subject: [PATCH 1/6] :sparkles: Implement auto backup --- .../com/example/speechbuddy/AuthActivity.kt | 83 ++++++++++++++++++- .../speechbuddy/compose/SpeechBuddyAuth.kt | 13 ++- .../compose/landing/LandingScreen.kt | 27 ++++-- .../viewmodel/BackupSettingsViewModel.kt | 1 - frontend/app/src/main/res/values/strings.xml | 1 + 5 files changed, 109 insertions(+), 16 deletions(-) diff --git a/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt b/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt index 45d36c79..1c47c430 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt @@ -1,23 +1,31 @@ package com.example.speechbuddy import android.content.Intent +import android.os.Build import android.os.Bundle import android.view.MotionEvent import android.view.inputmethod.InputMethodManager import androidx.activity.compose.setContent import androidx.activity.viewModels +import androidx.annotation.RequiresApi +import androidx.compose.runtime.mutableStateOf +import androidx.lifecycle.lifecycleScope import com.example.speechbuddy.compose.SpeechBuddyAuth import com.example.speechbuddy.ui.SpeechBuddyTheme +import com.example.speechbuddy.utils.ResponseCode import com.example.speechbuddy.viewmodel.DisplaySettingsViewModel import com.example.speechbuddy.viewmodel.LoginViewModel import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.launch @AndroidEntryPoint class AuthActivity : BaseActivity() { private val loginViewModel: LoginViewModel by viewModels() private val displaySettingsViewModel: DisplaySettingsViewModel by viewModels() + private val isBackupCompleted = mutableStateOf(false) + @RequiresApi(Build.VERSION_CODES.O) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -29,17 +37,34 @@ class AuthActivity : BaseActivity() { settingsRepository = settingsRepository, initialDarkMode = getInitialDarkMode() ) { - SpeechBuddyAuth() + SpeechBuddyAuth(isBackup = false) } } } + @RequiresApi(Build.VERSION_CODES.O) private fun subscribeObservers() { sessionManager.isAuthorized.observe(this) { isAuthorized -> - if (isAuthorized) navHomeActivity() + if (isAuthorized) autoBackup() + // 로그인 아님, 게스트 아님, 날짜 지남 + else navHomeActivity() } } + @RequiresApi(Build.VERSION_CODES.O) + private fun autoBackup() { + setContent { + SpeechBuddyTheme( + settingsRepository = settingsRepository, + initialDarkMode = getInitialDarkMode() + ) { + SpeechBuddyAuth(isBackup = true) + } + } + displayBackup() + if (isBackupCompleted.value) navHomeActivity() + } + private fun navHomeActivity() { val intent = Intent(this, HomeActivity::class.java) startActivity(intent) @@ -67,4 +92,58 @@ class AuthActivity : BaseActivity() { return super.dispatchTouchEvent(event) } + @RequiresApi(Build.VERSION_CODES.O) + private fun displayBackup() { + lifecycleScope.launch { + settingsRepository.displayBackup().collect { result -> + when (result.code()) { + ResponseCode.SUCCESS.value -> { symbolListBackup() } + + ResponseCode.NO_INTERNET_CONNECTION.value -> { isBackupCompleted.value = true } + } + } + } + } + + @RequiresApi(Build.VERSION_CODES.O) + private fun symbolListBackup() { + lifecycleScope.launch { + settingsRepository.symbolListBackup().collect { result -> + when (result.code()) { + ResponseCode.SUCCESS.value -> { favoriteSymbolBackup() } + + ResponseCode.NO_INTERNET_CONNECTION.value -> { isBackupCompleted.value = true } + } + + } + } + + } + + @RequiresApi(Build.VERSION_CODES.O) + private fun favoriteSymbolBackup() { + lifecycleScope.launch { + settingsRepository.favoriteSymbolBackup().collect { result -> + when (result.code()) { + ResponseCode.SUCCESS.value -> { weightTableBackup() } + + ResponseCode.NO_INTERNET_CONNECTION.value -> { isBackupCompleted.value = true } + } + } + } + } + + @RequiresApi(Build.VERSION_CODES.O) + private fun weightTableBackup() { + lifecycleScope.launch { + settingsRepository.weightTableBackup().collect { result -> + when (result.code()) { + ResponseCode.SUCCESS.value -> { isBackupCompleted.value = true } + + ResponseCode.NO_INTERNET_CONNECTION.value -> { isBackupCompleted.value = true } + } + } + } + } + } \ No newline at end of file diff --git a/frontend/app/src/main/java/com/example/speechbuddy/compose/SpeechBuddyAuth.kt b/frontend/app/src/main/java/com/example/speechbuddy/compose/SpeechBuddyAuth.kt index b73d7693..18ef1a68 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/compose/SpeechBuddyAuth.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/compose/SpeechBuddyAuth.kt @@ -12,23 +12,28 @@ import com.example.speechbuddy.compose.resetpassword.ResetPasswordScreen import com.example.speechbuddy.compose.signup.SignupScreen @Composable -fun SpeechBuddyAuth() { +fun SpeechBuddyAuth( + isBackup: Boolean +) { val navController = rememberNavController() SpeechBuddyAuthNavHost( - navController = navController + navController = navController, + isBackup = isBackup ) } @Composable fun SpeechBuddyAuthNavHost( - navController: NavHostController + navController: NavHostController, + isBackup: Boolean ) { NavHost(navController = navController, startDestination = "landing") { composable("landing") { LandingScreen( onLoginClick = { navController.navigate("login") - } + }, + isBackup = isBackup ) } composable("login") { diff --git a/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt b/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt index 2ec6c9e3..73d1d968 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt @@ -8,8 +8,11 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.wrapContentSize +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -22,12 +25,14 @@ import com.example.speechbuddy.R import com.example.speechbuddy.compose.utils.ButtonUi import com.example.speechbuddy.ui.SpeechBuddyTheme import com.example.speechbuddy.viewmodel.LoginViewModel +import org.w3c.dom.Text @Composable fun LandingScreen( modifier: Modifier = Modifier, onLoginClick: () -> Unit, - viewModel: LoginViewModel = hiltViewModel() + viewModel: LoginViewModel = hiltViewModel(), + isBackup: Boolean ) { Surface( modifier = modifier.fillMaxSize(), @@ -46,14 +51,18 @@ fun LandingScreen( modifier = Modifier.padding(horizontal = 24.dp, vertical = 64.dp), contentAlignment = Alignment.BottomCenter ) { - Column( - verticalArrangement = Arrangement.spacedBy(14.dp) - ) { - ButtonUi( - text = stringResource(id = R.string.start_guest_mode), - onClick = { viewModel.enterGuestMode() } - ) - ButtonUi(text = stringResource(id = R.string.do_login), onClick = onLoginClick) + if (!isBackup) { + Column( + verticalArrangement = Arrangement.spacedBy(14.dp) + ) { + ButtonUi( + text = stringResource(id = R.string.start_guest_mode), + onClick = { viewModel.enterGuestMode() } + ) + ButtonUi(text = stringResource(id = R.string.do_login), onClick = onLoginClick) + } + } else { + Text(text = stringResource(id = R.string.backup_info)) } } } diff --git a/frontend/app/src/main/java/com/example/speechbuddy/viewmodel/BackupSettingsViewModel.kt b/frontend/app/src/main/java/com/example/speechbuddy/viewmodel/BackupSettingsViewModel.kt index 0bfd52c0..a902a185 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/viewmodel/BackupSettingsViewModel.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/viewmodel/BackupSettingsViewModel.kt @@ -44,7 +44,6 @@ class BackupSettingsViewModel @Inject internal constructor( viewModelScope.launch { repository.setAutoBackup(value) } - // TODO: Implement automated backup } private fun setLastBackupDate(value: String) { diff --git a/frontend/app/src/main/res/values/strings.xml b/frontend/app/src/main/res/values/strings.xml index 787531ca..39a346e5 100644 --- a/frontend/app/src/main/res/values/strings.xml +++ b/frontend/app/src/main/res/values/strings.xml @@ -15,6 +15,7 @@ 이메일 인증을 먼저 진행해주세요 비밀번호 변경을 위해 이메일 인증을 먼저 진행해주세요 회원가입을 위해 이메일 인증을 먼저 진행해주세요 + 자동 백업중입니다. 자동 백업을 원하시지 않으시면 설정에서 자동 백업을 꺼 주세요. 이메일 From 8fe4bee5c0b5f12e6d824adcb502c990e4c19a8b Mon Sep 17 00:00:00 2001 From: =Minyeong Lee <13619@snu.ac.kr> Date: Tue, 28 Nov 2023 19:15:07 +0900 Subject: [PATCH 2/6] :sparkles: Implement auto backup feature --- .../com/example/speechbuddy/AuthActivity.kt | 42 ++++++++++++++----- .../speechbuddy/domain/SessionManager.kt | 10 +++++ .../speechbuddy/repository/AuthRepository.kt | 1 + 3 files changed, 43 insertions(+), 10 deletions(-) diff --git a/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt b/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt index 1c47c430..e3287316 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt @@ -3,6 +3,7 @@ package com.example.speechbuddy import android.content.Intent import android.os.Build import android.os.Bundle +import android.util.Log import android.view.MotionEvent import android.view.inputmethod.InputMethodManager import androidx.activity.compose.setContent @@ -23,10 +24,10 @@ class AuthActivity : BaseActivity() { private val loginViewModel: LoginViewModel by viewModels() private val displaySettingsViewModel: DisplaySettingsViewModel by viewModels() - private val isBackupCompleted = mutableStateOf(false) @RequiresApi(Build.VERSION_CODES.O) override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) subscribeObservers() @@ -45,9 +46,16 @@ class AuthActivity : BaseActivity() { @RequiresApi(Build.VERSION_CODES.O) private fun subscribeObservers() { sessionManager.isAuthorized.observe(this) { isAuthorized -> - if (isAuthorized) autoBackup() + if (isAuthorized && + sessionManager.userId.value != -1 && + sessionManager.isLogin.value != true + ) { + Log.d("where", sessionManager.isLogin.value.toString()) + autoBackup() + } else if (isAuthorized){ + navHomeActivity() + } // 로그인 아님, 게스트 아님, 날짜 지남 - else navHomeActivity() } } @@ -62,7 +70,6 @@ class AuthActivity : BaseActivity() { } } displayBackup() - if (isBackupCompleted.value) navHomeActivity() } private fun navHomeActivity() { @@ -99,7 +106,10 @@ class AuthActivity : BaseActivity() { when (result.code()) { ResponseCode.SUCCESS.value -> { symbolListBackup() } - ResponseCode.NO_INTERNET_CONNECTION.value -> { isBackupCompleted.value = true } + ResponseCode.NO_INTERNET_CONNECTION.value -> { + sessionManager.setIsLogin(false) + navHomeActivity() + } } } } @@ -112,7 +122,10 @@ class AuthActivity : BaseActivity() { when (result.code()) { ResponseCode.SUCCESS.value -> { favoriteSymbolBackup() } - ResponseCode.NO_INTERNET_CONNECTION.value -> { isBackupCompleted.value = true } + ResponseCode.NO_INTERNET_CONNECTION.value -> { + sessionManager.setIsLogin(false) + navHomeActivity() + } } } @@ -127,7 +140,10 @@ class AuthActivity : BaseActivity() { when (result.code()) { ResponseCode.SUCCESS.value -> { weightTableBackup() } - ResponseCode.NO_INTERNET_CONNECTION.value -> { isBackupCompleted.value = true } + ResponseCode.NO_INTERNET_CONNECTION.value -> { + sessionManager.setIsLogin(false) + navHomeActivity() + } } } } @@ -138,9 +154,15 @@ class AuthActivity : BaseActivity() { lifecycleScope.launch { settingsRepository.weightTableBackup().collect { result -> when (result.code()) { - ResponseCode.SUCCESS.value -> { isBackupCompleted.value = true } - - ResponseCode.NO_INTERNET_CONNECTION.value -> { isBackupCompleted.value = true } + ResponseCode.SUCCESS.value -> { + sessionManager.setIsLogin(false) + navHomeActivity() + } + + ResponseCode.NO_INTERNET_CONNECTION.value -> { + sessionManager.setIsLogin(false) + navHomeActivity() + } } } } diff --git a/frontend/app/src/main/java/com/example/speechbuddy/domain/SessionManager.kt b/frontend/app/src/main/java/com/example/speechbuddy/domain/SessionManager.kt index cd6facce..a89fa64b 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/domain/SessionManager.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/domain/SessionManager.kt @@ -12,6 +12,7 @@ class SessionManager { private val _cachedToken = MutableLiveData() private val _userId = MutableLiveData(null) + private val _isLogin = MutableLiveData(false) val cachedToken: LiveData get() = _cachedToken @@ -19,6 +20,15 @@ class SessionManager { val userId: LiveData get() = _userId + val isLogin: LiveData + get() = _isLogin + + fun setIsLogin(value: Boolean) { + CoroutineScope(Dispatchers.Main).launch { + _isLogin.value = value + } + } + /** * Authorized only when _userId is set to GUEST or refreshToken is not null * (because accessToken is temporarily set in case of 'reset password') diff --git a/frontend/app/src/main/java/com/example/speechbuddy/repository/AuthRepository.kt b/frontend/app/src/main/java/com/example/speechbuddy/repository/AuthRepository.kt index 2cda5ca1..f35a87ef 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/repository/AuthRepository.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/repository/AuthRepository.kt @@ -51,6 +51,7 @@ class AuthRepository @Inject constructor( response.body()?.let { authTokenDto -> authTokenDto.let { val authToken = authTokenDtoMapper.mapToDomainModel(authTokenDto) + sessionManager.setIsLogin(true) authTokenPrefsManager.saveAuthToken(authToken) Resource.success(authToken) } From 2b5510c44693dfef29c0366c4331fd7bf73bb533 Mon Sep 17 00:00:00 2001 From: Minyeong Lee <13619@snu.ac.kr> Date: Tue, 28 Nov 2023 20:53:15 +0900 Subject: [PATCH 3/6] :sparkles: Complete implementing auto backup --- .../com/example/speechbuddy/AuthActivity.kt | 36 +++++++++++-- .../com/example/speechbuddy/HomeActivity.kt | 20 ++++++-- .../compose/landing/LandingScreen.kt | 50 ++++++++++++++++--- frontend/app/src/main/res/values/strings.xml | 5 +- 4 files changed, 95 insertions(+), 16 deletions(-) diff --git a/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt b/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt index e3287316..e90506e1 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt @@ -18,12 +18,12 @@ import com.example.speechbuddy.viewmodel.DisplaySettingsViewModel import com.example.speechbuddy.viewmodel.LoginViewModel import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch +import java.time.LocalDate @AndroidEntryPoint class AuthActivity : BaseActivity() { private val loginViewModel: LoginViewModel by viewModels() - private val displaySettingsViewModel: DisplaySettingsViewModel by viewModels() @RequiresApi(Build.VERSION_CODES.O) override fun onCreate(savedInstanceState: Bundle?) { @@ -48,14 +48,14 @@ class AuthActivity : BaseActivity() { sessionManager.isAuthorized.observe(this) { isAuthorized -> if (isAuthorized && sessionManager.userId.value != -1 && - sessionManager.isLogin.value != true + sessionManager.isLogin.value != true && + getAutoBackup() && + getLastBackupDate() != LocalDate.now().toString() ) { - Log.d("where", sessionManager.isLogin.value.toString()) autoBackup() } else if (isAuthorized){ navHomeActivity() } - // 로그인 아님, 게스트 아님, 날짜 지남 } } @@ -79,7 +79,33 @@ class AuthActivity : BaseActivity() { } private fun getInitialDarkMode(): Boolean { - return displaySettingsViewModel.getDarkMode() + var darkMode = false + lifecycleScope.launch { + settingsRepository.getDarkMode().collect { + darkMode = it.data?: false + } + } + return darkMode + } + + private fun getAutoBackup(): Boolean { + var autoBackup = true + lifecycleScope.launch { + settingsRepository.getAutoBackup().collect { + autoBackup = it.data?: true + } + } + return autoBackup + } + + private fun getLastBackupDate(): String { + var lastBackupDate = "" + lifecycleScope.launch { + settingsRepository.getLastBackupDate().collect { + lastBackupDate = it.data?: "" + } + } + return lastBackupDate } private fun checkPreviousAuthUser() { diff --git a/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt b/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt index eff5d85f..398a6833 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt @@ -12,16 +12,16 @@ import androidx.annotation.RequiresApi import androidx.compose.runtime.mutableStateOf import androidx.core.view.WindowCompat import androidx.lifecycle.Observer +import androidx.lifecycle.lifecycleScope import com.example.speechbuddy.compose.SpeechBuddyHome import com.example.speechbuddy.ui.SpeechBuddyTheme import com.example.speechbuddy.viewmodel.DisplaySettingsViewModel import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.launch @AndroidEntryPoint class HomeActivity : BaseActivity() { - private val displaySettingsViewModel: DisplaySettingsViewModel by viewModels() - @RequiresApi(Build.VERSION_CODES.O) override fun onCreate(savedInstanceState: Bundle?) { @@ -52,11 +52,23 @@ class HomeActivity : BaseActivity() { } private fun getInitialPage(): Boolean { - return displaySettingsViewModel.getInitialPage() + var initialPage = false + lifecycleScope.launch { + settingsRepository.getInitialPage().collect { + initialPage = it.data?: false + } + } + return initialPage } private fun getInitialDarkMode(): Boolean { - return displaySettingsViewModel.getDarkMode() + var darkMode = false + lifecycleScope.launch { + settingsRepository.getDarkMode().collect { + darkMode = it.data?: false + } + } + return darkMode } // hides keyboard diff --git a/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt b/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt index 73d1d968..170d6586 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt @@ -1,15 +1,19 @@ package com.example.speechbuddy.compose.landing import androidx.compose.foundation.Image +import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.LinearProgressIndicator import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text @@ -18,14 +22,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import androidx.compose.ui.window.Dialog import androidx.hilt.navigation.compose.hiltViewModel import com.example.speechbuddy.R import com.example.speechbuddy.compose.utils.ButtonUi -import com.example.speechbuddy.ui.SpeechBuddyTheme import com.example.speechbuddy.viewmodel.LoginViewModel -import org.w3c.dom.Text @Composable fun LandingScreen( @@ -61,9 +63,45 @@ fun LandingScreen( ) ButtonUi(text = stringResource(id = R.string.do_login), onClick = onLoginClick) } - } else { - Text(text = stringResource(id = R.string.backup_info)) } } } + + if (isBackup) { + Dialog( + onDismissRequest = {} + ) { + Box( + modifier = Modifier + .wrapContentSize() + .background(MaterialTheme.colorScheme.surface) + .padding(24.dp) + ) { + Column( + modifier = Modifier + .wrapContentSize() + ) { + Text( + text = stringResource(id = R.string.auto_backup_title), + style = MaterialTheme.typography.headlineSmall + ) + Spacer(modifier = Modifier.height(24.dp)) + Row( + modifier = Modifier + .wrapContentSize(), + verticalAlignment = Alignment.CenterVertically + ) { + CircularProgressIndicator( + color = MaterialTheme.colorScheme.primary + ) + Text( + text = stringResource(id = R.string.auto_backup_info), + modifier = Modifier.padding(start = 20.dp) + ) + } + } + } + } + } + } \ No newline at end of file diff --git a/frontend/app/src/main/res/values/strings.xml b/frontend/app/src/main/res/values/strings.xml index 39a346e5..a430665d 100644 --- a/frontend/app/src/main/res/values/strings.xml +++ b/frontend/app/src/main/res/values/strings.xml @@ -8,6 +8,9 @@ 비밀번호 변경 이메일 인증 + + 자동 백업 중 + 로그인해 SpeechBuddy의 다양한 기능을 사용해보세요 SpeechBuddy에 오신 것을 환영합니다! @@ -15,7 +18,7 @@ 이메일 인증을 먼저 진행해주세요 비밀번호 변경을 위해 이메일 인증을 먼저 진행해주세요 회원가입을 위해 이메일 인증을 먼저 진행해주세요 - 자동 백업중입니다. 자동 백업을 원하시지 않으시면 설정에서 자동 백업을 꺼 주세요. + 자동 백업을 원하시지 않으시면 설정의 서버에 백업하기 메뉴에서 자동 백업을 꺼 주세요. 이메일 From e5f45a81fdeae8a17f6828ea38fd7ddc3d7af278 Mon Sep 17 00:00:00 2001 From: Minyeong Lee <13619@snu.ac.kr> Date: Tue, 28 Nov 2023 20:56:51 +0900 Subject: [PATCH 4/6] :fire: Remove unused imports --- .../src/main/java/com/example/speechbuddy/AuthActivity.kt | 3 --- .../src/main/java/com/example/speechbuddy/HomeActivity.kt | 6 ------ .../example/speechbuddy/compose/landing/LandingScreen.kt | 1 - 3 files changed, 10 deletions(-) diff --git a/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt b/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt index e90506e1..198cd971 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt @@ -3,18 +3,15 @@ package com.example.speechbuddy import android.content.Intent import android.os.Build import android.os.Bundle -import android.util.Log import android.view.MotionEvent import android.view.inputmethod.InputMethodManager import androidx.activity.compose.setContent import androidx.activity.viewModels import androidx.annotation.RequiresApi -import androidx.compose.runtime.mutableStateOf import androidx.lifecycle.lifecycleScope import com.example.speechbuddy.compose.SpeechBuddyAuth import com.example.speechbuddy.ui.SpeechBuddyTheme import com.example.speechbuddy.utils.ResponseCode -import com.example.speechbuddy.viewmodel.DisplaySettingsViewModel import com.example.speechbuddy.viewmodel.LoginViewModel import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch diff --git a/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt b/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt index 398a6833..9b51c476 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt @@ -6,16 +6,10 @@ import android.os.Bundle import android.view.MotionEvent import android.view.inputmethod.InputMethodManager import androidx.activity.compose.setContent -import androidx.activity.enableEdgeToEdge -import androidx.activity.viewModels import androidx.annotation.RequiresApi -import androidx.compose.runtime.mutableStateOf -import androidx.core.view.WindowCompat -import androidx.lifecycle.Observer import androidx.lifecycle.lifecycleScope import com.example.speechbuddy.compose.SpeechBuddyHome import com.example.speechbuddy.ui.SpeechBuddyTheme -import com.example.speechbuddy.viewmodel.DisplaySettingsViewModel import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.launch diff --git a/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt b/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt index 170d6586..19e3ce3a 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/compose/landing/LandingScreen.kt @@ -13,7 +13,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.material3.LinearProgressIndicator import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.Text From 1343bac172f2195b3b992e190bf1c78a7ef419cf Mon Sep 17 00:00:00 2001 From: Minyeong Lee <13619@snu.ac.kr> Date: Thu, 30 Nov 2023 19:49:34 +0900 Subject: [PATCH 5/6] :art: Change -1 to GUEST --- .../src/main/java/com/example/speechbuddy/AuthActivity.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt b/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt index 198cd971..3b9b2b21 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/AuthActivity.kt @@ -44,7 +44,7 @@ class AuthActivity : BaseActivity() { private fun subscribeObservers() { sessionManager.isAuthorized.observe(this) { isAuthorized -> if (isAuthorized && - sessionManager.userId.value != -1 && + sessionManager.userId.value != GUEST && sessionManager.isLogin.value != true && getAutoBackup() && getLastBackupDate() != LocalDate.now().toString() @@ -56,6 +56,10 @@ class AuthActivity : BaseActivity() { } } + companion object { + const val GUEST = -1 + } + @RequiresApi(Build.VERSION_CODES.O) private fun autoBackup() { setContent { From 791f569eb1ccecd704f9a029589e8731e04a6e02 Mon Sep 17 00:00:00 2001 From: YeonJeong Kim Date: Thu, 30 Nov 2023 21:37:12 +0900 Subject: [PATCH 6/6] :lipstick: Delete unused imports in HomeActivity --- .../app/src/main/java/com/example/speechbuddy/HomeActivity.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt b/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt index 1377d686..89b3ba2f 100644 --- a/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt +++ b/frontend/app/src/main/java/com/example/speechbuddy/HomeActivity.kt @@ -8,7 +8,6 @@ import android.view.inputmethod.InputMethodManager import androidx.activity.compose.setContent import androidx.annotation.RequiresApi import androidx.lifecycle.lifecycleScope -import androidx.activity.viewModels import com.example.speechbuddy.compose.SpeechBuddyHome import com.example.speechbuddy.ui.SpeechBuddyTheme import dagger.hilt.android.AndroidEntryPoint