Browse Source

增加试用埋点

zk 1 year ago
parent
commit
84a13e13a7

+ 17 - 2
app/src/main/java/com/datarecovery/master/module/audiorecover/AudioRecoverActivity.java

@@ -20,17 +20,21 @@ import androidx.recyclerview.widget.RecyclerView;
 import com.atmob.app.lib.base.BaseActivity;
 import com.atmob.common.ui.SizeUtil;
 import com.datarecovery.master.R;
+import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.databinding.ActivityAudioRecoverBinding;
 import com.datarecovery.master.databinding.PopupAudioRecoverFilterBinding;
 import com.datarecovery.master.dialog.CommonLoadingDialog;
 import com.datarecovery.master.dialog.CommonSureDialog;
 import com.datarecovery.master.dialog.ScanFileDialog;
 import com.datarecovery.master.dialog.ScanProgressDialog;
+import com.datarecovery.master.handler.EventHelper;
 import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.module.preview.PreviewActivity;
 import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FilePermissionHelper;
 import com.datarecovery.master.utils.FilesSearch;
+import com.datarecovery.master.utils.Maps;
+import com.datarecovery.master.utils.ReportUtil;
 import com.gyf.immersionbar.ImmersionBar;
 
 import dagger.hilt.android.AndroidEntryPoint;
@@ -144,9 +148,14 @@ public class AudioRecoverActivity extends BaseActivity<ActivityAudioRecoverBindi
             showTrialFinishDialog = new CommonSureDialog(this);
             showTrialFinishDialog.setDialogTitle(getString(R.string.scanning_progress, 7))
                     .setDialogContent(getString(R.string.trial_scanning_finish_content, 7)).setSureText(R.string.dialog_trial_recover);
-            showTrialFinishDialog.setOnDialogClickListener(() -> audioRecoverViewModel.onTrialRecoverClick());
+            showTrialFinishDialog.setOnDialogClickListener(() -> {
+                audioRecoverViewModel.onTrialRecoverClick();
+                EventHelper.report(EventId.hf1001121, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_AUDIO_RECOVER)));
+            });
+            showTrialFinishDialog.setOnDismissListener(dialog -> EventHelper.report(EventId.hf1001122, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_AUDIO_RECOVER))));
         }
         if (!showTrialFinishDialog.isShowing()) {
+            EventHelper.report(EventId.hf1001118, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_AUDIO_RECOVER)));
             showTrialFinishDialog.show();
         }
     }
@@ -156,10 +165,16 @@ public class AudioRecoverActivity extends BaseActivity<ActivityAudioRecoverBindi
             showTrialExportFailDialog = new CommonSureDialog(this);
             showTrialExportFailDialog.setDialogTitle(R.string.trial_export_fail_title)
                     .setDialogContent(R.string.trial_export_fail_content).setSureText(R.string.dialog_trial_recover);
-            showTrialExportFailDialog.setOnDialogClickListener(() -> audioRecoverViewModel.onTrialRecoverClick());
+            showTrialFinishDialog.setOnDialogClickListener(() -> {
+                audioRecoverViewModel.onTrialRecoverClick();
+                EventHelper.report(EventId.hf1001123, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_AUDIO_RECOVER)));
+            });
+            showTrialFinishDialog.setOnDismissListener(dialog -> EventHelper.report(EventId.hf1001124, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_AUDIO_RECOVER))));
+
         }
         if (!showTrialExportFailDialog.isShowing()) {
             showTrialExportFailDialog.show();
+            EventHelper.report(EventId.hf1001120, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_AUDIO_RECOVER)));
         }
     }
 

+ 9 - 1
app/src/main/java/com/datarecovery/master/module/audiorecover/AudioRecoverViewModel.java

@@ -19,7 +19,9 @@ import com.datarecovery.master.sdk.bugly.BuglyHelper;
 import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FileUtil;
 import com.datarecovery.master.utils.FilesSearch;
+import com.datarecovery.master.utils.Maps;
 import com.datarecovery.master.utils.MediaStoreHelper;
