| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604 |
- package com.datarecovery.master.module.member;
- import android.graphics.Color;
- import android.text.SpannableStringBuilder;
- import android.text.Spanned;
- import android.text.TextUtils;
- import android.text.style.ForegroundColorSpan;
- import android.util.Pair;
- import androidx.lifecycle.LiveData;
- import androidx.lifecycle.MutableLiveData;
- import com.atmob.app.lib.base.BaseViewModel;
- import com.atmob.app.lib.livedata.SingleLiveEvent;
- import com.atmob.common.runtime.ActivityUtil;
- import com.atmob.common.runtime.ContextUtil;
- import com.datarecovery.master.R;
- import com.datarecovery.master.data.api.bean.MemberGoodsBean;
- import com.datarecovery.master.data.api.bean.PayOptionsBean;
- import com.datarecovery.master.data.api.bean.WechatPaymentSignBean;
- import com.datarecovery.master.data.api.response.MemberDetailResponse;
- import com.datarecovery.master.data.api.response.MemberPayResponse;
- import com.datarecovery.master.data.consts.ChannelId;
- import com.datarecovery.master.data.consts.Constants;
- import com.datarecovery.master.data.consts.ErrorCode;
- import com.datarecovery.master.data.consts.EventId;
- import com.datarecovery.master.data.repositories.AccountRepository;
- import com.datarecovery.master.data.repositories.ConfigRepository;
- import com.datarecovery.master.data.repositories.DeviceFuncRepository;
- import com.datarecovery.master.data.repositories.MemberRepository;
- import com.datarecovery.master.data.repositories.PayRepository;
- import com.datarecovery.master.handler.EventHelper;
- import com.datarecovery.master.module.imgrecover.ImageRecoverActivity;
- import com.datarecovery.master.module.login.LoginActivity;
- import com.datarecovery.master.module.main.MainActivity;
- import com.datarecovery.master.module.member.bean.EvaluateBean;
- import com.datarecovery.master.module.member.bean.SuperScenesBean;
- import com.datarecovery.master.module.wxrecover.WeChatRecoverActivity;
- import com.datarecovery.master.utils.BoxingUtil;
- import com.datarecovery.master.utils.Maps;
- import com.datarecovery.master.utils.OrderReportHelper;
- import com.datarecovery.master.utils.ReportUtil;
- import com.datarecovery.master.utils.RxHttpHandler;
- import com.datarecovery.master.utils.ToastUtil;
- import com.google.gson.Gson;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Objects;
- import java.util.concurrent.TimeUnit;
- import javax.inject.Inject;
- import atmob.reactivex.rxjava3.annotations.NonNull;
- import atmob.reactivex.rxjava3.core.SingleObserver;
- import atmob.reactivex.rxjava3.disposables.Disposable;
- import atmob.rxjava.utils.RxJavaUtil;
- import dagger.hilt.android.lifecycle.HiltViewModel;
- import plus.pay.AgilePay;
- import plus.pay.alipay.AlipayInfo;
- import plus.pay.listener.AgilePayState;
- import plus.pay.wxpay.WXpayInfo;
- @HiltViewModel
- public class MemberViewModel extends BaseViewModel {
- private final MemberRepository memberRepository;
- private final MutableLiveData<String> subscribeTxt = new MutableLiveData<>();
- private final MutableLiveData<List<MemberGoodsBean>> memberGoodsList = new MutableLiveData<>();
- private final MutableLiveData<List<PayOptionsBean>> payWayList = new MutableLiveData<>();
- private final MutableLiveData<MemberGoodsBean> selectBean = new MutableLiveData<>();
- private String serviceContentTxt;
- private final MutableLiveData<List<EvaluateBean>> evaluateList = new MutableLiveData<>();
- private final SingleLiveEvent<String> onSubscribeSuccessEvent = new SingleLiveEvent<>();
- private final Gson gson;
- private final AccountRepository accountRepository;
- private final PayRepository payRepository;
- private final DeviceFuncRepository deviceFuncRepository;
- private final SingleLiveEvent<Boolean> showLoadingEvent = new SingleLiveEvent<>();
- private final SingleLiveEvent<?> showChoicePayWayDialog = new SingleLiveEvent<>();
- private final MutableLiveData<String[]> scenesDataList = new MutableLiveData<>();
- private final SingleLiveEvent<Pair<String, String>> showWxQRPaymentEvent = new SingleLiveEvent<>();
- private final SingleLiveEvent<Pair<String, String>> showAliQRPaymentEvent = new SingleLiveEvent<>();
- private final HashMap<String, MemberGoodsBean> orderIdItemMap = new HashMap<>();
- @MemberType
- private String memberType;
- private final List<Pair<CharSequence, CharSequence>> informationList = new ArrayList<>();
- @Inject
- public MemberViewModel(MemberRepository memberRepository, Gson gson, AccountRepository accountRepository, PayRepository payRepository, DeviceFuncRepository deviceFuncRepository) {
- this.memberRepository = memberRepository;
- this.deviceFuncRepository = deviceFuncRepository;
- this.accountRepository = accountRepository;
- this.payRepository = payRepository;
- this.gson = gson;
- }
- public LiveData<String[]> getScenesDataList() {
- return scenesDataList;
- }
- public String getMemberType() {
- return memberType;
- }
- public LiveData<String> getSubscribeTxt() {
- return subscribeTxt;
- }
- public LiveData<Pair<String, String>> getShowWxQRPaymentEvent() {
- return showWxQRPaymentEvent;
- }
- public LiveData<Pair<String, String>> getShowAliQRPaymentEvent() {
- return showAliQRPaymentEvent;
- }
- public LiveData<Boolean> getShowLoadingEvent() {
- return showLoadingEvent;
- }
- public LiveData<?> getShowChoicePayWayDialog() {
- return showChoicePayWayDialog;
- }
- public String getServiceContentTxt() {
- return serviceContentTxt;
- }
- public LiveData<MemberGoodsBean> getSelectBean() {
- return selectBean;
- }
- public void setSelectBean(MemberGoodsBean bean) {
- if (bean != null) {
- EventHelper.report(EventId.hf1000601, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(memberType)));
- }
- selectBean.setValue(bean);
- }
- public LiveData<List<MemberGoodsBean>> getMemberGoodsList() {
- return memberGoodsList;
- }
- public LiveData<List<PayOptionsBean>> getPayWayList() {
- return payWayList;
- }
- public LiveData<List<EvaluateBean>> getEvaluateList() {
- return evaluateList;
- }
- public LiveData<String> getOnSubscribeSuccessEvent() {
- return onSubscribeSuccessEvent;
- }
- public void setMemberType(@MemberType String type) {
- if (!TextUtils.isEmpty(memberType)) {
- return;
- }
- this.memberType = type;
- if (Objects.equals(memberType, MemberType.APP_IMAGE_CLEAN)) {
- subscribeTxt.setValue(ContextUtil.getContext().getString(R.string.member_clear_buy));
- } else {
- subscribeTxt.setValue(ContextUtil.getContext().getString(R.string.member_recover_buy));
- }
- reportId();
- initCommentData();
- refreshMemberDetail();
- }
- private void reportId() {
- switch (memberType) {
- case MemberType.APP_WX_MESSAGE_RECOVER:
- EventHelper.report(EventId.hf1000501);
- EventHelper.timeEvent(EventId.hf1000516);
- break;
- case MemberType.APP_WX_FRIEND_RECOVER:
- EventHelper.report(EventId.hf1000503);
- EventHelper.timeEvent(EventId.hf1000518);
- break;
- case MemberType.APP_IMAGE_RECOVER:
- EventHelper.report(EventId.hf1000505);
- EventHelper.timeEvent(EventId.hf1000520);
- break;
- case MemberType.APP_FILE_RECOVER:
- EventHelper.report(EventId.hf1000507);
- EventHelper.timeEvent(EventId.hf1000522);
- break;
- case MemberType.APP_VIDEO_RECOVER:
- EventHelper.report(EventId.hf1000509);
- EventHelper.timeEvent(EventId.hf1000524);
- break;
- case MemberType.APP_AUDIO_RECOVER:
- EventHelper.report(EventId.hf1000511);
- EventHelper.timeEvent(EventId.hf1000526);
- break;
- case MemberType.APP_IMAGE_CLEAN:
- EventHelper.report(EventId.hf1000513);
- EventHelper.timeEvent(EventId.hf1000528);
- break;
- }
- }
- private void initCommentData() {
- List<EvaluateBean> evaluateBeans = new ArrayList<>();
- evaluateBeans.add(new EvaluateBean(R.drawable.icon_evaluate_1, "冬季温暖优雅", "我非常满意数据恢复服务的效果。他们专业的团队帮助我成功恢复了丢失的文件,让我感到非常安心和放心。他们高效的工作速度和专业的技术水平让我对他们的服务印象深刻。强烈推荐!"));
- evaluateBeans.add(new EvaluateBean(R.drawable.icon_evaluate_2, "Starlight99", "我遇到了数据丢失的问题,但幸运的是找到了文件数据恢复大师。他们的技术团队非常专业,通过他们的努力,我成功地恢复了关键文件。他们提供的服务超出了我的期望,我对他们的工作非常满意。如果您需要数据恢复,我强烈推荐选择他们!"));
- evaluateBeans.add(new EvaluateBean(R.drawable.icon_evaluate_3, "FreeSpirit777", "文件数据恢复大师为我提供了出色的帮助。他们的团队非常耐心地解释了整个恢复过程,并及时与我沟通进展。最重要的是,他们成功地找回了我认为已经永远丢失的数据。感谢他们的专业和高效服务!"));
- evaluateList.setValue(evaluateBeans);
- }
- public void refreshMemberDetail() {
- if (TextUtils.isEmpty(memberType)) {
- return;
- }
- memberRepository.memberDetail(memberType)
- .subscribe(new SingleObserver<MemberDetailResponse>() {
- @Override
- public void onSubscribe(@NonNull Disposable d) {
- addDisposable(d);
- }
- @Override
- public void onSuccess(@NonNull MemberDetailResponse memberDetailResponse) {
- memberGoodsList.setValue(memberDetailResponse.getList());
- payWayList.setValue(memberDetailResponse.getPayOptions());
- serviceContentTxt = memberDetailResponse.getDescription();
- List<MemberGoodsBean> list = memberDetailResponse.getList();
- if (list != null && !list.isEmpty()) {
- for (MemberGoodsBean bean : list) {
- if (Objects.equals(bean.getAuths(), MemberType.APP_WX_MESSAGE_RECOVER)) {
- scenesDataList.setValue(new String[]{"微信好友误删", "微信信息恢复", "导出微信记录", "左滑误删消息"});
- break;
- } else if (Objects.equals(bean.getAuths(), MemberType.APP_WX_FRIEND_RECOVER)) {
- scenesDataList.setValue(new String[]{"微信好友被删", "微信好友找回", "恢复恢复好友"});
- break;
- } else if (Objects.equals(bean.getAuths(), MemberType.APP_IMAGE_RECOVER)) {
- scenesDataList.setValue(new String[]{"相册误删图片", "手机图片丢失", "手机照片找回"});
- break;
- } else if (Objects.equals(bean.getAuths(), MemberType.APP_FILE_RECOVER)) {
- scenesDataList.setValue(new String[]{"手机文件清理", "多类型文件找回", "微信/QQ文件找回"});
- break;
- } else if (Objects.equals(bean.getAuths(), MemberType.APP_VIDEO_RECOVER)) {
- scenesDataList.setValue(new String[]{"误删手机视频", "手机视频丢失", "手机视频找回"});
- break;
- } else if (Objects.equals(bean.getAuths(), MemberType.APP_AUDIO_RECOVER)) {
- scenesDataList.setValue(new String[]{"误删手机音频", "手机音频丢失", "手机音频找回"});
- break;
- } else if (Objects.equals(bean.getAuths(), MemberType.APP_IMAGE_CLEAN)) {
- scenesDataList.setValue(new String[]{"手机图片彻底删除", "选择清除手机图片", "扫描手机图片"});
- break;
- }
- }
- }
- }
- @Override
- public void onError(@NonNull Throwable e) {
- e.printStackTrace();
- }
- });
- }
- public boolean isMember() {
- return false;
- }
- public MemberGoodsBean getMostBuyItem() {
- List<MemberGoodsBean> memberBeans = memberGoodsList.getValue();
- if (memberBeans == null) {
- return null;
- }
- for (MemberGoodsBean memberBean : memberBeans) {
- if (Objects.equals(memberBean.getAuths(), MemberType.APP_SUPER_RECOVER)) {
- return memberBean;
- }
- }
- return null;
- }
- public void setCurrentSelectedMember(MemberGoodsBean memberBean) {
- if (Objects.equals(memberBean, selectBean.getValue())) {
- return;
- }
- selectBean.setValue(memberBean);
- }
- public void onRetainMemberSubscribeClick() {
- // if (!BoxingUtil.boxing(accountRepository.getIsLogin().getValue())) {
- // ToastUtil.show(R.string.no_login, ToastUtil.LENGTH_SHORT);
- // LoginActivity.start(ActivityUtil.getTopActivity());
- // return;
- // }
- MemberGoodsBean mostBuyItem = getMostBuyItem();
- if (mostBuyItem == null) {
- return;
- }
- setCurrentSelectedMember(mostBuyItem);
- //选择支付方式
- showChoicePayWayDialog.call();
- }
- public void onMemberSubscribeClick() {
- if (ConfigRepository.isTargetSuffixChannel(ChannelId.VIVO)) {
- if (!BoxingUtil.boxing(accountRepository.getIsLogin().getValue())) {
- ToastUtil.show(R.string.no_login, ToastUtil.LENGTH_SHORT);
- LoginActivity.start(ActivityUtil.getTopActivity(), ReportUtil.getReportId(memberType));
- return;
- }
- }
- EventHelper.report(EventId.hf1000602, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(memberType)));
- MemberGoodsBean currentSelected = selectBean.getValue();
- if (currentSelected == null) {
- return;
- }
- //选择支付方式
- showChoicePayWayDialog.call();
- }
- public void submitOrder(int payPlatform, int payMethod) {
- MemberGoodsBean bean = selectBean.getValue();
- if (bean == null) {
- return;
- }
- if (payPlatform == 1 && payMethod == 2) {
- } else if (payPlatform == 4 && payMethod == 2) {
- } else if (payPlatform == 1 && payMethod == 1) {
- EventHelper.report(EventId.hf1000603, Maps.asMap(EventId.EVENT_ID, "hf11023"));
- } else if (payPlatform == 4 && payMethod == 1) {
- EventHelper.report(EventId.hf1000603, Maps.asMap(EventId.EVENT_ID, "hf11024"));
- }
- memberRepository.requestPayOrder(bean.getId(), payPlatform, payMethod).subscribe(new SingleObserver<MemberPayResponse>() {
- @Override
- public void onSubscribe(@NonNull Disposable d) {
- addDisposable(d);
- showLoadingEvent.setValue(true);
- }
- @Override
- public void onSuccess(@NonNull MemberPayResponse memberPayResponse) {
- showLoadingEvent.setValue(false);
- orderIdItemMap.put(memberPayResponse.getOutTradeNo(), bean);
- payRepository.refreshOrderPageList();
- if (payPlatform == 1 && payMethod == 2) {
- onWeChatPay(memberPayResponse.getWechatPayPrepayJson(), memberPayResponse.getOutTradeNo());
- } else if (payPlatform == 4 && payMethod == 2) {
- onWeChatScanPay(memberPayResponse.getWechatPayPrepayJson(), memberPayResponse.getOutTradeNo());
- } else if (payPlatform == 1 && payMethod == 1) {
- onAliPay(memberPayResponse.getAlipayOrderString(), memberPayResponse.getOutTradeNo());
- } else if (payPlatform == 4 && payMethod == 1) {
- onAliPayScan(memberPayResponse.getAlipayQrcodeHtml(), memberPayResponse.getOutTradeNo());
- }
- }
- @Override
- public void onError(@NonNull Throwable throwable) {
- throwable.printStackTrace();
- showLoadingEvent.setValue(false);
- if (throwable instanceof RxHttpHandler.ServerErrorException) {
- RxHttpHandler.ServerErrorException serverErrorException = (RxHttpHandler.ServerErrorException) throwable;
- if (serverErrorException.getCode() == ErrorCode.ERROR_CODE_NO_LOGIN_ERROR) {
- ToastUtil.show(R.string.no_login, ToastUtil.LENGTH_SHORT);
- LoginActivity.start(ActivityUtil.getTopActivity(), ReportUtil.getReportId(memberType));
- } else if (serverErrorException.getCode() == ErrorCode.ERROR_CODE_HAS_PERMISSION_ERROR) {
- deviceFuncRepository.refreshFuncAuths();
- payRepository.refreshOrderPageList();
- } else {
- ToastUtil.show(serverErrorException.getMsg(), ToastUtil.LENGTH_SHORT);
- }
- } else {
- ToastUtil.show(R.string.member_payment_failed, ToastUtil.LENGTH_SHORT);
- }
- }
- });
- }
- private void onAliPayScan(String s, String orderId) {
- showAliQRPaymentEvent.setValue(new Pair<>(s, orderId));
- }
- private void onAliPay(String s, String orderId) {
- AlipayInfo alipayInfo = new AlipayInfo();
- alipayInfo.setContent(s);
- requestSdkPay(alipayInfo, orderId, Constants.PAYMENT_WAY_ALIPAY);
- }
- private void onWeChatScanPay(String s, String orderId) {
- showWxQRPaymentEvent.setValue(new Pair<>(s, orderId));
- }
- private void onWeChatPay(String s, String orderId) {
- try {
- WechatPaymentSignBean wechatPaymentSignBean = gson.fromJson(s, WechatPaymentSignBean.class);
- WXpayInfo wXpayInfo = new WXpayInfo();
- wXpayInfo.setAppid(wechatPaymentSignBean.getAppId());
- wXpayInfo.setPartnerid(wechatPaymentSignBean.getPartnerId());
- wXpayInfo.setPrepayid(wechatPaymentSignBean.getPrePayId());
- wXpayInfo.set_package(wechatPaymentSignBean.getPackageName());
- wXpayInfo.setNoncestr(wechatPaymentSignBean.getRandomStr());
- wXpayInfo.setTimestamp(wechatPaymentSignBean.getTimeStamp());
- wXpayInfo.setSign(wechatPaymentSignBean.getSign());
- requestSdkPay(wXpayInfo, orderId, Constants.PAYMENT_WAY_WECHAT);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- private void requestSdkPay(Object payInfo, String orderId, int payWay) {
- AgilePay.pay(payInfo, ActivityUtil.getTopActivity(), new AgilePayState() {
- @Override
- public void error(int errno, String error) {
- if (errno == 6001) {
- //用户取消支付
- EventHelper.report(EventId.hf1000606, Maps.asMap(EventId.EVENT_ID, "hf11028"));
- return;
- }
- EventHelper.report(EventId.hf1000606, Maps.asMap(EventId.EVENT_ID, "hf11022"));
- ToastUtil.show(R.string.member_payment_failed, ToastUtil.LENGTH_SHORT);
- }
- @Override
- public void payError(int errno, String error) {
- if (errno == 6001) {
- //用户取消支付
- EventHelper.report(EventId.hf1000606, Maps.asMap(EventId.EVENT_ID, "hf11028"));
- return;
- }
- EventHelper.report(EventId.hf1000606, Maps.asMap(EventId.EVENT_ID, "hf11022"));
- ToastUtil.show(R.string.member_payment_failed, ToastUtil.LENGTH_SHORT);
- }
- @Override
- public void paySuccess(String result) {
- MemberGoodsBean bean = orderIdItemMap.get(orderId);
- if (bean != null) {
- EventHelper.reportPay(bean.getAmount(), orderId, payWay, bean.getName());
- }
- queryOrderStatus(orderId, payWay, true, false);
- }
- @Override
- public void payBefore() {
- }
- });
- }
- public @NonNull Disposable queryOrderStatus(String orderId, int payWay, boolean showLoading, boolean isReportPay) {
- MemberGoodsBean memberBean = orderIdItemMap.get(orderId);
- if (memberBean != null && isReportPay) {
- OrderReportHelper.recordOrderId(memberBean.getAmount(), orderId, payWay, memberBean.getName());
- }
- return memberRepository.getPayStatus(orderId, 100, 3)
- .doOnSubscribe(disposable -> {
- if (showLoading) {
- showLoadingEvent.setValue(true);
- addDisposable(RxJavaUtil.timer(10, TimeUnit.SECONDS, () -> showLoadingEvent.setValue(false)));
- }
- })
- .doOnSuccess(success -> {
- if (isReportPay) {
- if (BoxingUtil.boxing(success) && memberBean != null) {
- EventHelper.reportPay(memberBean.getAmount(), orderId, payWay, memberBean.getName());
- }
- }
- })
- .subscribe(aBoolean -> {
- showLoadingEvent.setValue(false);
- if (BoxingUtil.boxing(aBoolean)) {
- EventHelper.report(EventId.hf1000604, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(memberType)));
- if (memberBean != null) {
- Map<String, Object> map = new HashMap<>();
- if (Objects.equals(memberBean.getAuths(), MemberType.APP_SUPER_RECOVER)) {
- map.put(EventId.EVENT_ID, "hf11026");
- EventHelper.report(EventId.hf1000605, map);
- } else if (Objects.equals(memberBean.getAuths(), MemberType.APP_IMAGE_CLEAN) && memberBean.isPopular()) {
- map.put(EventId.EVENT_ID, "hf11027");
- EventHelper.report(EventId.hf1000605, map);
- } else {
- map.put(EventId.EVENT_ID, "hf11025");
- }
- map.put(EventId.EVENT_TYPE1, ReportUtil.getReportId(memberType));
- EventHelper.report(EventId.hf1000605, map);
- }
- payRepository.refreshOrderPageList();
- onSubscribeSuccessEvent.setValue(orderId);
- }
- }, throwable -> {
- throwable.printStackTrace();
- showLoadingEvent.setValue(false);
- });
- }
- @Override
- protected void onCleared() {
- super.onCleared();
- switch (memberType) {
- case MemberType.APP_WX_MESSAGE_RECOVER:
- EventHelper.report(EventId.hf1000516);
- break;
- case MemberType.APP_WX_FRIEND_RECOVER:
- EventHelper.report(EventId.hf1000518);
- break;
- case MemberType.APP_IMAGE_RECOVER:
- EventHelper.report(EventId.hf1000520);
- break;
- case MemberType.APP_FILE_RECOVER:
- EventHelper.report(EventId.hf1000522);
- break;
- case MemberType.APP_VIDEO_RECOVER:
- EventHelper.report(EventId.hf1000524);
- break;
- case MemberType.APP_AUDIO_RECOVER:
- EventHelper.report(EventId.hf1000526);
- break;
- case MemberType.APP_IMAGE_CLEAN:
- EventHelper.report(EventId.hf1000528);
- break;
- }
- }
- public List<Pair<CharSequence, CharSequence>> getInformationList() {
- informationList.clear();
- switch (memberType) {
- case MemberType.APP_WX_MESSAGE_RECOVER:
- informationList.add(new Pair<>(getInformationCharSequence("134*****190 购买了", "超级恢复"), "1分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("123*****810 购买了", "微信消息恢复"), "3分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("122*****910 购买了", "超级恢复"), "7分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("187*****724 购买了", "超级恢复"), "9分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("156*****586 购买了", "微信消息恢复"), "11分钟前"));
- break;
- case MemberType.APP_WX_FRIEND_RECOVER:
- informationList.add(new Pair<>(getInformationCharSequence("145*****356 购买了", "微信好友恢复"), "2分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("176*****457 购买了", "微信好友恢复"), "6分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("163*****246 购买了", "超级恢复"), "10分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("162*****471 购买了", "超级恢复"), "13分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("192*****279 购买了", "微信好友恢复"), "14分钟前"));
- break;
- case MemberType.APP_IMAGE_RECOVER:
- informationList.add(new Pair<>(getInformationCharSequence("194*****356 购买了", "图片恢复"), "5分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("176*****457 购买了", "超级恢复"), "6分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("165*****126 购买了", "超级恢复"), "9分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("174*****471 购买了", "超级恢复"), "13分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("175*****279 购买了", "图片恢复"), "16分钟前"));
- break;
- case MemberType.APP_FILE_RECOVER:
- informationList.add(new Pair<>(getInformationCharSequence("143*****356 购买了", "文件恢复"), "5分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("144*****352 购买了", "超级恢复"), "6分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("153*****421 购买了", "文件恢复"), "9分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("159*****471 购买了", "超级恢复"), "13分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("165*****279 购买了", "文件恢复"), "16分钟前"));
- break;
- case MemberType.APP_VIDEO_RECOVER:
- informationList.add(new Pair<>(getInformationCharSequence("165*****356 购买了", "视频恢复"), "2分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("167*****245 购买了", "超级恢复"), "6分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("182*****412 购买了", "视频恢复"), "7分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("199*****471 购买了", "超级恢复"), "13分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("131*****276 购买了", "超级恢复"), "15分钟前"));
- break;
- case MemberType.APP_AUDIO_RECOVER:
- informationList.add(new Pair<>(getInformationCharSequence("187*****096 购买了", "视频恢复"), "2分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("178*****045 购买了", "超级恢复"), "3分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("193*****012 购买了", "视频恢复"), "6分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("199*****571 购买了", "超级恢复"), "8分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("150*****170 购买了", "超级恢复"), "11分钟前"));
- break;
- case MemberType.APP_IMAGE_CLEAN:
- informationList.add(new Pair<>(getInformationCharSequence("163*****754 购买了", "图片清除(永久)"), "2分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("195*****346 购买了", "图片清除(永久)"), "3分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("193*****054 购买了", "图片清除(年)"), "6分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("131*****571 购买了", "图片清除(永久)"), "8分钟前"));
- informationList.add(new Pair<>(getInformationCharSequence("148*****117 购买了", "图片清除(年)"), "11分钟前"));
- break;
- }
- return informationList;
- }
- public CharSequence getInformationCharSequence(String prefix, String suffix) {
- return new SpannableStringBuilder()
- .append(prefix)
- .append(String.format("%s", suffix), new ForegroundColorSpan(Color.parseColor("#FFF187")), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
- }
- }
|