AccountFragment: Ask for confirmation before logout

Avoid user clicking the logout button accidentally

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-07-14 13:00:38 +07:00
parent add64582b2
commit ab39597296
4 changed files with 45 additions and 14 deletions

View File

@@ -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<FragmentAccountBinding>() {
}
binding.btnLogout.addOnClickListener {
binding.btnLogout.updateProgress(true)
AccountProvider.with(view.context).logout()
findNavController().navigate(
AccountFragmentDirections.actionAccountFragmentToSplashFragment()
)
findNavController().navigate(R.id.logoutDialog)
}
}
}

View File

@@ -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())
}
}