+import com.datarecovery.master.utils.ReportUtil;
 import com.datarecovery.master.utils.ToastUtil;
 
 import org.reactivestreams.Subscriber;
@@ -424,9 +426,15 @@ public class AudioRecoverViewModel extends BaseViewModel {
         MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_AUDIO_RECOVER);
     }
 
+    public void onViewTrialRecoverClick() {
+        EventHelper.report(EventId.hf1001117, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_AUDIO_RECOVER)));
+        MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_AUDIO_RECOVER);
+    }
+
     public void scrollPosition(int firstCompletePosition, int lastCompletelyItemPosition, int itemCount) {
         if (lastCompletelyItemPosition == itemCount - 1 && firstCompletePosition > 0 && !BoxingUtil.boxing(showScanDialogEvent.getValue())) {
-            showTrialExportFailDialog.call();
+            showTrialFinishDialog.call();
+            EventHelper.report(EventId.hf1001119, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_AUDIO_RECOVER)));
         }
     }
 }

+ 16 - 2
app/src/main/java/com/datarecovery/master/module/filerecover/FileRecoverActivity.java

@@ -12,15 +12,19 @@ import androidx.viewpager2.widget.ViewPager2;
 
 import com.atmob.app.lib.base.BaseActivity;
 import com.datarecovery.master.R;
+import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.databinding.ActivityFileRecoverBinding;
 import com.datarecovery.master.databinding.ItemTabFileRecoverBinding;
 import com.datarecovery.master.dialog.CommonLoadingDialog;
 import com.datarecovery.master.dialog.CommonSureDialog;
 import com.datarecovery.master.dialog.ScanFileDialog;
 import com.datarecovery.master.dialog.ScanProgressDialog;
+import com.datarecovery.master.handler.EventHelper;
 import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FilePermissionHelper;
+import com.datarecovery.master.utils.Maps;
+import com.datarecovery.master.utils.ReportUtil;
 import com.google.android.material.tabs.TabLayout;
 import com.google.android.material.tabs.TabLayoutMediator;
 
@@ -102,10 +106,15 @@ public class FileRecoverActivity extends BaseActivity<ActivityFileRecoverBinding
             showTrialFinishDialog = new CommonSureDialog(this);
             showTrialFinishDialog.setDialogTitle(getString(R.string.scanning_progress, 10))
                     .setDialogContent(getString(R.string.trial_scanning_finish_content, 10)).setSureText(R.string.dialog_trial_recover);
-            showTrialFinishDialog.setOnDialogClickListener(() -> fileRecoverViewModel.onTrialRecoverClick());
+            showTrialFinishDialog.setOnDialogClickListener(() -> {
+                fileRecoverViewModel.onTrialRecoverClick();
+                EventHelper.report(EventId.hf1001121, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_FILE_RECOVER)));
+            });
+            showTrialFinishDialog.setOnDismissListener(dialog -> EventHelper.report(EventId.hf1001122, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_FILE_RECOVER))));
         }
         if (!showTrialFinishDialog.isShowing()) {
             showTrialFinishDialog.show();
+            EventHelper.report(EventId.hf1001118, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_FILE_RECOVER)));
         }
     }
 
@@ -114,10 +123,15 @@ public class FileRecoverActivity extends BaseActivity<ActivityFileRecoverBinding
             showTrialExportFailDialog = new CommonSureDialog(this);
             showTrialExportFailDialog.setDialogTitle(R.string.trial_export_fail_title)
                     .setDialogContent(R.string.trial_export_fail_content).setSureText(R.string.dialog_trial_recover);
-            showTrialExportFailDialog.setOnDialogClickListener(() -> fileRecoverViewModel.onTrialRecoverClick());
+            showTrialFinishDialog.setOnDialogClickListener(() -> {
+                fileRecoverViewModel.onTrialRecoverClick();
+                EventHelper.report(EventId.hf1001123, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_FILE_RECOVER)));
+            });
+            showTrialFinishDialog.setOnDismissListener(dialog -> EventHelper.report(EventId.hf1001124, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_FILE_RECOVER))));
         }
         if (!showTrialExportFailDialog.isShowing()) {
             showTrialExportFailDialog.show();
+            EventHelper.report(EventId.hf1001120, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_FILE_RECOVER)));
         }
     }
 

