瀏覽代碼

增加埋点&积分使用后刷新积分

zk 1 年之前
父節點
當前提交
5ded588942

+ 8 - 0
app/src/main/java/com/atmob/voiceai/data/consts/EventId.java

@@ -51,4 +51,12 @@ public interface EventId {
     String ratestarnub_001 = "ratestarnub_001";//评分弹窗选星星	点击选中,带选中1-5哪个星星
     String ratebadsubmit_001 = "ratebadsubmit_001";//评分弹窗提交(1-3星)	按钮点击,带提交时选中的星星数量、反馈的内容
     String ratewinclose_001 = "ratewinclose_001";//评分弹窗关闭按钮	按钮点击
+
+    //105新增
+    String neigoupage_001 = "neigoupage_001"; // 内购页 进入页面
+    String neigouchoose_001 = "neigouchoose_001"; // 内购页-内购项 点击选中,带内购商品ID
+    String neigoubuyclick_001 = "neigoubuyclick_001"; // 内购页-内购项-Buy 按钮点击,带内购商品ID
+    String neigourestoreclick_001 = "neigourestoreclick_001"; // 内购页-恢复按钮点击 按钮点击
+    String neigourestoreok_001 = "neigourestoreok_001"; // 内购页-恢复成功 按钮点击
+    String neigourestorefailed_001 = "neigourestorefailed_001"; // 内购页-恢复失败 按钮点击
 }

+ 4 - 1
app/src/main/java/com/atmob/voiceai/data/repositories/CloneRepository.java

