From 3acbd9a4c716fc818e3355e91fccefb432cbf8ec Mon Sep 17 00:00:00 2001 From: "luca0N\\!" Date: Wed, 17 Mar 2021 18:38:43 -0300 Subject: [PATCH] Added multiple theme support --- .../pluck/activities/BaseActivity.java | 73 ++++++++++--------- .../luca0n/joguitos/pluck/util/UiUtil.java | 18 ++++- 2 files changed, 51 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/com/luca0n/joguitos/pluck/activities/BaseActivity.java b/app/src/main/java/com/luca0n/joguitos/pluck/activities/BaseActivity.java index dc57b9f..618ceed 100644 --- a/app/src/main/java/com/luca0n/joguitos/pluck/activities/BaseActivity.java +++ b/app/src/main/java/com/luca0n/joguitos/pluck/activities/BaseActivity.java @@ -35,48 +35,49 @@ import com.mikepenz.aboutlibraries.LibsBuilder; import androidx.appcompat.app.AppCompatActivity; import com.luca0n.joguitos.pluck.R; import com.luca0n.joguitos.pluck.settings.SettingsActivity; +import com.luca0n.joguitos.pluck.util.UiUtil; @SuppressLint("Registered") public class BaseActivity extends AppCompatActivity { - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.app_menu, menu); - return true; - } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.app_menu, menu); + return true; + } - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.settings: - onSettings(); - return true; - case R.id.about: - onAbout(); - return true; - case android.R.id.home: - onBackPressed(); - default: - return super.onOptionsItemSelected(item); - } - } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.settings: + onSettings(); + return true; + case R.id.about: + onAbout(); + return true; + case android.R.id.home: + onBackPressed(); + default: + return super.onOptionsItemSelected(item); + } + } - private void onSettings() { - Intent intent = new Intent(this, SettingsActivity.class); - startActivity(intent); - } + private void onSettings() { + Intent intent = new Intent(this, SettingsActivity.class); + startActivity(intent); + } - private void onAbout() { - String appName = getResources().getString(R.string.app_name); - String appDescription = getResources().getString(R.string.app_description); + private void onAbout() { + String appName = getResources().getString(R.string.app_name); + String appDescription = getResources().getString(R.string.app_description); - new LibsBuilder() - .withActivityStyle(Libs.ActivityStyle.LIGHT_DARK_TOOLBAR) - .withAboutIconShown(true) - .withAboutAppName(appName) - .withAboutVersionShownName(true) - .withAboutDescription(appDescription) - .start(this); - } + new LibsBuilder() + .withActivityStyle(UiUtil.getTheme(this).equals(getString(R.string.pref_ui_theme_entryValues_dark)) ? Libs.ActivityStyle.DARK : Libs.ActivityStyle.LIGHT) + .withAboutIconShown(true) + .withAboutAppName(appName) + .withAboutVersionShownName(true) + .withAboutDescription(appDescription) + .start(this); + } } diff --git a/app/src/main/java/com/luca0n/joguitos/pluck/util/UiUtil.java b/app/src/main/java/com/luca0n/joguitos/pluck/util/UiUtil.java index 0634336..9ad1378 100644 --- a/app/src/main/java/com/luca0n/joguitos/pluck/util/UiUtil.java +++ b/app/src/main/java/com/luca0n/joguitos/pluck/util/UiUtil.java @@ -38,14 +38,24 @@ public class UiUtil { public static void setTheme(Context context){ SharedPreferences s = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); - String light = context.getString(R.string.pref_ui_theme_entryValues_light), - dark = context.getString(R.string.pref_ui_theme_entryValues_dark), - themeKey = context.getString(R.string.pref_ui_theme), - theme = s.getString(themeKey, light); + String dark = context.getString(R.string.pref_ui_theme_entryValues_dark), + theme = getTheme(context); if (theme.equals(dark)) context.setTheme(R.style.AppTheme_Dark); else context.setTheme(R.style.AppTheme); } + + /** + * @return The app theme selected by the user. + * @param context The activity context. + * @since 2021-03-17 + */ + public static String getTheme(Context context){ + SharedPreferences s = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext()); + String themeKey = context.getString(R.string.pref_ui_theme), + themeLight = context.getString(R.string.pref_ui_theme_entryValues_light); + return s.getString(themeKey, themeLight); + } }