+ 9 - 1
app/src/main/java/com/datarecovery/master/module/filerecover/FileRecoverViewModel.java

@@ -20,7 +20,9 @@ import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FileUtil;
 import com.datarecovery.master.utils.FilesSearch;
 import com.datarecovery.master.utils.ImageDeepDetector;
+import com.datarecovery.master.utils.Maps;
 import com.datarecovery.master.utils.MediaStoreHelper;
+import com.datarecovery.master.utils.ReportUtil;
 import com.datarecovery.master.utils.ToastUtil;
 
 import org.reactivestreams.Subscriber;
@@ -356,9 +358,15 @@ public class FileRecoverViewModel extends BaseViewModel {
         MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_FILE_RECOVER);
     }
 
+    public void onViewTrialRecoverClick() {
+        EventHelper.report(EventId.hf1001117, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_FILE_RECOVER)));
+        MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_FILE_RECOVER);
+    }
+
     public void scrollPosition(int firstCompletePosition, int lastCompletelyItemPosition, int itemCount) {
         if (lastCompletelyItemPosition == itemCount - 1 && firstCompletePosition > 0 && !BoxingUtil.boxing(showScanDialogEvent.getValue())) {
-            showTrialExportFailDialog.call();
+            showTrialFinishDialog.call();
+            EventHelper.report(EventId.hf1001119, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_FILE_RECOVER)));
         }
     }
 }

+ 17 - 2
app/src/main/java/com/datarecovery/master/module/imgrecover/ImageRecoverActivity.java

@@ -4,6 +4,7 @@ import android.annotation.SuppressLint;
 import android.app.Activity;
 import android.app.PendingIntent;
 import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.IntentSender;
 import android.net.Uri;
@@ -25,12 +26,14 @@ import com.atmob.common.logging.AtmobLog;
 import com.atmob.common.runtime.ActivityUtil;
 import com.atmob.common.runtime.ContextUtil;
 import com.datarecovery.master.R;
+import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.databinding.ActivityImageRecoverBinding;
 import com.datarecovery.master.databinding.ItemTabImageRecoverBinding;
 import com.datarecovery.master.dialog.CommonLoadingDialog;
 import com.datarecovery.master.dialog.CommonSureDialog;
 import com.datarecovery.master.dialog.ScanFileDialog;
 import com.datarecovery.master.dialog.ScanProgressDialog;
+import com.datarecovery.master.handler.EventHelper;
 import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.module.preview.PreviewActivity;
 import com.datarecovery.master.utils.ActivityForResultUtil;
@@ -38,6 +41,8 @@ import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FilePermissionHelper;
 import com.datarecovery.master.utils.GridRecoverItemDecoration;
 import com.datarecovery.master.utils.ImageDeepDetector;
+import com.datarecovery.master.utils.Maps;
+import com.datarecovery.master.utils.ReportUtil;
 import com.datarecovery.master.utils.ToastUtil;
 import com.google.android.material.tabs.TabLayout;
 import com.gyf.immersionbar.ImmersionBar;
@@ -323,10 +328,15 @@ public class ImageRecoverActivity extends BaseActivity<ActivityImageRecoverBindi
             showTrialExportFailDialog = new CommonSureDialog(this);
             showTrialExportFailDialog.setDialogTitle(R.string.trial_export_fail_title)
                     .setDialogContent(R.string.trial_export_fail_content).setSureText(R.string.dialog_trial_recover);
