From ab3959729648e99c3e61e9c2acfd608201fc6eeb Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Sun, 14 Jul 2024 13:00:38 +0700 Subject: [PATCH] AccountFragment: Ask for confirmation before logout Avoid user clicking the logout button accidentally Signed-off-by: Aayush Gupta --- .../store/view/ui/account/AccountFragment.kt | 7 +---- .../store/view/ui/account/LogoutDialog.kt | 28 +++++++++++++++++++ .../main/res/navigation/mobile_navigation.xml | 20 +++++++------ app/src/main/res/values/strings.xml | 4 +++ 4 files changed, 45 insertions(+), 14 deletions(-) create mode 100644 app/src/main/java/com/aurora/store/view/ui/account/LogoutDialog.kt diff --git a/app/src/main/java/com/aurora/store/view/ui/account/AccountFragment.kt b/app/src/main/java/com/aurora/store/view/ui/account/AccountFragment.kt index bc8f4881d..fa9849534 100644 --- a/app/src/main/java/com/aurora/store/view/ui/account/AccountFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/account/AccountFragment.kt @@ -29,7 +29,6 @@ import com.aurora.Constants.URL_LICENSE import com.aurora.Constants.URL_TOS import com.aurora.extensions.browse import com.aurora.store.R -import com.aurora.store.data.providers.AccountProvider import com.aurora.store.data.providers.AuthProvider import com.aurora.store.databinding.FragmentAccountBinding import com.aurora.store.view.ui.commons.BaseFragment @@ -70,11 +69,7 @@ class AccountFragment : BaseFragment() { } binding.btnLogout.addOnClickListener { - binding.btnLogout.updateProgress(true) - AccountProvider.with(view.context).logout() - findNavController().navigate( - AccountFragmentDirections.actionAccountFragmentToSplashFragment() - ) + findNavController().navigate(R.id.logoutDialog) } } } diff --git a/app/src/main/java/com/aurora/store/view/ui/account/LogoutDialog.kt b/app/src/main/java/com/aurora/store/view/ui/account/LogoutDialog.kt new file mode 100644 index 000000000..b14067b66 --- /dev/null +++ b/app/src/main/java/com/aurora/store/view/ui/account/LogoutDialog.kt @@ -0,0 +1,28 @@ +package com.aurora.store.view.ui.account + +import android.app.Dialog +import android.os.Bundle +import androidx.fragment.app.DialogFragment +import androidx.navigation.fragment.findNavController +import com.aurora.store.R +import com.aurora.store.data.providers.AccountProvider +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import dagger.hilt.android.AndroidEntryPoint + +@AndroidEntryPoint +class LogoutDialog: DialogFragment() { + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + return MaterialAlertDialogBuilder(requireContext()) + .setTitle(R.string.action_logout_confirmation_title) + .setMessage(R.string.action_logout_confirmation_message) + .setPositiveButton(getString(android.R.string.ok)) { _, _ -> logout() } + .setNegativeButton(getString(android.R.string.cancel)) { _, _ -> dialog?.dismiss()} + .create() + } + + private fun logout() { + AccountProvider.with(requireContext()).logout() + findNavController().navigate(LogoutDialogDirections.actionLogoutDialogToSplashFragment()) + } +} diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 6b0386396..6da7ad08d 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -94,14 +94,7 @@ android:id="@+id/accountFragment" android:name="com.aurora.store.view.ui.account.AccountFragment" android:label="@string/title_account_manager" - tools:layout="@layout/fragment_account" > - - + tools:layout="@layout/fragment_account" /> + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fc7485a7a..848fea0d9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -467,4 +467,8 @@ Successfully exported app bundle Failed to exported app bundle + + + Log out? + Are you sure you want to log out?