Added multiple theme support
This commit is contained in:
parent
5ac835ce0f
commit
3acbd9a4c7
|
@ -35,48 +35,49 @@ import com.mikepenz.aboutlibraries.LibsBuilder;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
import com.luca0n.joguitos.pluck.R;
|
import com.luca0n.joguitos.pluck.R;
|
||||||
import com.luca0n.joguitos.pluck.settings.SettingsActivity;
|
import com.luca0n.joguitos.pluck.settings.SettingsActivity;
|
||||||
|
import com.luca0n.joguitos.pluck.util.UiUtil;
|
||||||
|
|
||||||
@SuppressLint("Registered")
|
@SuppressLint("Registered")
|
||||||
public class BaseActivity extends AppCompatActivity {
|
public class BaseActivity extends AppCompatActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
MenuInflater inflater = getMenuInflater();
|
MenuInflater inflater = getMenuInflater();
|
||||||
inflater.inflate(R.menu.app_menu, menu);
|
inflater.inflate(R.menu.app_menu, menu);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.settings:
|
case R.id.settings:
|
||||||
onSettings();
|
onSettings();
|
||||||
return true;
|
return true;
|
||||||
case R.id.about:
|
case R.id.about:
|
||||||
onAbout();
|
onAbout();
|
||||||
return true;
|
return true;
|
||||||
case android.R.id.home:
|
case android.R.id.home:
|
||||||
onBackPressed();
|
onBackPressed();
|
||||||
default:
|
default:
|
||||||
return super.onOptionsItemSelected(item);
|
return super.onOptionsItemSelected(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onSettings() {
|
private void onSettings() {
|
||||||
Intent intent = new Intent(this, SettingsActivity.class);
|
Intent intent = new Intent(this, SettingsActivity.class);
|
||||||
startActivity(intent);
|
startActivity(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onAbout() {
|
private void onAbout() {
|
||||||
String appName = getResources().getString(R.string.app_name);
|
String appName = getResources().getString(R.string.app_name);
|
||||||
String appDescription = getResources().getString(R.string.app_description);
|
String appDescription = getResources().getString(R.string.app_description);
|
||||||
|
|
||||||
new LibsBuilder()
|
new LibsBuilder()
|
||||||
.withActivityStyle(Libs.ActivityStyle.LIGHT_DARK_TOOLBAR)
|
.withActivityStyle(UiUtil.getTheme(this).equals(getString(R.string.pref_ui_theme_entryValues_dark)) ? Libs.ActivityStyle.DARK : Libs.ActivityStyle.LIGHT)
|
||||||
.withAboutIconShown(true)
|
.withAboutIconShown(true)
|
||||||
.withAboutAppName(appName)
|
.withAboutAppName(appName)
|
||||||
.withAboutVersionShownName(true)
|
.withAboutVersionShownName(true)
|
||||||
.withAboutDescription(appDescription)
|
.withAboutDescription(appDescription)
|
||||||
.start(this);
|
.start(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,14 +38,24 @@ public class UiUtil {
|
||||||
public static void setTheme(Context context){
|
public static void setTheme(Context context){
|
||||||
SharedPreferences s = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
|
SharedPreferences s = PreferenceManager.getDefaultSharedPreferences(context.getApplicationContext());
|
||||||
|
|
||||||
String light = context.getString(R.string.pref_ui_theme_entryValues_light),
|
String dark = context.getString(R.string.pref_ui_theme_entryValues_dark),
|
||||||
dark = context.getString(R.string.pref_ui_theme_entryValues_dark),
|
theme = getTheme(context);
|
||||||
themeKey = context.getString(R.string.pref_ui_theme),
|
|
||||||
theme = s.getString(themeKey, light);
|
|
||||||
|
|
||||||
if (theme.equals(dark))
|
if (theme.equals(dark))
|
||||||
context.setTheme(R.style.AppTheme_Dark);
|
context.setTheme(R.style.AppTheme_Dark);
|
||||||
else
|
else
|
||||||
context.setTheme(R.style.AppTheme);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue