2017-05-24 18:11:17 +03:00

47 lines
1.3 KiB
Java

package ru.noties.markwon;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.annotation.NonNull;
import javax.inject.Inject;
import javax.inject.Singleton;
@Singleton
public class Themes {
private static final String PREF_NAME = "theme";
private static final String KEY_THEME_DARK = "key.tD";
private SharedPreferences preferences;
@Inject
Themes(Context context) {
this.preferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
}
public void apply(@NonNull Context context) {
final boolean dark = preferences.getBoolean(KEY_THEME_DARK, false);
// we have only 2 themes and Light one is default
final int theme;
if (dark) {
theme = R.style.AppThemeBaseDark;
} else {
theme = R.style.AppThemeBaseLight;
}
final Context appContext = context.getApplicationContext();
if (appContext != context) {
appContext.setTheme(theme);
}
context.setTheme(theme);
}
public void toggle() {
final boolean newValue = !preferences.getBoolean(KEY_THEME_DARK, false);
preferences.edit()
.putBoolean(KEY_THEME_DARK, newValue)
.apply();
}
}