Browse Source

[1001697]增加用户注销弹窗

zk 1 year ago
parent
commit
95b007badf

+ 19 - 11
app/src/main/java/com/datarecovery/master/module/mine/MineFragment.java

@@ -5,7 +5,6 @@ import android.view.View;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.lifecycle.Observer;
 
 import com.atmob.app.lib.base.BaseFragment;
 import com.datarecovery.master.R;
@@ -22,7 +21,8 @@ public class MineFragment extends BaseFragment<FragmentMineBinding> {
 
     private MineViewModel mineViewModel;
 
-    private CommonSureDialog commonSureDialog;
+    private CommonSureDialog exitDialog;
+    private CommonSureDialog logoutDialog;
 
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
@@ -32,22 +32,30 @@ public class MineFragment extends BaseFragment<FragmentMineBinding> {
     }
 
     private void initObserver() {
-        mineViewModel.getShowLoginDialog().observe(getViewLifecycleOwner(), o -> showCommonSureDialog());
+        mineViewModel.getShowExitDialog().observe(getViewLifecycleOwner(), o -> showExitDialog());
+        mineViewModel.getShowLogoutDialog().observe(getViewLifecycleOwner(), o -> showLogoutDialog());
     }
 
     private void initView() {
 
     }
 
-    public void showCommonSureDialog() {
-        if (commonSureDialog == null) {
-            commonSureDialog = new CommonSureDialog(requireContext());
-            commonSureDialog.setDialogTitle(R.string.dialog_kind_tips).setDialogContent(R.string.dialog_exit_content);
-            commonSureDialog.setOnDialogClickListener(() -> {
-                mineViewModel.onAccountExit();
-            });
+    public void showExitDialog() {
+        if (exitDialog == null) {
+            exitDialog = new CommonSureDialog(requireContext());
+            exitDialog.setDialogTitle(R.string.dialog_kind_tips).setDialogContent(R.string.dialog_exit_content);
+            exitDialog.setOnDialogClickListener(() -> mineViewModel.onAccountExit());
         }
-        commonSureDialog.show();
+        exitDialog.show();
+    }
+
+    public void showLogoutDialog() {
+        if (logoutDialog == null) {
+            logoutDialog = new CommonSureDialog(requireContext());
+            logoutDialog.setDialogTitle(R.string.dialog_logout_tips).setDialogContent(R.string.dialog_logout_content);
+            logoutDialog.setOnDialogClickListener(() -> mineViewModel.onAccountLogout());
+        }
+        logoutDialog.show();
     }
 
     @Override

+ 17 - 5
app/src/main/java/com/datarecovery/master/module/mine/MineViewModel.java

@@ -12,7 +12,6 @@ import com.atmob.common.runtime.ContextUtil;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.repositories.AccountRepository;
 import com.datarecovery.master.module.about.AboutActivity;
-import com.datarecovery.master.utils.ToastUtil;
 
 import javax.inject.Inject;
 
@@ -22,7 +21,8 @@ import dagger.hilt.android.lifecycle.HiltViewModel;
 @HiltViewModel
 public class MineViewModel extends BaseViewModel {
 
-    private final SingleLiveEvent<?> showLoginDialog = new SingleLiveEvent<>();
+    private final SingleLiveEvent<?> showExitDialog = new SingleLiveEvent<>();
+    private final SingleLiveEvent<?> showLogoutDialog = new SingleLiveEvent<>();
     private final LiveData<String> loginTips;
     private final AccountRepository accountRepository;
 
@@ -41,8 +41,12 @@ public class MineViewModel extends BaseViewModel {
         });
     }
 
-    public LiveData<?> getShowLoginDialog() {
-        return showLoginDialog;
+    public LiveData<?> getShowExitDialog() {
+        return showExitDialog;
+    }
+
+    public LiveData<?> getShowLogoutDialog() {
+        return showLogoutDialog;
     }
 
     public LiveData<String> getLoginTips() {
@@ -62,10 +66,18 @@ public class MineViewModel extends BaseViewModel {
     }
 
     public void onExitClick() {
-        showLoginDialog.call();
+        showExitDialog.call();
     }
 
     public void onAccountExit() {
         accountRepository.logout();
     }
+
+    public void onLogoutClick() {
+        showLogoutDialog.call();
+    }
+
+    public void onAccountLogout() {
+
+    }
 }

+ 6 - 5
app/src/main/res/layout/fragment_mine.xml

@@ -171,12 +171,12 @@
                     app:layout_constraintTop_toBottomOf="@+id/space3">
 
                     <include
-                        android:onClick="@{()->mineViewModel.onAboutClick()}"
                         layout="@layout/layout_item_settings"
                         settingsIcon="@{@drawable/icon_small_about}"
                         settingsName="@{@string/mine_about}"
                         android:layout_width="match_parent"
-                        android:layout_height="wrap_content" />
+                        android:layout_height="wrap_content"
+                        android:onClick="@{()->mineViewModel.onAboutClick()}" />
 
                     <include
                         isGone="@{!mineViewModel.isLogin}"
@@ -199,16 +199,17 @@
                         settingsIcon="@{@drawable/icon_small_account_logout}"
                         settingsName="@{@string/mine_account_logout}"
                         android:layout_width="match_parent"
-                        android:layout_height="wrap_content" />
+                        android:layout_height="wrap_content"
+                        android:onClick="@{()-> mineViewModel.onLogoutClick()}" />
 
                     <include
-                        android:onClick="@{()->mineViewModel.onExitClick()}"
                         isGone="@{!mineViewModel.isLogin}"
                         layout="@layout/layout_item_settings"
                         settingsIcon="@{@drawable/icon_small_exit}"
                         settingsName="@{@string/mine_exit}"
                         android:layout_width="match_parent"
-                        android:layout_height="wrap_content" />
+                        android:layout_height="wrap_content"
+                        android:onClick="@{()->mineViewModel.onExitClick()}" />
 
                 </LinearLayout>
 

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -47,4 +47,6 @@
     <string name="dialog_cancel">取消</string>
     <string name="dialog_sure">确认</string>
     <string name="dialog_exit_content">您确定退出登录吗?</string>
+    <string name="dialog_logout_tips">您确定要注销账户吗?</string>
+    <string name="dialog_logout_content">注销后,将会删除您账户所有的信息</string>
 </resources>