From 96233743a1d1ca41e792e3e72833940b490e8722 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 2 Sep 2019 14:52:49 +0200 Subject: [PATCH] Refactoring --- .../java/eu/faircode/email/ActivityMain.java | 50 +------------------ app/src/main/java/eu/faircode/email/Log.java | 49 ++++++++++++++++++ 2 files changed, 50 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityMain.java b/app/src/main/java/eu/faircode/email/ActivityMain.java index 8c7c0f374f..95e818c15b 100644 --- a/app/src/main/java/eu/faircode/email/ActivityMain.java +++ b/app/src/main/java/eu/faircode/email/ActivityMain.java @@ -23,7 +23,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Configuration; -import android.os.Build; import android.os.Bundle; import android.os.Handler; @@ -40,7 +39,7 @@ public class ActivityMain extends ActivityBase implements FragmentManager.OnBack protected void onCreate(Bundle savedInstanceState) { getSupportFragmentManager().addOnBackStackChangedListener(this); - if (!isSupportedDevice()) { + if (!Log.isSupportedDevice() && Helper.isPlayStoreInstall(this)) { setTheme(R.style.AppThemeLight); super.onCreate(savedInstanceState); setContentView(R.layout.activity_unsupported); @@ -179,51 +178,4 @@ public class ActivityMain extends ActivityBase implements FragmentManager.OnBack if (prefs.getBoolean(key, false)) recreate(); } - - private boolean isSupportedDevice() { - if (Helper.isPlayStoreInstall(this) && - "Amazon".equals(Build.BRAND) && Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { - /* - java.lang.IllegalArgumentException: Comparison method violates its general contract! - java.lang.IllegalArgumentException: Comparison method violates its general contract! - at java.util.TimSort.mergeHi(TimSort.java:864) - at java.util.TimSort.mergeAt(TimSort.java:481) - at java.util.TimSort.mergeCollapse(TimSort.java:406) - at java.util.TimSort.sort(TimSort.java:210) - at java.util.TimSort.sort(TimSort.java:169) - at java.util.Arrays.sort(Arrays.java:2010) - at java.util.Collections.sort(Collections.java:1883) - at android.view.ViewGroup$ChildListForAccessibility.init(ViewGroup.java:7181) - at android.view.ViewGroup$ChildListForAccessibility.obtain(ViewGroup.java:7138) - at android.view.ViewGroup.dispatchPopulateAccessibilityEventInternal(ViewGroup.java:2734) - at android.view.View.dispatchPopulateAccessibilityEvent(View.java:5617) - at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:5582) - at android.view.View.sendAccessibilityEventUnchecked(View.java:5566) - at android.view.View.sendAccessibilityEventInternal(View.java:5543) - at android.view.View.sendAccessibilityEvent(View.java:5512) - at android.view.View.onFocusChanged(View.java:5449) - at android.view.View.handleFocusGainInternal(View.java:5229) - at android.view.ViewGroup.handleFocusGainInternal(ViewGroup.java:651) - at android.view.View.requestFocusNoSearch(View.java:7950) - at android.view.View.requestFocus(View.java:7929) - at android.view.ViewGroup.requestFocus(ViewGroup.java:2612) - at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2657) - at android.view.ViewGroup.requestFocus(ViewGroup.java:2613) - at android.view.View.requestFocus(View.java:7896) - at android.view.View.requestFocus(View.java:7875) - at androidx.recyclerview.widget.RecyclerView.recoverFocusFromState(SourceFile:3788) - at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep3(SourceFile:4023) - at androidx.recyclerview.widget.RecyclerView.dispatchLayout(SourceFile:3652) - at androidx.recyclerview.widget.RecyclerView.consumePendingUpdateOperations(SourceFile:1877) - at androidx.recyclerview.widget.RecyclerView$w.run(SourceFile:5044) - at android.view.Choreographer$CallbackRecord.run(Choreographer.java:781) - at android.view.Choreographer.doCallbacks(Choreographer.java:592) - at android.view.Choreographer.doFrame(Choreographer.java:559) - at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:767) - */ - return false; - } - - return true; - } } diff --git a/app/src/main/java/eu/faircode/email/Log.java b/app/src/main/java/eu/faircode/email/Log.java index 15af0da0ef..61adfbd0c0 100644 --- a/app/src/main/java/eu/faircode/email/Log.java +++ b/app/src/main/java/eu/faircode/email/Log.java @@ -334,6 +334,9 @@ public class Log { } static boolean isOwnFault(Throwable ex) { + if (!isSupportedDevice()) + return false; + if (ex instanceof OutOfMemoryError) return false; @@ -764,4 +767,50 @@ public class Log { static InternetAddress myAddress() throws UnsupportedEncodingException { return new InternetAddress("marcel+fairemail@faircode.eu", "FairCode"); } + + static boolean isSupportedDevice() { + if ("Amazon".equals(Build.BRAND) && Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { + /* + java.lang.IllegalArgumentException: Comparison method violates its general contract! + java.lang.IllegalArgumentException: Comparison method violates its general contract! + at java.util.TimSort.mergeHi(TimSort.java:864) + at java.util.TimSort.mergeAt(TimSort.java:481) + at java.util.TimSort.mergeCollapse(TimSort.java:406) + at java.util.TimSort.sort(TimSort.java:210) + at java.util.TimSort.sort(TimSort.java:169) + at java.util.Arrays.sort(Arrays.java:2010) + at java.util.Collections.sort(Collections.java:1883) + at android.view.ViewGroup$ChildListForAccessibility.init(ViewGroup.java:7181) + at android.view.ViewGroup$ChildListForAccessibility.obtain(ViewGroup.java:7138) + at android.view.ViewGroup.dispatchPopulateAccessibilityEventInternal(ViewGroup.java:2734) + at android.view.View.dispatchPopulateAccessibilityEvent(View.java:5617) + at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:5582) + at android.view.View.sendAccessibilityEventUnchecked(View.java:5566) + at android.view.View.sendAccessibilityEventInternal(View.java:5543) + at android.view.View.sendAccessibilityEvent(View.java:5512) + at android.view.View.onFocusChanged(View.java:5449) + at android.view.View.handleFocusGainInternal(View.java:5229) + at android.view.ViewGroup.handleFocusGainInternal(ViewGroup.java:651) + at android.view.View.requestFocusNoSearch(View.java:7950) + at android.view.View.requestFocus(View.java:7929) + at android.view.ViewGroup.requestFocus(ViewGroup.java:2612) + at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:2657) + at android.view.ViewGroup.requestFocus(ViewGroup.java:2613) + at android.view.View.requestFocus(View.java:7896) + at android.view.View.requestFocus(View.java:7875) + at androidx.recyclerview.widget.RecyclerView.recoverFocusFromState(SourceFile:3788) + at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep3(SourceFile:4023) + at androidx.recyclerview.widget.RecyclerView.dispatchLayout(SourceFile:3652) + at androidx.recyclerview.widget.RecyclerView.consumePendingUpdateOperations(SourceFile:1877) + at androidx.recyclerview.widget.RecyclerView$w.run(SourceFile:5044) + at android.view.Choreographer$CallbackRecord.run(Choreographer.java:781) + at android.view.Choreographer.doCallbacks(Choreographer.java:592) + at android.view.Choreographer.doFrame(Choreographer.java:559) + at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:767) + */ + return false; + } + + return true; + } } \ No newline at end of file