-            showTrialExportFailDialog.setOnDialogClickListener(() -> imageRecoverViewModel.onTrialRecoverClick());
+            showTrialFinishDialog.setOnDialogClickListener(() -> {
+                imageRecoverViewModel.onTrialRecoverClick();
+                EventHelper.report(EventId.hf1001123, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_IMAGE_RECOVER)));
+            });
+            showTrialFinishDialog.setOnDismissListener(dialog -> EventHelper.report(EventId.hf1001124, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_IMAGE_RECOVER))));
         }
         if (!showTrialExportFailDialog.isShowing()) {
             showTrialExportFailDialog.show();
+            EventHelper.report(EventId.hf1001120, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_IMAGE_RECOVER)));
         }
     }
 
@@ -335,10 +345,15 @@ public class ImageRecoverActivity extends BaseActivity<ActivityImageRecoverBindi
             showTrialFinishDialog = new CommonSureDialog(this);
             showTrialFinishDialog.setDialogTitle(getString(R.string.scanning_progress, 13))
                     .setDialogContent(getString(R.string.trial_scanning_finish_content, 13)).setSureText(R.string.dialog_trial_recover);
-            showTrialFinishDialog.setOnDialogClickListener(() -> imageRecoverViewModel.onTrialRecoverClick());
+            showTrialFinishDialog.setOnDialogClickListener(() -> {
+                imageRecoverViewModel.onTrialRecoverClick();
+                EventHelper.report(EventId.hf1001121, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_IMAGE_RECOVER)));
+            });
+            showTrialFinishDialog.setOnDismissListener(dialog -> EventHelper.report(EventId.hf1001122, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_IMAGE_RECOVER))));
         }
         if (!showTrialFinishDialog.isShowing()) {
             showTrialFinishDialog.show();
+            EventHelper.report(EventId.hf1001118, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_IMAGE_RECOVER)));
         }
     }
 

+ 9 - 1
app/src/main/java/com/datarecovery/master/module/imgrecover/ImageRecoverViewModel.java

@@ -28,7 +28,9 @@ import com.datarecovery.master.sdk.bugly.BuglyHelper;
 import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FileUtil;
 import com.datarecovery.master.utils.ImageDeepDetector;
+import com.datarecovery.master.utils.Maps;
 import com.datarecovery.master.utils.MediaStoreHelper;
+import com.datarecovery.master.utils.ReportUtil;
 import com.datarecovery.master.utils.ToastUtil;
 
 import org.reactivestreams.Subscription;
@@ -631,9 +633,15 @@ public class ImageRecoverViewModel extends BaseViewModel {
         MemberActivity.start(ActivityUtil.getTopActivity(), type);
     }
 
+    public void onViewTrialRecoverClick() {
+        EventHelper.report(EventId.hf1001117, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(type)));
+        MemberActivity.start(ActivityUtil.getTopActivity(), type);
+    }
+
     public void scrollPosition(int firstCompletePosition, int lastCompletelyItemPosition, int itemCount) {
         if (lastCompletelyItemPosition == itemCount - 1 && firstCompletePosition > 0 && !BoxingUtil.boxing(showScanDialogEvent.getValue())) {
-            showTrialExportFailDialog.call();
+            showTrialFinishDialog.call();
+            EventHelper.report(EventId.hf1001119, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(type)));
         }
     }
 }

+ 40 - 2
app/src/main/java/com/datarecovery/master/module/preview/PreviewActivity.java

@@ -7,6 +7,7 @@ import android.content.Intent;
 import android.media.MediaPlayer;
 import android.net.Uri;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.SurfaceHolder;
 import android.widget.SeekBar;
 
@@ -18,11 +19,16 @@ import androidx.viewpager2.widget.ViewPager2;
 import com.atmob.app.lib.base.BaseActivity;
 import com.atmob.common.ui.SizeUtil;
 import com.datarecovery.master.R;
+import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.databinding.ActivityPreviewBinding;
 import com.datarecovery.master.dialog.CommonSureDialog;
+import com.datarecovery.master.handler.EventHelper;
+import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FilesSearch;
 import com.datarecovery.master.utils.ImageDeepDetector;
+import com.datarecovery.master.utils.Maps;
+import com.datarecovery.master.utils.ReportUtil;
 import com.datarecovery.master.utils.SafeMediaPlayer;
 import com.datarecovery.master.utils.ToastUtil;
 import com.gyf.immersionbar.ImmersionBar;
