MineViewModel.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package com.datarecovery.master.module.mine;
  2. import android.text.TextUtils;
  3. import androidx.lifecycle.LiveData;
  4. import androidx.lifecycle.Transformations;
  5. import com.atmob.app.lib.base.BaseViewModel;
  6. import com.atmob.app.lib.livedata.SingleLiveEvent;
  7. import com.atmob.common.runtime.ActivityUtil;
  8. import com.atmob.common.runtime.ContextUtil;
  9. import com.datarecovery.master.R;
  10. import com.datarecovery.master.data.consts.EventId;
  11. import com.datarecovery.master.data.repositories.AccountRepository;
  12. import com.datarecovery.master.data.repositories.DeviceFuncRepository;
  13. import com.datarecovery.master.handler.EventHelper;
  14. import com.datarecovery.master.module.about.AboutActivity;
  15. import com.datarecovery.master.module.feedback.UserFeedbackActivity;
  16. import com.datarecovery.master.module.homepage.HomePageViewModel;
  17. import com.datarecovery.master.module.login.LoginActivity;
  18. import com.datarecovery.master.module.member.MemberActivity;
  19. import com.datarecovery.master.module.member.MemberType;
  20. import com.datarecovery.master.module.wxrecover.WeChatRecoverActivity;
  21. import com.datarecovery.master.sdk.wechat.WechatHelper;
  22. import com.datarecovery.master.utils.BoxingUtil;
  23. import javax.inject.Inject;
  24. import dagger.hilt.android.lifecycle.HiltViewModel;
  25. @HiltViewModel
  26. public class MineViewModel extends BaseViewModel {
  27. private final SingleLiveEvent<?> showExitDialog = new SingleLiveEvent<>();
  28. private final SingleLiveEvent<?> showLogoutDialog = new SingleLiveEvent<>();
  29. private final LiveData<String> loginTips;
  30. private final AccountRepository accountRepository;
  31. private final DeviceFuncRepository deviceFuncRepository;
  32. @Inject
  33. public MineViewModel(AccountRepository accountRepository, DeviceFuncRepository deviceFuncRepository) {
  34. this.accountRepository = accountRepository;
  35. this.deviceFuncRepository = deviceFuncRepository;
  36. loginTips = Transformations.map(accountRepository.getLoginPhoneNum(), phone -> {
  37. if (TextUtils.isEmpty(phone)) {
  38. return ContextUtil.getContext().getString(R.string.mine_no_login);
  39. } else {
  40. if (phone.length() > 4) {
  41. phone = phone.substring(phone.length() - 4);
  42. }
  43. return ContextUtil.getContext().getString(R.string.mine_logged, phone);
  44. }
  45. });
  46. }
  47. public LiveData<?> getShowExitDialog() {
  48. return showExitDialog;
  49. }
  50. public LiveData<?> getShowLogoutDialog() {
  51. return showLogoutDialog;
  52. }
  53. public LiveData<String> getLoginTips() {
  54. return loginTips;
  55. }
  56. public LiveData<Boolean> getIsLogin() {
  57. return accountRepository.getIsLogin();
  58. }
  59. public void onLoginClick() {
  60. if (BoxingUtil.boxing(accountRepository.getIsLogin().getValue())) {
  61. return;
  62. }
  63. LoginActivity.start(ActivityUtil.getTopActivity(), "hf11018");
  64. }
  65. public void onAboutClick() {
  66. EventHelper.report(EventId.hf1001102);
  67. AboutActivity.start(ActivityUtil.getTopActivity());
  68. }
  69. public void onExitClick() {
  70. EventHelper.report(EventId.hf1001112);
  71. showExitDialog.call();
  72. }
  73. public void onAccountExit() {
  74. accountRepository.requestUserLogout();
  75. }
  76. public void onLogoutClick() {
  77. EventHelper.report(EventId.hf1001109);
  78. showLogoutDialog.call();
  79. }
  80. public void onAccountLogout() {
  81. accountRepository.logout();
  82. }
  83. public void onFeedbackClick() {
  84. EventHelper.report(EventId.hf1001105);
  85. UserFeedbackActivity.start(ActivityUtil.getTopActivity());
  86. }
  87. public void onMemberClick() {
  88. EventHelper.report(EventId.hf1001101);
  89. //指定跳转至微信消息恢复
  90. isHaveAuths(MemberType.APP_WX_MESSAGE_RECOVER, isTrial -> WeChatRecoverActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_WX_MESSAGE_RECOVER));
  91. }
  92. public void isHaveAuths(@MemberType String type, HomePageViewModel.NextStepCallback stepCallback) {
  93. if (deviceFuncRepository.isHaveAuth(type)) {
  94. if (stepCallback != null) stepCallback.onNextStep(false);
  95. } else {
  96. MemberActivity.start(ActivityUtil.getTopActivity(), type);
  97. }
  98. }
  99. public void onCustomerServiceClick() {
  100. WechatHelper.launchCustomerService();
  101. EventHelper.report(EventId.hf1001108);
  102. }
  103. }