@@ -56,6 +56,7 @@ public class CloneRepository {
 
     private final MutableLiveData<List<CloneVoiceListBean>> cloneVoiceList = new MutableLiveData<>();
     private final MutableLiveData<Integer> cloneUploadState = new MutableLiveData<>();
+    private final MemberRepository memberRepository;
 
     private boolean requestListFlag = false;
     private boolean requestCloneFlag = false;
@@ -68,8 +69,9 @@ public class CloneRepository {
     }
 
     @Inject
-    public CloneRepository(AtmobApi atmobApi, VoiceAIRepository voiceAIRepository) {
+    public CloneRepository(AtmobApi atmobApi, MemberRepository memberRepository, VoiceAIRepository voiceAIRepository) {
         this.atmobApi = atmobApi;
+        this.memberRepository = memberRepository;
         this.voiceAIRepository = voiceAIRepository;
         refreshCloneList();
     }
@@ -191,6 +193,7 @@ public class CloneRepository {
         return atmobApi.voiceClone(body)
                 .compose(RxHttpHandler.handle(false))
                 .compose(RxJavaUtil.SingleSchedule.io2Main())
+                .doOnSuccess(response -> memberRepository.refreshUserData())
                 .doOnSuccess(response -> {
                     refreshCloneList();
                     voiceAIRepository.setCloneExecuteSuccessEvent();

+ 5 - 2
app/src/main/java/com/atmob/voiceai/data/repositories/VoiceAIRepository.java

@@ -56,6 +56,7 @@ public class VoiceAIRepository {
 
     private final SingleLiveEvent<?> cloneExecuteSuccess = new SingleLiveEvent<>();
     private final OkHttpClient okHttpClient;
+    private final MemberRepository memberRepository;
     private boolean textToSpeechRequest;
 
     private VoiceListBean requestCloneBean;
@@ -75,8 +76,9 @@ public class VoiceAIRepository {
     }
 
     @Inject
-    public VoiceAIRepository(AtmobApi atmobApi, HistoryRepository historyRepository, OkHttpClient okHttpClient) {
+    public VoiceAIRepository(AtmobApi atmobApi, MemberRepository memberRepository, HistoryRepository historyRepository, OkHttpClient okHttpClient) {
         this.atmobApi = atmobApi;
+        this.memberRepository = memberRepository;
         this.okHttpClient = okHttpClient;
         this.historyRepository = historyRepository;
     }
@@ -202,7 +204,8 @@ public class VoiceAIRepository {
         return atmobApi.textToSpeech(new TextTosSpeechRequest(id, voiceType, content))
                 .compose(RxHttpHandler.handle(true))
                 .compose(RxJavaUtil.SingleSchedule.io2Main())
-                .doOnSuccess(data -> historyRepository.refreshCloneHistory(1));
+                .doOnSuccess(data -> historyRepository.refreshCloneHistory(1))
+                .doOnSuccess(data -> memberRepository.refreshUserData());
     }
 
 

+ 14 - 1
app/src/main/java/com/atmob/voiceai/module/integral/IntegralPurchaseViewModel.java

@@ -18,7 +18,9 @@ import com.atmob.voiceai.data.api.bean.GoodsBean;
 import com.atmob.voiceai.data.api.bean.PayOptionsBean;
 import com.atmob.voiceai.data.api.response.OrderPayResponse;
 import com.atmob.voiceai.data.consts.ErrorCode;
+import com.atmob.voiceai.data.consts.EventId;
 import com.atmob.voiceai.data.repositories.MemberRepository;
+import com.atmob.voiceai.handlers.EventHandler;
 import com.atmob.voiceai.helper.ErrorHelper;
 import com.atmob.voiceai.sdk.billing.GPBillingClient;
 import com.atmob.voiceai.utils.BoxingUtil;
@@ -66,6 +68,7 @@ public class IntegralPurchaseViewModel extends BaseViewModel {
         this.gpBillingClient = gpBillingClient;
         init();
         refreshIntegralPurchaseDetail();
+        EventHandler.report(EventId.neigoupage_001);
     }
 
     public LiveData<List<GoodsBean>> getGoodsList() {
@@ -94,6 +97,11 @@ public class IntegralPurchaseViewModel extends BaseViewModel {
 
     public void setCheckGoodsBean(GoodsBean checkGoodsBean) {
         this.checkGoodsBean = checkGoodsBean;
+        if (checkGoodsBean != null) {
+            Bundle bundle = new Bundle();
+            bundle.putString(EventId.ID, String.valueOf(checkGoodsBean.getId()));
+            EventHandler.report(EventId.neigouchoose_001, bundle);
+        }
     }
 
 
@@ -171,6 +179,9 @@ public class IntegralPurchaseViewModel extends BaseViewModel {
         PayOptionsBean payOptionsBean = payList.get(0);
         int payPlatform = payOptionsBean.getPayPlatform();
         int payMethod = payOptionsBean.getPayMethod();
+        Bundle bundle = new Bundle();
+        bundle.putString(EventId.ID, String.valueOf(checkGoodsBean.getId()));
+        EventHandler.report(EventId.neigoubuyclick_001, bundle);
         memberRepository.requestGoodsPayOrder(BillingClient.ProductType.INAPP, checkGoodsBean.getId(), payPlatform, payMethod)
                 .subscribe(new SingleObserver<OrderPayResponse>() {
                     @Override
@@ -249,8 +260,8 @@ public class IntegralPurchaseViewModel extends BaseViewModel {
     }
 
 
-
     public void onRestoreClick() {
+        EventHandler.report(EventId.neigourestoreclick_001);
         memberRepository.oneTimePurchaseResume()
                 .subscribe(new SingleObserver<Object>() {
                     @Override
@@ -264,12 +275,14 @@ public class IntegralPurchaseViewModel extends BaseViewModel {
                         showLoading.setValue(new Pair<>(false, null));
                         finishEvent.call();
                         ToastUtil.show(R.string.onetime_purchase_success, ToastUtil.LENGTH_SHORT);
+                        EventHandler.report(EventId.neigourestoreok_001);
                     }
 
                     @Override
                     public void onError(@NonNull Throwable e) {
                         showLoading.setValue(new Pair<>(false, null));
                         ErrorHelper.errorThrowableToast(e, ToastUtil.LENGTH_SHORT);
+                        EventHandler.report(EventId.neigourestorefailed_001);
                     }
                 });
     }