fedilab-Android-App/app/src/main/java/app/fedilab/android/fragments/ColorSettingsFragment.java

105 lines
3.9 KiB
Java
Raw Normal View History

2019-11-06 14:09:38 +01:00
package app.fedilab.android.fragments;
2019-11-06 15:52:39 +01:00
import android.content.DialogInterface;
import android.content.SharedPreferences;
2019-11-06 14:09:38 +01:00
import android.os.Bundle;
2019-11-06 15:52:39 +01:00
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
import androidx.preference.Preference;
2019-11-06 14:09:38 +01:00
import androidx.preference.PreferenceFragmentCompat;
2019-11-06 15:52:39 +01:00
import androidx.preference.PreferenceManager;
2019-11-06 14:09:38 +01:00
2019-11-10 19:20:44 +01:00
2019-11-11 13:18:35 +01:00
import java.util.HashMap;
2019-11-10 19:20:44 +01:00
2019-11-06 14:09:38 +01:00
import app.fedilab.android.R;
2019-11-11 13:18:35 +01:00
import app.fedilab.android.activities.SettingsActivity;
2019-11-06 15:52:39 +01:00
import app.fedilab.android.helper.Helper;
2019-11-06 14:09:38 +01:00
2019-11-11 13:18:35 +01:00
public class ColorSettingsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener {
2019-11-06 15:52:39 +01:00
2019-11-11 13:18:35 +01:00
private HashMap<String, Object> initialPref;
2019-11-06 14:09:38 +01:00
@Override
public void onCreatePreferences(Bundle bundle, String s) {
addPreferencesFromResource(R.xml.fragment_settings_color);
2019-11-06 15:52:39 +01:00
Preference button = findPreference("reset_pref");
FragmentActivity context = getActivity();
int style;
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
int theme = sharedpreferences.getInt(Helper.SET_THEME, Helper.THEME_DARK);
if (theme == Helper.THEME_DARK) {
style = R.style.DialogDark;
} else if (theme == Helper.THEME_BLACK) {
style = R.style.DialogBlack;
} else {
style = R.style.Dialog;
}
2019-11-11 13:18:35 +01:00
initialPref = new HashMap<>();
2019-11-06 15:52:39 +01:00
PreferenceFragmentCompat preferenceFragmentCompat = this;
button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context, style);
dialogBuilder.setMessage(R.string.reset_color);
dialogBuilder.setPositiveButton(R.string.reset, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.remove("theme_boost_header_color");
editor.remove("theme_statuses_color");
editor.remove("theme_link_color");
2019-11-06 17:36:19 +01:00
editor.remove("theme_icons_color");
2019-11-06 18:03:45 +01:00
editor.remove("theme_background_color");
2019-11-10 19:20:44 +01:00
editor.remove("pref_color_background");
editor.remove("pref_color_navigation_bar");
editor.remove("theme_accent");
editor.remove("theme_primary");
2019-11-06 15:52:39 +01:00
editor.commit();
dialog.dismiss();
setPreferenceScreen(null);
addPreferencesFromResource(R.xml.fragment_settings_color);
2019-11-06 14:09:38 +01:00
2019-11-06 15:52:39 +01:00
}
});
2019-11-11 09:34:13 +01:00
dialogBuilder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
2019-11-06 15:52:39 +01:00
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
AlertDialog alertDialog = dialogBuilder.create();
alertDialog.setCancelable(false);
alertDialog.show();
return true;
}
});
2019-11-06 14:09:38 +01:00
}
2019-11-11 13:18:35 +01:00
@Override
public void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
SettingsActivity.needRestart = true;
}
2019-11-06 14:09:38 +01:00
}