From cafee6eb8b96a46ec1b803271dc62fb78b0517c7 Mon Sep 17 00:00:00 2001 From: Altair1618 <farhannabilsuryono3@gmail.com> Date: Mon, 1 Apr 2024 10:14:18 +0700 Subject: [PATCH] feat: implement email and nim getter in activity --- .../services/receivers/ExpiryBroadcastReceiver.kt | 2 ++ .../example/bondoman/views/activities/LoginActivity.kt | 8 ++++++++ .../example/bondoman/views/activities/MainActivity.kt | 9 +++++++++ .../example/bondoman/views/fragments/SettingsFragment.kt | 2 ++ .../views/utils/interfaces/ParentActivityService.kt | 4 ++++ 5 files changed, 25 insertions(+) diff --git a/app/src/main/java/com/example/bondoman/services/receivers/ExpiryBroadcastReceiver.kt b/app/src/main/java/com/example/bondoman/services/receivers/ExpiryBroadcastReceiver.kt index ba96f99..8880445 100644 --- a/app/src/main/java/com/example/bondoman/services/receivers/ExpiryBroadcastReceiver.kt +++ b/app/src/main/java/com/example/bondoman/services/receivers/ExpiryBroadcastReceiver.kt @@ -13,6 +13,8 @@ class ExpiryBroadcastReceiver : BroadcastReceiver() { ) { if (intent?.action == "com.example.bondoman.services.LOGOUT_TIMEOUT") { PreferencesManager.remove(context!!, "token", true) + PreferencesManager.remove(context, "nim", true) + PreferencesManager.remove(context, "email", true) val newIntent = Intent(context, LoginActivity::class.java) newIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK diff --git a/app/src/main/java/com/example/bondoman/views/activities/LoginActivity.kt b/app/src/main/java/com/example/bondoman/views/activities/LoginActivity.kt index c97cfdd..75a5026 100644 --- a/app/src/main/java/com/example/bondoman/views/activities/LoginActivity.kt +++ b/app/src/main/java/com/example/bondoman/views/activities/LoginActivity.kt @@ -86,7 +86,11 @@ class LoginActivity : AppCompatActivity() { } else { startTimerService(expiryDuration) + val nim = email.substringBefore("@") + PreferencesManager.putString(this, "token", response.token ?: "", true) + PreferencesManager.putString(this, "nim", nim, true) + PreferencesManager.putString(this, "email", email, true) val intent = Intent(this, MainActivity::class.java) startActivity(intent) finish() @@ -116,6 +120,8 @@ class LoginActivity : AppCompatActivity() { if (response.error != null) { Log.e("LoginActivity", response.error) PreferencesManager.remove(this, "token", true) + PreferencesManager.remove(this, "nim", true) + PreferencesManager.remove(this, "email", true) viewModel.resetTokenResponse() return@Observer } @@ -124,6 +130,8 @@ class LoginActivity : AppCompatActivity() { if (response.exp != null && response.exp < currentTime) { Log.i("LoginActivity", "Token expired") PreferencesManager.remove(this, "token", true) + PreferencesManager.remove(this, "nim", true) + PreferencesManager.remove(this, "email", true) viewModel.resetTokenResponse() return@Observer } diff --git a/app/src/main/java/com/example/bondoman/views/activities/MainActivity.kt b/app/src/main/java/com/example/bondoman/views/activities/MainActivity.kt index 6ca9f08..fd7aef2 100644 --- a/app/src/main/java/com/example/bondoman/views/activities/MainActivity.kt +++ b/app/src/main/java/com/example/bondoman/views/activities/MainActivity.kt @@ -26,6 +26,7 @@ import androidx.navigation.fragment.NavHostFragment import androidx.navigation.ui.setupWithNavController import com.example.bondoman.MainApplication import com.example.bondoman.R +import com.example.bondoman.data.utils.PreferencesManager import com.example.bondoman.data.viewmodels.transaction.TransactionViewModel import com.example.bondoman.data.viewmodels.transaction.TransactionViewModelFactory import com.example.bondoman.databinding.ActivityMainBinding @@ -179,6 +180,14 @@ class MainActivity : AppCompatActivity(), ParentActivityService { ).show() } + override fun getEmail(): String { + return PreferencesManager.getString(this, "email") ?: "" + } + + override fun getNIM(): String { + return PreferencesManager.getString(this, "nim") ?: "" + } + private fun initializeComponents() { mainLayout = binding.main backButton = binding.backButton diff --git a/app/src/main/java/com/example/bondoman/views/fragments/SettingsFragment.kt b/app/src/main/java/com/example/bondoman/views/fragments/SettingsFragment.kt index 18e8110..501c6ff 100644 --- a/app/src/main/java/com/example/bondoman/views/fragments/SettingsFragment.kt +++ b/app/src/main/java/com/example/bondoman/views/fragments/SettingsFragment.kt @@ -151,6 +151,8 @@ class SettingsFragment : Fragment() { private fun onLogoutButtonClick() { PreferencesManager.remove(requireActivity(), "token", true) + PreferencesManager.remove(requireActivity(), "nim", true) + PreferencesManager.remove(requireActivity(), "email", true) val serviceIntent = Intent(requireActivity(), ExpiryService::class.java) requireActivity().stopService(serviceIntent) diff --git a/app/src/main/java/com/example/bondoman/views/utils/interfaces/ParentActivityService.kt b/app/src/main/java/com/example/bondoman/views/utils/interfaces/ParentActivityService.kt index 20bff28..aa12d3d 100644 --- a/app/src/main/java/com/example/bondoman/views/utils/interfaces/ParentActivityService.kt +++ b/app/src/main/java/com/example/bondoman/views/utils/interfaces/ParentActivityService.kt @@ -49,4 +49,8 @@ interface ParentActivityService { message: String, duration: Int, ) + + fun getEmail(): String + + fun getNIM(): String } -- GitLab