Browse Source

[Fix]修复启屏卡住的问题

litchi98 2 months ago
parent
commit
a4522b49fa

+ 12 - 0
app/src/main/AndroidManifest.xml

@@ -112,6 +112,18 @@
             android:name=".module.backup_helper.BackupHelperActivity"
             android:screenOrientation="portrait" />
 
+        <receiver
+            android:name="com.mbridge.msdk.foundation.same.broadcast.NetWorkChangeReceiver"
+            android:exported="true">
+
+            <intent-filter>
+                <action
+                    android:name="android.net.conn.CONNECTIVITY_CHANGE"
+                    tools:ignore="BatteryLife"
+                    tools:node="remove" />
+            </intent-filter>
+        </receiver>
+
     </application>
 
 </manifest>

+ 12 - 5
app/src/main/java/com/datarecovery/master/module/audiorecover/AudioRecoverActivity.java

@@ -20,6 +20,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
 
 import com.atmob.app.lib.base.BaseActivity;
 import com.atmob.common.ui.SizeUtil;
+import com.atmob.mediation.api.AdError;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.AdFuncId;
 import com.datarecovery.master.data.consts.Constants;
@@ -142,6 +143,7 @@ public class AudioRecoverActivity extends BaseActivity<ActivityAudioRecoverBindi
                         public void onUnlock() {
                             AtmobAdHelper.showVideo(AdFuncId.REWARD_RECOVER, new RewardVideoListenerAdapter() {
                                 boolean isRewarded = false;
+
                                 @Override
                                 public void onRewarded(@androidx.annotation.NonNull String token) {
                                     super.onRewarded(token);
@@ -150,14 +152,19 @@ public class AudioRecoverActivity extends BaseActivity<ActivityAudioRecoverBindi
                                 }
 
                                 @Override
-                                public void onFail(String s) {
-                                    super.onFail(s);
-                                    ToastUtil.show(R.string.recover_failed, ToastUtil.LENGTH_SHORT);
+                                public void onLoadFailed(AdError adError) {
+                                    super.onLoadFailed(adError);
+                                    audioRecoverViewModel.doExport();
+                                }
+
+                                @Override
+                                public void onRewardAdShowFail(AdError adError) {
+                                    super.onRewardAdShowFail(adError);
+                                    audioRecoverViewModel.doExport();
                                 }
 
                                 @Override
-                                public void onClose() {
-                                    super.onClose();
+                                public void onRewardAdClosed() {
                                     if (!isRewarded) {
                                         ToastUtil.show(R.string.recover_failed, ToastUtil.LENGTH_SHORT);
                                     }

+ 12 - 5
app/src/main/java/com/datarecovery/master/module/filerecover/FileRecoverActivity.java

@@ -13,6 +13,7 @@ import androidx.annotation.Nullable;
 import androidx.viewpager2.widget.ViewPager2;
 
 import com.atmob.app.lib.base.BaseActivity;
+import com.atmob.mediation.api.AdError;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.AdFuncId;
 import com.datarecovery.master.data.consts.Constants;
@@ -106,14 +107,20 @@ public class FileRecoverActivity extends BaseActivity<ActivityFileRecoverBinding
                         }
 
                         @Override
-                        public void onFail(String s) {
-                            super.onFail(s);
-                            ToastUtil.show(R.string.recover_failed, ToastUtil.LENGTH_SHORT);
+                        public void onLoadFailed(AdError adError) {
+                            super.onLoadFailed(adError);
+                            fileRecoverViewModel.doExport();
+                        }
+
+                        @Override
+                        public void onRewardAdShowFail(AdError adError) {
+                            super.onRewardAdShowFail(adError);
+                            fileRecoverViewModel.doExport();
                         }
 
                         @Override
-                        public void onClose() {
-                            super.onClose();
+                        public void onRewardAdClosed() {
+                            super.onRewardAdClosed();
                             if (!isRewarded) {
                                 ToastUtil.show(R.string.recover_failed, ToastUtil.LENGTH_SHORT);
                             }

+ 23 - 10
app/src/main/java/com/datarecovery/master/module/imgrecover/ImageRecoverActivity.java

@@ -21,6 +21,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.atmob.app.lib.base.BaseActivity;
+import com.atmob.mediation.api.AdError;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.AdFuncId;
 import com.datarecovery.master.data.consts.Constants;
@@ -364,14 +365,20 @@ public class ImageRecoverActivity extends BaseActivity<ActivityImageRecoverBindi
                                 }
 
                                 @Override
-                                public void onFail(String s) {
-                                    super.onFail(s);
-                                    ToastUtil.show(R.string.clean_failed, ToastUtil.LENGTH_SHORT);
+                                public void onLoadFailed(AdError adError) {
+                                    super.onLoadFailed(adError);
+                                    showClearDialog();
+                                }
+
+                                @Override
+                                public void onRewardAdShowFail(AdError adError) {
+                                    super.onRewardAdShowFail(adError);
+                                    showClearDialog();
                                 }
 
                                 @Override
-                                public void onClose() {
-                                    super.onClose();
+                                public void onRewardAdClosed() {
+                                    super.onRewardAdClosed();
                                     if (!isRewarded) {
                                         ToastUtil.show(R.string.clean_failed, ToastUtil.LENGTH_SHORT);
                                     }
@@ -389,14 +396,20 @@ public class ImageRecoverActivity extends BaseActivity<ActivityImageRecoverBindi
                                 }
 
                                 @Override
-                                public void onFail(String s) {
-                                    super.onFail(s);
-                                    ToastUtil.show(R.string.recover_failed, ToastUtil.LENGTH_SHORT);
+                                public void onLoadFailed(AdError adError) {
+                                    super.onLoadFailed(adError);
+                                    imageRecoverViewModel.exportImage();
+                                }
+
+                                @Override
+                                public void onRewardAdShowFail(AdError adError) {
+                                    super.onRewardAdShowFail(adError);
+                                    imageRecoverViewModel.exportImage();
                                 }
 
                                 @Override
-                                public void onClose() {
-                                    super.onClose();
+                                public void onRewardAdClosed() {
+                                    super.onRewardAdClosed();
                                     if (!isRewarded) {
                                         ToastUtil.show(R.string.recover_failed, ToastUtil.LENGTH_SHORT);
                                     }

+ 12 - 5
app/src/main/java/com/datarecovery/master/module/preview/PreviewActivity.java

@@ -18,6 +18,7 @@ import androidx.viewpager2.widget.ViewPager2;
 import com.atmob.app.lib.base.BaseActivity;
 import com.atmob.common.ui.SizeUtil;
 import com.atmob.logging.AtmobLog;
+import com.atmob.mediation.api.AdError;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.AdFuncId;
 import com.datarecovery.master.data.consts.EventId;
@@ -156,14 +157,20 @@ public class PreviewActivity extends BaseActivity<ActivityPreviewBinding> {
                                 }
 
                                 @Override
-                                public void onFail(String s) {
-                                    super.onFail(s);
-                                    ToastUtil.show(R.string.recover_failed, ToastUtil.LENGTH_SHORT);
+                                public void onLoadFailed(AdError adError) {
+                                    super.onLoadFailed(adError);
+                                    previewViewModel.doExport();
+                                }
+
+                                @Override
+                                public void onRewardAdShowFail(AdError adError) {
+                                    super.onRewardAdShowFail(adError);
+                                    previewViewModel.doExport();
                                 }
 
                                 @Override
-                                public void onClose() {
-                                    super.onClose();
+                                public void onRewardAdClosed() {
+                                    super.onRewardAdClosed();
                                     if (!isRewarded) {
                                         ToastUtil.show(R.string.recover_failed, ToastUtil.LENGTH_SHORT);
                                     }

+ 1 - 4
app/src/main/java/com/datarecovery/master/module/preview/PreviewViewModel.java

@@ -11,7 +11,6 @@ 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.data.repositories.DeviceFuncRepository;
 import com.datarecovery.master.handler.EventHelper;
 import com.datarecovery.master.module.member.MemberActivity;
 import com.datarecovery.master.module.member.MemberType;
@@ -40,7 +39,6 @@ public class PreviewViewModel extends BaseViewModel {
     private final MutableLiveData<String> title = new MutableLiveData<>();
     private final MutableLiveData<Uri> previewUri = new MutableLiveData<>();
     private final MutableLiveData<Boolean> isPlaying = new MutableLiveData<>();
-    private final DeviceFuncRepository deviceFuncRepository;
     private final SingleLiveEvent<?> showTrialExportFailDialog = new SingleLiveEvent<>();
     private final SingleLiveEvent<?> showFreeStopDialog = new SingleLiveEvent<>();
     private final SingleLiveEvent<?> refreshAudioCurrentProgress = new SingleLiveEvent<>();
@@ -62,8 +60,7 @@ public class PreviewViewModel extends BaseViewModel {
     private boolean isSurfaceCreated;
 
     @Inject
-    public PreviewViewModel(DeviceFuncRepository deviceFuncRepository) {
-        this.deviceFuncRepository = deviceFuncRepository;
+    public PreviewViewModel() {
     }
 
     public LiveData<?> getClickMediaPlayerEvent() {

+ 12 - 5
app/src/main/java/com/datarecovery/master/module/videorecover/VideoRecoverActivity.java

@@ -13,6 +13,7 @@ import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.GridLayoutManager;
 
 import com.atmob.app.lib.base.BaseActivity;
+import com.atmob.mediation.api.AdError;
 import com.datarecovery.master.R;
 import com.datarecovery.master.data.consts.AdFuncId;
 import com.datarecovery.master.data.consts.Constants;
@@ -119,14 +120,20 @@ public class VideoRecoverActivity extends BaseActivity<ActivityVideoRecoverBindi
                         }
 
                         @Override
-                        public void onFail(String s) {
-                            super.onFail(s);
-                            ToastUtil.show(R.string.recover_failed, ToastUtil.LENGTH_SHORT);
+                        public void onLoadFailed(AdError adError) {
+                            super.onLoadFailed(adError);
+                            videoRecoverViewModel.doExport();
+                        }
+
+                        @Override
+                        public void onRewardAdShowFail(AdError adError) {
+                            super.onRewardAdShowFail(adError);
+                            videoRecoverViewModel.doExport();
                         }
 
                         @Override
-                        public void onClose() {
-                            super.onClose();
+                        public void onRewardAdClosed() {
+                            super.onRewardAdClosed();
                             if (!isRewarded) {
                                 ToastUtil.show(R.string.recover_failed, ToastUtil.LENGTH_SHORT);
                             }

+ 34 - 13
app/src/main/java/com/datarecovery/master/sdk/ad/AtmobAdHelper.java

@@ -95,7 +95,7 @@ public class AtmobAdHelper {
                 private long startTime;
 
                 @Override
-                public void onShow() {
+                public void onRewardAdShow() {
                     AtmobLog.d(TAG, "showVideo(%d) onShow.", adFuncId);
                     adLoadingDialog.forceDismiss();
                     getVideoToken();
@@ -142,14 +142,14 @@ public class AtmobAdHelper {
                 }
 
                 @Override
-                public void onClose() {
+                public void onRewardAdClosed() {
                     AtmobLog.d(TAG, "showVideo(%d) onClose.", adFuncId);
                     dispose();
                     if (listener != null) {
                         if (isRewarded) {
                             listener.onRewarded(token);
                         }
-                        listener.onClose();
+                        listener.onRewardAdClosed();
                     }
 
                     int duration = (int) ((System.currentTimeMillis() - startTime) / 1000);
@@ -157,20 +157,20 @@ public class AtmobAdHelper {
                 }
 
                 @Override
-                public void onFail(String s) {
-                    AtmobLog.e(TAG, "showVideo(%d) onFail: %s.", adFuncId, s);
+                public void onRewardAdShowFail(AdError adError) {
+                    super.onRewardAdShowFail(adError);
+                    AtmobLog.e(TAG, "showVideo(%d) onFail: %s.", adFuncId, adError);
                     dispose();
                     if (listener != null) {
-                        listener.onFail(s);
+                        listener.onRewardAdShowFail(adError);
                     }
-                    adLoadingDialog.dismiss();
                 }
 
                 @Override
-                public void onClick() {
+                public void onRewardClick() {
                     AtmobLog.d(TAG, "showVideo(%d) onClick.", adFuncId);
                     if (listener != null) {
-                        listener.onClick();
+                        listener.onRewardClick();
                     }
 
                     AtmobAdHelper.onAdClick(AdConstants.RewardVideo, atmobRewardAd.getEcpmInfo());
@@ -185,6 +185,16 @@ public class AtmobAdHelper {
                     AtmobAdHelper.onAdLoaded(AdConstants.RewardVideo, atmobRewardAd.getEcpmInfo());
                 }
 
+                @Override
+                public void onLoadFailed(AdError adError) {
+                    super.onLoadFailed(adError);
+                    AtmobLog.e(TAG, "showVideo(%d) onLoadFailed: %s.", adFuncId, adError);
+                    adLoadingDialog.forceDismiss();
+                    if (listener != null) {
+                        listener.onLoadFailed(adError);
+                    }
+                }
+
                 private void dispose() {
                     if (showSkipButtonDisposable != null) {
                         showSkipButtonDisposable.dispose();
@@ -213,7 +223,8 @@ public class AtmobAdHelper {
         AdLoadingDialog adLoadingDialog = new AdLoadingDialog(ActivityUtil.getTopActivity(), R.layout.dialog_simulate_ad, R.style.Theme_Common_Dialog);
         adLoadingDialog.show();
         if (listener != null) {
-            listener.onShow();
+            listener.onAdLoaded();
+            listener.onRewardAdShow();
         }
         handler.postDelayed(() -> {
             adLoadingDialog.dismiss();
@@ -221,7 +232,7 @@ public class AtmobAdHelper {
                 listener.onRewarded("");
             }
             if (listener != null) {
-                listener.onClose();
+                listener.onRewardAdClosed();
             }
         }, 3000);
     }
@@ -346,7 +357,7 @@ public class AtmobAdHelper {
                     View nativeView = atmobNativeAd.getNativeView();
                     if (nativeView != null) {
                         viewGroup.removeAllViews();
-                        viewGroup.addView(nativeView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
+                        viewGroup.addView(nativeView, new ViewGroup.LayoutParams(android.view.ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
                     }
 
                     AtmobAdHelper.onAdLoaded(AdConstants.NativeUnified, atmobNativeAd.getEcpmInfo());
@@ -395,6 +406,9 @@ public class AtmobAdHelper {
             }
             return;
         }
+        if (viewGroup != null) {
+            viewGroup.removeAllViews();
+        }
         Runnable showSplashRunnable = () -> {
             AtmobSplashAd atmobSplashAd = new AtmobSplashAd(ActivityUtil.getTopActivity(), String.valueOf(adFuncId));
             SplashListenerAdapter splashListenerAdapter = new SplashListenerAdapter() {
@@ -446,7 +460,14 @@ public class AtmobAdHelper {
                 public void onAdLoaded() {
                     super.onAdLoaded();
                     AtmobLog.d(TAG, "showSplash(%d) onAdLoaded.", adFuncId);
-                    atmobSplashAd.showSplashAd(viewGroup);
+                    if (viewGroup != null) {
+                        viewGroup.removeAllViews();
+                        atmobSplashAd.showSplashAd(viewGroup);
+                    } else {
+                        if (listener != null) {
+                            listener.action();
+                        }
+                    }
 
                     AtmobAdHelper.onAdLoaded(AdConstants.Splash, atmobSplashAd.getEcpmInfo());
                 }

+ 8 - 25
app/src/main/java/com/datarecovery/master/sdk/ad/RewardVideoListenerAdapter.java

@@ -15,40 +15,23 @@ public abstract class RewardVideoListenerAdapter implements AtmobRewardAdListene
 
     }
 
-    public void onShow() {
-
-    }
-
-    public void onClose() {
-
-    }
-
-    public void onFail(String s) {
-
-    }
-
-    public void onClick() {
+    @Override
+    public void onRewardAdShow() {
 
     }
 
     @Override
-    public final void onRewardAdShow() {
-        onShow();
+    public void onRewardAdShowFail(AdError adError) {
     }
 
     @Override
-    public final void onRewardAdShowFail(AdError adError) {
-        onFail(adError.toString());
-    }
+    public void onRewardClick() {
 
-    @Override
-    public final void onRewardClick() {
-        onClick();
     }
 
     @Override
-    public final void onRewardAdClosed() {
-        onClose();
+    public void onRewardAdClosed() {
+
     }
 
     @Override
@@ -64,8 +47,8 @@ public abstract class RewardVideoListenerAdapter implements AtmobRewardAdListene
     }
 
     @Override
-    public final void onLoadFailed(AdError adError) {
-        onFail(adError.toString());
+    public void onLoadFailed(AdError adError) {
+
     }
 
     @Override

+ 2 - 2
build.gradle

@@ -6,8 +6,8 @@ buildscript {
         minSdkVersion = 24
         targetSdkVersion = 32
 
-        versionCode = 100
-        versionName = "1.0.0"
+        versionCode = 101
+        versionName = "1.0.1"
 
         hilt_version = '2.41'
         lifecycle_version = "2.6.1"