WeChatRecoverActivity.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package com.datarecovery.master.module.wxrecover;
  2. import android.app.Activity;
  3. import android.content.Context;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.text.TextUtils;
  7. import androidx.annotation.NonNull;
  8. import androidx.annotation.Nullable;
  9. import com.atmob.app.lib.base.BaseActivity;
  10. import com.datarecovery.master.R;
  11. import com.datarecovery.master.data.repositories.AccountRepository;
  12. import com.datarecovery.master.databinding.ActivityWxRecoverBinding;
  13. import com.datarecovery.master.dialog.PermissionDialog;
  14. import com.datarecovery.master.module.login.LoginActivity;
  15. import com.datarecovery.master.module.member.MemberType;
  16. import com.datarecovery.master.utils.FilePermissionHelper;
  17. import com.datarecovery.master.utils.ReportUtil;
  18. import com.gyf.immersionbar.ImmersionBar;
  19. import dagger.hilt.android.AndroidEntryPoint;
  20. @AndroidEntryPoint
  21. public class WeChatRecoverActivity extends BaseActivity<ActivityWxRecoverBinding> {
  22. private WeChatViewModel weChatViewModel;
  23. private PermissionDialog loginDialog;
  24. public static void start(Context context, @MemberType String type) {
  25. Intent intent = new Intent(context, WeChatRecoverActivity.class);
  26. if (!(context instanceof Activity)) {
  27. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  28. }
  29. intent.putExtra("TYPE", type);
  30. context.startActivity(intent);
  31. }
  32. @Override
  33. protected void onCreate(@Nullable Bundle savedInstanceState) {
  34. super.onCreate(savedInstanceState);
  35. initData();
  36. initView();
  37. initObserver();
  38. }
  39. private void initData() {
  40. weChatViewModel.setType(getIntent().getStringExtra("TYPE"));
  41. }
  42. private void initView() {
  43. }
  44. private void showLoginDialog() {
  45. loginDialog = new PermissionDialog(this);
  46. loginDialog.setDialogContent(R.string.dialog_no_login)
  47. .setDialogTitle(R.string.dialog_no_login_title)
  48. .setOnDialogClickListener(new PermissionDialog.OnDialogClickListener() {
  49. @Override
  50. public void onClickSure() {
  51. LoginActivity.start(WeChatRecoverActivity.this, ReportUtil.getReportId(weChatViewModel.getType()));
  52. }
  53. @Override
  54. public void onClickCancel() {
  55. finish();
  56. }
  57. });
  58. loginDialog.show();
  59. }
  60. private void initObserver() {
  61. weChatViewModel.getFinishEvent().observe(this, o -> finish());
  62. weChatViewModel.getShowLoginEvent().observe(this, o -> showLoginDialog());
  63. }
  64. @Override
  65. protected boolean shouldImmersion() {
  66. return true;
  67. }
  68. @Override
  69. protected void initViewModel() {
  70. super.initViewModel();
  71. weChatViewModel = getViewModelProvider().get(WeChatViewModel.class);
  72. binding.setWechatViewModel(weChatViewModel);
  73. }
  74. @Override
  75. protected void configImmersion(@NonNull ImmersionBar immersionBar) {
  76. immersionBar.statusBarDarkFont(true);
  77. }
  78. @Override
  79. protected void onResume() {
  80. super.onResume();
  81. if (loginDialog != null && loginDialog.isShowing() && !TextUtils.isEmpty(AccountRepository.token)) {
  82. weChatViewModel.findOrder();
  83. loginDialog.dismiss();
  84. }
  85. }
  86. }