@@ -131,7 +137,21 @@ public class PreviewActivity extends BaseActivity<ActivityPreviewBinding> {
                         .setDialogContent(R.string.trial_export_audio_fail_content);
             }
             showFreeStopDialog.setSureText(R.string.dialog_trial_recover);
-            showFreeStopDialog.setOnDialogClickListener(() -> previewViewModel.onTrialRecoverClick());
+            showFreeStopDialog.setOnDialogClickListener(() -> {
+                if (previewViewModel.getType() == TYPE_VIDEO) {
+                    EventHelper.report(EventId.hf1001125);
+                } else if (previewViewModel.getType() == TYPE_AUDIO) {
+                    EventHelper.report(EventId.hf1001127);
+                }
+                previewViewModel.onTrialRecoverClick();
+            });
+            showFreeStopDialog.setOnDismissListener(dialog -> {
+                if (previewViewModel.getType() == TYPE_VIDEO) {
+                    EventHelper.report(EventId.hf1001126);
+                } else if (previewViewModel.getType() == TYPE_AUDIO) {
+                    EventHelper.report(EventId.hf1001128);
+                }
+            });
         }
         showFreeStopDialog.show();
     }
@@ -141,7 +161,25 @@ public class PreviewActivity extends BaseActivity<ActivityPreviewBinding> {
             showTrialExportFailDialog = new CommonSureDialog(this);
             showTrialExportFailDialog.setDialogTitle(R.string.trial_export_fail_title)
                     .setDialogContent(R.string.trial_export_fail_content).setSureText(R.string.dialog_trial_recover);
-            showTrialExportFailDialog.setOnDialogClickListener(() -> previewViewModel.onTrialRecoverClick());
+            String evenType;
+            if (previewViewModel.getType() == TYPE_IMG) {
+                evenType = MemberType.APP_IMAGE_RECOVER;
+            } else if (previewViewModel.getType() == TYPE_VIDEO) {
+                evenType = MemberType.APP_VIDEO_RECOVER;
+            } else if (previewViewModel.getType() == TYPE_AUDIO) {
+                evenType = MemberType.APP_AUDIO_RECOVER;
+            } else {
+                evenType = null;
+            }
+            showTrialExportFailDialog.setOnDialogClickListener(() -> {
+                EventHelper.report(EventId.hf1001123, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(evenType)));
+                previewViewModel.onTrialRecoverClick();
+            });
+            showTrialExportFailDialog.setOnDismissListener(dialog -> {
+                if (!TextUtils.isEmpty(evenType)) {
+                    EventHelper.report(EventId.hf1001124, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(evenType)));
+                }
+            });
         }
         showTrialExportFailDialog.show();
     }

+ 17 - 2
app/src/main/java/com/datarecovery/master/module/videorecover/VideoRecoverActivity.java

@@ -13,16 +13,20 @@ import androidx.recyclerview.widget.RecyclerView;
 
 import com.atmob.app.lib.base.BaseActivity;
 import com.datarecovery.master.R;
+import com.datarecovery.master.data.consts.EventId;
 import com.datarecovery.master.databinding.ActivityVideoRecoverBinding;
 import com.datarecovery.master.dialog.CommonLoadingDialog;
 import com.datarecovery.master.dialog.CommonSureDialog;
 import com.datarecovery.master.dialog.ScanFileDialog;
+import com.datarecovery.master.handler.EventHelper;
 import com.datarecovery.master.module.member.MemberType;
 import com.datarecovery.master.module.preview.PreviewActivity;
 import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FilePermissionHelper;
 import com.datarecovery.master.utils.FilesSearch;
 import com.datarecovery.master.utils.GridRecoverItemDecoration;
+import com.datarecovery.master.utils.Maps;
+import com.datarecovery.master.utils.ReportUtil;
 import com.gyf.immersionbar.ImmersionBar;
 
 import dagger.hilt.android.AndroidEntryPoint;
