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:
@@ -29,7 +29,6 @@ import com.aurora.Constants.URL_LICENSE
|
|||||||
import com.aurora.Constants.URL_TOS
|
import com.aurora.Constants.URL_TOS
|
||||||
import com.aurora.extensions.browse
|
import com.aurora.extensions.browse
|
||||||
import com.aurora.store.R
|
import com.aurora.store.R
|
||||||
import com.aurora.store.data.providers.AccountProvider
|
|
||||||
import com.aurora.store.data.providers.AuthProvider
|
import com.aurora.store.data.providers.AuthProvider
|
||||||
import com.aurora.store.databinding.FragmentAccountBinding
|
import com.aurora.store.databinding.FragmentAccountBinding
|
||||||
import com.aurora.store.view.ui.commons.BaseFragment
|
import com.aurora.store.view.ui.commons.BaseFragment
|
||||||
@@ -70,11 +69,7 @@ class AccountFragment : BaseFragment<FragmentAccountBinding>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
binding.btnLogout.addOnClickListener {
|
binding.btnLogout.addOnClickListener {
|
||||||
binding.btnLogout.updateProgress(true)
|
findNavController().navigate(R.id.logoutDialog)
|
||||||
AccountProvider.with(view.context).logout()
|
|
||||||
findNavController().navigate(
|
|
||||||
AccountFragmentDirections.actionAccountFragmentToSplashFragment()
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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())
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -94,14 +94,7 @@
|
|||||||
android:id="@+id/accountFragment"
|
android:id="@+id/accountFragment"
|
||||||
android:name="com.aurora.store.view.ui.account.AccountFragment"
|
android:name="com.aurora.store.view.ui.account.AccountFragment"
|
||||||
android:label="@string/title_account_manager"
|
android:label="@string/title_account_manager"
|
||||||
tools:layout="@layout/fragment_account" >
|
tools:layout="@layout/fragment_account" />
|
||||||
<action
|
|
||||||
android:id="@+id/action_accountFragment_to_splashFragment"
|
|
||||||
app:destination="@id/splashFragment"
|
|
||||||
app:launchSingleTop="true"
|
|
||||||
app:popUpTo="@id/mobile_navigation"
|
|
||||||
app:popUpToInclusive="true" />
|
|
||||||
</fragment>
|
|
||||||
<fragment
|
<fragment
|
||||||
android:id="@+id/settingsFragment"
|
android:id="@+id/settingsFragment"
|
||||||
android:name="com.aurora.store.view.ui.preferences.SettingsFragment"
|
android:name="com.aurora.store.view.ui.preferences.SettingsFragment"
|
||||||
@@ -480,4 +473,15 @@
|
|||||||
android:id="@+id/aboutDialog"
|
android:id="@+id/aboutDialog"
|
||||||
android:name="com.aurora.store.view.ui.about.AboutDialog"
|
android:name="com.aurora.store.view.ui.about.AboutDialog"
|
||||||
android:label="@string/title_about" />
|
android:label="@string/title_about" />
|
||||||
|
<dialog
|
||||||
|
android:id="@+id/logoutDialog"
|
||||||
|
android:name="com.aurora.store.view.ui.account.LogoutDialog"
|
||||||
|
android:label="@string/action_logout">
|
||||||
|
<action
|
||||||
|
android:id="@+id/action_logoutDialog_to_splashFragment"
|
||||||
|
app:destination="@id/splashFragment"
|
||||||
|
app:launchSingleTop="true"
|
||||||
|
app:popUpTo="@id/mobile_navigation"
|
||||||
|
app:popUpToInclusive="true" />
|
||||||
|
</dialog>
|
||||||
</navigation>
|
</navigation>
|
||||||
|
|||||||
@@ -467,4 +467,8 @@
|
|||||||
<!-- ExportWorker -->
|
<!-- ExportWorker -->
|
||||||
<string name="export_app_summary_success">Successfully exported app bundle</string>
|
<string name="export_app_summary_success">Successfully exported app bundle</string>
|
||||||
<string name="export_app_summary_fail">Failed to exported app bundle</string>
|
<string name="export_app_summary_fail">Failed to exported app bundle</string>
|
||||||
|
|
||||||
|
<!-- LogoutDialog -->
|
||||||
|
<string name="action_logout_confirmation_title">Log out?</string>
|
||||||
|
<string name="action_logout_confirmation_message">Are you sure you want to log out?</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user