diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3c23a15ee1f82e63262fcd60c646de2b6ae2c560..e97a4ac8755306d301b700ca90f8c768434ebd1b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,13 +11,10 @@ <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> - <uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <application - android:name=".service.auth.TokenExpApp" android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:enableOnBackInvokedCallback="true" @@ -57,8 +54,7 @@ </activity> <service - android:name=".service.auth.TokenExpService" - android:foregroundServiceType="dataSync"/> + android:name=".service.auth.TokenExpService" /> <provider android:authorities="com.example.counter" diff --git a/app/src/main/java/com/example/bondoman/service/auth/TokenExpService.kt b/app/src/main/java/com/example/bondoman/service/auth/TokenExpService.kt index 7f876c9da28cbf5cf6625fbea0b945faa793864c..de3d1626548d33c95727d4ac22a53bcdd5715837 100644 --- a/app/src/main/java/com/example/bondoman/service/auth/TokenExpService.kt +++ b/app/src/main/java/com/example/bondoman/service/auth/TokenExpService.kt @@ -2,11 +2,8 @@ package com.example.bondoman.service.auth import android.app.Service import android.content.Intent -import android.content.pm.ServiceInfo import android.os.IBinder import android.util.Log -import androidx.core.app.NotificationCompat -import com.example.bondoman.R import com.example.bondoman.common.response.ResponseContract import com.example.bondoman.core.repository.auth.token.TokenRepository import com.example.bondoman.network.ConnectivityObserver @@ -58,18 +55,22 @@ class TokenExpService : Service() { private fun start() { val token = preferenceManager.getToken() + Log.d("Token Exp Service", "Start") + if (!token.isNullOrEmpty()) { serviceScope.launch { - while (true) { + + val isLogin = preferenceManager.isLogin() + + if(isLogin) { Log.d("Token Exp Service", "Start Timer") delay(300000) if (connectivityObserver.isConnected()) { redirectionChecking(token) - } - else { + } else { Log.d("Token Exp Service", "No network") connectivityObserver.observe().collect { status -> - if(status == ConnectivityObserver.Status.Available) { + if (status == ConnectivityObserver.Status.Available) { redirectionChecking(token) } } @@ -78,13 +79,13 @@ class TokenExpService : Service() { } } - val notification = NotificationCompat.Builder(this, channelId) - .setSmallIcon(R.drawable.ic_launcher_foreground) - .setContentTitle("Token Check Service Is Active") - .setContentText("Checking JWT Token Expiration") - .build() - - startForeground(notificationId, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC) +// val notification = NotificationCompat.Builder(this, channelId) +// .setSmallIcon(R.drawable.ic_launcher_foreground) +// .setContentTitle("Token Check Service Is Active") +// .setContentText("Checking JWT Token Expiration") +// .build() +// +// startForeground(notificationId, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC) } private suspend fun redirectionChecking(token: String) { diff --git a/app/src/main/java/com/example/bondoman/share_preference/PreferenceManager.kt b/app/src/main/java/com/example/bondoman/share_preference/PreferenceManager.kt index 401b456e796df26ba7b71eeb4a6bb6954d65624d..df7bd0f324cd2a1792baf4712f88920ef1a486f2 100644 --- a/app/src/main/java/com/example/bondoman/share_preference/PreferenceManager.kt +++ b/app/src/main/java/com/example/bondoman/share_preference/PreferenceManager.kt @@ -12,8 +12,8 @@ class PreferenceManager (var context: Context) { var pref:SharedPreferences = context.getSharedPreferences(PREF_NAME, PRIVATE_MODE) var editor:SharedPreferences.Editor = pref.edit() - fun setLogin(isLogin: Boolean) { - editor.putBoolean(IS_LOGIN, isLogin) + fun setLogin() { + editor.putBoolean(IS_LOGIN, true) editor.commit() } diff --git a/app/src/main/java/com/example/bondoman/ui/login/LoginActivity.kt b/app/src/main/java/com/example/bondoman/ui/login/LoginActivity.kt index 39fd1be60c1d2fb449b1e34b4f5994c85654bc1a..81814ee994dd8eae2ea3a673091de052cbde10d0 100644 --- a/app/src/main/java/com/example/bondoman/ui/login/LoginActivity.kt +++ b/app/src/main/java/com/example/bondoman/ui/login/LoginActivity.kt @@ -92,6 +92,7 @@ class LoginActivity : AppCompatActivity() { viewModel.loginResponse.observe(this, Observer { res -> Log.d("Login", res.toString()) preferenceManager.setToken(res.token) + preferenceManager.setLogin() Intent(applicationContext, TokenExpService::class.java).also { it.action = TokenExpService.Actions.START.toString()