@@ -100,9 +104,14 @@ public class VideoRecoverActivity extends BaseActivity<ActivityVideoRecoverBindi
             showTrialFinishDialog = new CommonSureDialog(this);
             showTrialFinishDialog.setDialogTitle(getString(R.string.scanning_progress, 8))
                     .setDialogContent(getString(R.string.trial_scanning_finish_content, 8)).setSureText(R.string.dialog_trial_recover);
-            showTrialFinishDialog.setOnDialogClickListener(() -> videoRecoverViewModel.onTrialRecoverClick());
+            showTrialFinishDialog.setOnDialogClickListener(() -> {
+                videoRecoverViewModel.onTrialRecoverClick();
+                EventHelper.report(EventId.hf1001121, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_VIDEO_RECOVER)));
+            });
+            showTrialFinishDialog.setOnDismissListener(dialog -> EventHelper.report(EventId.hf1001122, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_VIDEO_RECOVER))));
         }
         if (!showTrialFinishDialog.isShowing()) {
+            EventHelper.report(EventId.hf1001118, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_VIDEO_RECOVER)));
             showTrialFinishDialog.show();
         }
     }
@@ -112,10 +121,16 @@ public class VideoRecoverActivity extends BaseActivity<ActivityVideoRecoverBindi
             showTrialExportFailDialog = new CommonSureDialog(this);
             showTrialExportFailDialog.setDialogTitle(R.string.trial_export_fail_title)
                     .setDialogContent(R.string.trial_export_fail_content).setSureText(R.string.dialog_trial_recover);
-            showTrialExportFailDialog.setOnDialogClickListener(() -> videoRecoverViewModel.onTrialRecoverClick());
+            showTrialFinishDialog.setOnDialogClickListener(() -> {
+                videoRecoverViewModel.onTrialRecoverClick();
+                EventHelper.report(EventId.hf1001123, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_VIDEO_RECOVER)));
+            });
+            showTrialFinishDialog.setOnDismissListener(dialog -> EventHelper.report(EventId.hf1001124, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_VIDEO_RECOVER))));
+
         }
         if (!showTrialExportFailDialog.isShowing()) {
             showTrialExportFailDialog.show();
+            EventHelper.report(EventId.hf1001120, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_VIDEO_RECOVER)));
         }
     }
 

+ 9 - 1
app/src/main/java/com/datarecovery/master/module/videorecover/VideoRecoverViewModel.java

@@ -19,7 +19,9 @@ import com.datarecovery.master.sdk.bugly.BuglyHelper;
 import com.datarecovery.master.utils.BoxingUtil;
 import com.datarecovery.master.utils.FileUtil;
 import com.datarecovery.master.utils.FilesSearch;
+import com.datarecovery.master.utils.Maps;
 import com.datarecovery.master.utils.MediaStoreHelper;
+import com.datarecovery.master.utils.ReportUtil;
 import com.datarecovery.master.utils.ToastUtil;
 
 import org.reactivestreams.Subscriber;
@@ -296,9 +298,15 @@ public class VideoRecoverViewModel extends BaseViewModel {
         MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_VIDEO_RECOVER);
     }
 
+    public void onViewTrialRecoverClick() {
+        EventHelper.report(EventId.hf1001117, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_VIDEO_RECOVER)));
+        MemberActivity.start(ActivityUtil.getTopActivity(), MemberType.APP_VIDEO_RECOVER);
+    }
+
     public void scrollPosition(int firstCompletePosition, int lastCompletelyItemPosition, int itemCount) {
         if (lastCompletelyItemPosition == itemCount - 1 && firstCompletePosition > 0 && !BoxingUtil.boxing(showScanDialogEvent.getValue())) {
-            showTrialExportFailDialog.call();
+            showTrialFinishDialog.call();
+            EventHelper.report(EventId.hf1001119, Maps.asMap(EventId.EVENT_ID, ReportUtil.getReportId(MemberType.APP_VIDEO_RECOVER)));
         }
     }
 }

+ 2 - 2
app/src/main/res/layout/activity_audio_recover.xml

