From d055253f97ea662278027f78068e0782a43b9949 Mon Sep 17 00:00:00 2001 From: Karim Abou Zeid Date: Mon, 23 Apr 2018 21:05:29 +0200 Subject: [PATCH] Fix crash on startup because R has changed --- app/build.gradle | 2 +- app/src/main/java/com/kabouzeid/gramophone/App.java | 1 - .../kabouzeid/gramophone/ui/activities/MainActivity.java | 2 -- .../gramophone/ui/activities/SettingsActivity.java | 8 +++----- .../gramophone/ui/activities/base/AbsThemeActivity.java | 1 + .../com/kabouzeid/gramophone/util/PreferenceUtil.java | 9 ++++++++- 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index dce13ebc..69e5bed5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -104,7 +104,7 @@ dependencies { implementation "com.android.support:percent:$supportLibVersion" implementation "com.android.support:preference-v7:$supportLibVersion" implementation "com.android.support:preference-v14:$supportLibVersion" - implementation 'com.github.kabouzeid:app-theme-helper:1.3.8' + implementation 'com.github.kabouzeid:app-theme-helper:1.3.9' implementation 'com.github.kabouzeid:RecyclerView-FastScroll:1.0.16-kmod' implementation 'com.github.kabouzeid:SeekArc:1.2-kmod' implementation 'com.github.kabouzeid:AndroidSlidingUpPanel:3.3.0-kmod3' diff --git a/app/src/main/java/com/kabouzeid/gramophone/App.java b/app/src/main/java/com/kabouzeid/gramophone/App.java index ff26c2fa..e197c33a 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/App.java +++ b/app/src/main/java/com/kabouzeid/gramophone/App.java @@ -30,7 +30,6 @@ public class App extends Application { // default theme if (!ThemeStore.isConfigured(this, 1)) { ThemeStore.editTheme(this) - .activityTheme(R.style.Theme_Phonograph_Light) .primaryColorRes(R.color.md_indigo_500) .accentColorRes(R.color.md_pink_A400) .commit(); diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java index 8152c959..6bdc8ec4 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/MainActivity.java @@ -1,7 +1,6 @@ package com.kabouzeid.gramophone.ui.activities; import android.annotation.SuppressLint; -import android.annotation.TargetApi; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -19,7 +18,6 @@ import android.util.Log; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.view.WindowInsets; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java index 9e43e57b..8880d498 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/SettingsActivity.java @@ -200,15 +200,13 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia return false; } - int theme = PreferenceUtil.getThemeResFromPrefValue(themeName); setSummary(generalTheme, o); - ThemeStore.editTheme(getActivity()) - .activityTheme(theme) - .commit(); + + ThemeStore.markChanged(getActivity()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) { // Set the new theme so that updateAppShortcuts can pull it - getActivity().setTheme(PreferenceUtil.getThemeResFromPrefValue((String) o)); + getActivity().setTheme(PreferenceUtil.getThemeResFromPrefValue(themeName)); new DynamicShortcutManager(getActivity()).updateDynamicShortcuts(); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java index c9e58134..eeb028ef 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java +++ b/app/src/main/java/com/kabouzeid/gramophone/ui/activities/base/AbsThemeActivity.java @@ -23,6 +23,7 @@ public abstract class AbsThemeActivity extends ATHToolbarActivity { @Override protected void onCreate(Bundle savedInstanceState) { + setTheme(PreferenceUtil.getInstance(this).getGeneralTheme()); super.onCreate(savedInstanceState); MaterialDialogsUtil.updateMaterialDialogsThemeSingleton(this); } diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java index b1d6c2c1..f3109a70 100644 --- a/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/kabouzeid/gramophone/util/PreferenceUtil.java @@ -105,8 +105,15 @@ public final class PreferenceUtil { mPreferences.unregisterOnSharedPreferenceChangeListener(sharedPreferenceChangeListener); } + @StyleRes public int getGeneralTheme() { - return getThemeResFromPrefValue(mPreferences.getString(GENERAL_THEME, "")); + return getThemeResFromPrefValue(mPreferences.getString(GENERAL_THEME, "light")); + } + + public void setGeneralTheme(String theme) { + final SharedPreferences.Editor editor = mPreferences.edit(); + editor.putString(GENERAL_THEME, theme); + editor.commit(); } @StyleRes