diff --git a/twidere/build.gradle b/twidere/build.gradle index e8a4f84ae..8bd6572fe 100644 --- a/twidere/build.gradle +++ b/twidere/build.gradle @@ -14,7 +14,7 @@ android { applicationId "org.mariotaku.twidere" minSdkVersion 14 targetSdkVersion 23 - versionCode 126 + versionCode 128 versionName "0.3.0" multiDexEnabled true } diff --git a/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java b/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java index 3bdfd168a..585bc0e88 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java +++ b/twidere/src/main/java/org/mariotaku/twidere/activity/support/HomeActivity.java @@ -424,7 +424,6 @@ public class HomeActivity extends BaseAppCompatActivity implements OnClickListen if (Utils.isStreamingEnabled()) { startService(new Intent(this, StreamingService.class)); } - } @Override diff --git a/twidere/src/main/java/org/mariotaku/twidere/app/TwidereApplication.java b/twidere/src/main/java/org/mariotaku/twidere/app/TwidereApplication.java index 682d33c18..bb70b3e24 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/app/TwidereApplication.java +++ b/twidere/src/main/java/org/mariotaku/twidere/app/TwidereApplication.java @@ -64,7 +64,8 @@ import static org.mariotaku.twidere.util.Utils.initAccountColor; import static org.mariotaku.twidere.util.Utils.startRefreshServiceIfNeeded; @ReportsCrashes(formUri = "https://twidere-bugreport.herokuapp.com/reports", - buildConfigClass = BuildConfig.class) + buildConfigClass = BuildConfig.class, sendReportsInDevMode = false, + sendReportsAtShutdown = false) public class TwidereApplication extends MultiDexApplication implements Constants, OnSharedPreferenceChangeListener { @@ -170,9 +171,7 @@ public class TwidereApplication extends MultiDexApplication implements Constants private void initBugReport() { final SharedPreferences preferences = getSharedPreferences(); if (!preferences.getBoolean(KEY_BUG_REPORTS, true)) return; - if (!BuildConfig.DEBUG) { - AbsLogger.setImplementation(new TwidereLogger()); - } + AbsLogger.setImplementation(new TwidereLogger()); AbsLogger.init(this); } diff --git a/twidere/src/main/java/org/mariotaku/twidere/fragment/BaseFragment.java b/twidere/src/main/java/org/mariotaku/twidere/fragment/BaseFragment.java index 794ccc69e..fa546f71f 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/fragment/BaseFragment.java +++ b/twidere/src/main/java/org/mariotaku/twidere/fragment/BaseFragment.java @@ -23,7 +23,6 @@ import android.app.Activity; import android.app.Fragment; import android.content.BroadcastReceiver; import android.content.ContentResolver; -import android.content.Context; import android.content.IntentFilter; import android.content.SharedPreferences; @@ -43,10 +42,12 @@ public class BaseFragment extends Fragment implements Constants { @Inject protected SharedPreferencesWrapper mPreferences; + + @SuppressWarnings("deprecated") @Override - public void onAttach(Context context) { - super.onAttach(context); - DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(context)).build().inject(this); + public void onAttach(Activity activity) { + super.onAttach(activity); + DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(activity)).build().inject(this); } public TwidereApplication getApplication() { diff --git a/twidere/src/main/java/org/mariotaku/twidere/fragment/BasePreferenceFragment.java b/twidere/src/main/java/org/mariotaku/twidere/fragment/BasePreferenceFragment.java index 6c60c97dd..bbf30ade4 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/fragment/BasePreferenceFragment.java +++ b/twidere/src/main/java/org/mariotaku/twidere/fragment/BasePreferenceFragment.java @@ -19,7 +19,7 @@ package org.mariotaku.twidere.fragment; -import android.content.Context; +import android.app.Activity; import android.os.Bundle; import android.preference.PreferenceFragment; @@ -38,10 +38,11 @@ public class BasePreferenceFragment extends PreferenceFragment implements Consta @Inject protected UserColorNameManager mUserColorNameManager; + @SuppressWarnings("deprecated") @Override - public void onAttach(Context context) { - super.onAttach(context); - DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(context)).build().inject(this); + public void onAttach(Activity activity) { + super.onAttach(activity); + DaggerGeneralComponent.builder().applicationModule(ApplicationModule.get(activity)).build().inject(this); } @Override diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/TwidereLogger.java b/twidere/src/main/java/org/mariotaku/twidere/util/TwidereLogger.java index 8f4990882..3270abb1d 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/TwidereLogger.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/TwidereLogger.java @@ -25,6 +25,7 @@ import android.support.annotation.Nullable; import android.util.Log; import org.acra.ACRA; +import org.acra.ACRAConfiguration; import org.mariotaku.twidere.BuildConfig; import org.mariotaku.twidere.Constants; @@ -70,15 +71,16 @@ public class TwidereLogger extends AbsLogger implements Constants { protected void initImpl(final Application application) { // ACRA sets it self as DefaultUncaughtExceptionHandler, we hijack it to suppress some errors ACRA.init(application); + final ACRAConfiguration conf = ACRA.getNewDefaultConfig(application); + ACRA.setConfig(conf); // handler should be ACRA's ErrorReporter now final Thread.UncaughtExceptionHandler handler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { // We can't fix OOM, so just don't report it and try to save VM - if (!Utils.isOutOfMemory(ex)) { - handler.uncaughtException(thread, ex); - } + if (Utils.isOutOfMemory(ex)) return; + handler.uncaughtException(thread, ex); } }); } diff --git a/twidere/src/main/java/org/mariotaku/twidere/util/dagger/ApplicationModule.java b/twidere/src/main/java/org/mariotaku/twidere/util/dagger/ApplicationModule.java index adfae4409..bcfbe57bb 100644 --- a/twidere/src/main/java/org/mariotaku/twidere/util/dagger/ApplicationModule.java +++ b/twidere/src/main/java/org/mariotaku/twidere/util/dagger/ApplicationModule.java @@ -86,6 +86,11 @@ public class ApplicationModule { } sharedPreferences = SharedPreferencesWrapper.getInstance(application, Constants.SHARED_PREFERENCES_NAME, Context.MODE_PRIVATE, SharedPreferenceConstants.class); + + if (sharedPreferences == null) { + throw new RuntimeException("SharedPreferences must not be null"); + } + activityTracker = new ActivityTracker(); bus = new Bus(ThreadEnforcer.MAIN); asyncTaskManager = AsyncTaskManager.getInstance();