@@ -106,7 +106,7 @@
             android:id="@+id/layout_trial"
             layout="@layout/layout_trial"
             progress="@{7}"
-            recoverClick="@{()->audioRecoverViewModel.onTrialRecoverClick()}"
+            recoverClick="@{()->audioRecoverViewModel.onViewTrialRecoverClick()}"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:layout_constraintTop_toBottomOf="@id/v_filter" />
@@ -127,7 +127,7 @@
             android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
             android:layout_marginBottom="12dp"
             android:background="@drawable/bg_go_recover_card"
-            android:onClick="@{()->audioRecoverViewModel.onTrialRecoverClick()}"
+            android:onClick="@{()->audioRecoverViewModel.onViewTrialRecoverClick()}"
             app:layout_constraintBottom_toTopOf="@id/v_bottom"
             app:layout_constraintDimensionRatio="255:36"
             app:layout_constraintStart_toStartOf="parent"

+ 2 - 2
app/src/main/res/layout/activity_file_recover.xml

@@ -52,7 +52,7 @@
             android:id="@+id/layout_trial"
             layout="@layout/layout_trial"
             progress="@{10}"
-            recoverClick="@{()->fileRecoverViewModel.onTrialRecoverClick()}"
+            recoverClick="@{()->fileRecoverViewModel.onViewTrialRecoverClick()}"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:layout_constraintTop_toBottomOf="@id/tab_layout" />
@@ -76,7 +76,7 @@
             android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
             android:layout_marginBottom="12dp"
             android:background="@drawable/bg_go_recover_card"
-            android:onClick="@{()->fileRecoverViewModel.onTrialRecoverClick()}"
+            android:onClick="@{()->fileRecoverViewModel.onViewTrialRecoverClick()}"
             app:layout_constraintBottom_toTopOf="@+id/v_bottom"
             app:layout_constraintDimensionRatio="255:36"
             app:layout_constraintStart_toStartOf="parent"

+ 2 - 2
app/src/main/res/layout/activity_image_recover.xml

@@ -52,7 +52,7 @@
             android:id="@+id/layout_trial"
             layout="@layout/layout_trial"
             progress="@{13}"
-            recoverClick="@{()->imageRecoverViewModel.onTrialRecoverClick()}"
+            recoverClick="@{()->imageRecoverViewModel.onViewTrialRecoverClick()}"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:layout_constraintTop_toBottomOf="@id/tab_layout" />
@@ -77,7 +77,7 @@
             android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
             android:layout_marginBottom="12dp"
             android:background="@drawable/bg_go_recover_card"
-            android:onClick="@{()->imageRecoverViewModel.onTrialRecoverClick()}"
+            android:onClick="@{()->imageRecoverViewModel.onViewTrialRecoverClick()}"
             app:layout_constraintBottom_toTopOf="@+id/v_bottom"
             app:layout_constraintDimensionRatio="255:36"
             app:layout_constraintStart_toStartOf="parent"

+ 2 - 2
app/src/main/res/layout/activity_video_recover.xml

@@ -41,7 +41,7 @@
             android:id="@+id/layout_trial"
             layout="@layout/layout_trial"
             progress="@{8}"
-            recoverClick="@{()->videoRecoverViewModel.onTrialRecoverClick()}"
+            recoverClick="@{()->videoRecoverViewModel.onViewTrialRecoverClick()}"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             app:layout_constraintTop_toBottomOf="@id/tool_bar" />
@@ -108,7 +108,7 @@
             android:layout_height="0dp"
             android:layout_marginStart="@dimen/app_common_page_horizontal_padding"
             android:background="@drawable/bg_go_recover_card"
-            android:onClick="@{()->videoRecoverViewModel.onTrialRecoverClick()}"
+            android:onClick="@{()->videoRecoverViewModel.onViewTrialRecoverClick()}"
             app:layout_constraintBottom_toTopOf="@+id/space"
             app:layout_constraintDimensionRatio="255:36"
             app:layout_constraintStart_toStartOf="parent"