Manage pref
This commit is contained in:
parent
01753c904b
commit
c964b268e1
|
@ -12,6 +12,7 @@ import androidx.preference.ListPreference;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
|
|
||||||
import com.jaredrummler.cyanea.Cyanea;
|
import com.jaredrummler.cyanea.Cyanea;
|
||||||
|
@ -35,13 +36,90 @@ public class ColorSettingsFragment extends PreferenceFragmentCompat implements
|
||||||
public void onCreatePreferences(Bundle bundle, String s) {
|
public void onCreatePreferences(Bundle bundle, String s) {
|
||||||
addPreferencesFromResource(R.xml.fragment_settings_color);
|
addPreferencesFromResource(R.xml.fragment_settings_color);
|
||||||
|
|
||||||
Preference button = findPreference("reset_pref");
|
|
||||||
|
createPref();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@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;
|
||||||
|
|
||||||
|
if (key.equals("use_custom_theme")) {
|
||||||
|
createPref();
|
||||||
|
}
|
||||||
|
if( key.compareTo("pref_theme_picker") == 0){
|
||||||
|
String theme = sharedPreferences.getString("pref_theme_picker", null);
|
||||||
|
List<CyaneaTheme> list = CyaneaTheme.Companion.from(Objects.requireNonNull(getActivity()).getAssets(), "themes/cyanea_themes.json");
|
||||||
|
if( getActivity() != null && theme != null) {
|
||||||
|
SharedPreferences sharedpreferences = getActivity().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
||||||
|
SharedPreferences.Editor editor = sharedpreferences.edit();
|
||||||
|
int i = 0;
|
||||||
|
if( theme.compareTo("2") == 0 ) {
|
||||||
|
editor.putInt(Helper.SET_THEME, Helper.THEME_LIGHT);
|
||||||
|
}else if( theme.compareTo("1") == 0 ) {
|
||||||
|
editor.putInt(Helper.SET_THEME, Helper.THEME_DARK);
|
||||||
|
i = 1;
|
||||||
|
}else if( theme.compareTo("3") == 0 ) {
|
||||||
|
editor.putInt(Helper.SET_THEME, Helper.THEME_BLACK);
|
||||||
|
i = 2;
|
||||||
|
}
|
||||||
|
editor.commit();
|
||||||
|
list.get(i).apply(Cyanea.getInstance()).recreate(getActivity());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void createPref(){
|
||||||
|
getPreferenceScreen().removeAll();
|
||||||
|
addPreferencesFromResource(R.xml.fragment_settings_color);
|
||||||
|
PreferenceScreen preferenceScreen = getPreferenceScreen();
|
||||||
FragmentActivity context = getActivity();
|
FragmentActivity context = getActivity();
|
||||||
assert context != null;
|
assert context != null;
|
||||||
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||||
|
ListPreference pref_theme_picker = (ListPreference) findPreference("pref_theme_picker");
|
||||||
|
Preference theme_link_color = findPreference("theme_link_color");
|
||||||
|
Preference theme_boost_header_color = findPreference("theme_boost_header_color");
|
||||||
|
Preference theme_statuses_color = findPreference("theme_statuses_color");
|
||||||
|
Preference theme_icons_color = findPreference("theme_icons_color");
|
||||||
|
Preference theme_text_color = findPreference("theme_text_color");
|
||||||
|
Preference theme_primary = findPreference("theme_primary");
|
||||||
|
Preference theme_accent = findPreference("theme_accent");
|
||||||
|
Preference pref_color_navigation_bar = findPreference("pref_color_navigation_bar");
|
||||||
|
Preference pref_color_background = findPreference("pref_color_background");
|
||||||
|
Preference reset_pref = findPreference("reset_pref");
|
||||||
|
if( !sharedpreferences.getBoolean("use_custom_theme", false)){
|
||||||
|
preferenceScreen.removePreference(theme_link_color);
|
||||||
|
preferenceScreen.removePreference(theme_boost_header_color);
|
||||||
|
preferenceScreen.removePreference(theme_statuses_color);
|
||||||
|
preferenceScreen.removePreference(theme_icons_color);
|
||||||
|
preferenceScreen.removePreference(theme_text_color);
|
||||||
|
preferenceScreen.removePreference(theme_primary);
|
||||||
|
preferenceScreen.removePreference(theme_accent);
|
||||||
|
preferenceScreen.removePreference(pref_color_navigation_bar);
|
||||||
|
preferenceScreen.removePreference(pref_color_background);
|
||||||
|
preferenceScreen.removePreference(reset_pref);
|
||||||
|
|
||||||
|
}
|
||||||
final ListPreference listPreference = (ListPreference) findPreference("pref_theme_picker");
|
|
||||||
List<String> array = Arrays.asList(getResources().getStringArray(R.array.settings_theme));
|
List<String> array = Arrays.asList(getResources().getStringArray(R.array.settings_theme));
|
||||||
CharSequence[] entries = array.toArray(new CharSequence[array.size()]);
|
CharSequence[] entries = array.toArray(new CharSequence[array.size()]);
|
||||||
CharSequence[] entryValues = new CharSequence[3];
|
CharSequence[] entryValues = new CharSequence[3];
|
||||||
|
@ -50,11 +128,12 @@ public class ColorSettingsFragment extends PreferenceFragmentCompat implements
|
||||||
entryValues[0] = String.valueOf(Helper.THEME_LIGHT);
|
entryValues[0] = String.valueOf(Helper.THEME_LIGHT);
|
||||||
entryValues[1] = String.valueOf(Helper.THEME_DARK);
|
entryValues[1] = String.valueOf(Helper.THEME_DARK);
|
||||||
entryValues[2] = String.valueOf(Helper.THEME_BLACK);
|
entryValues[2] = String.valueOf(Helper.THEME_BLACK);
|
||||||
listPreference.setEntries(entries);
|
pref_theme_picker.setEntries(entries);
|
||||||
listPreference.setEntryValues(entryValues);
|
pref_theme_picker.setEntryValues(entryValues);
|
||||||
listPreference.setDefaultValue(String.valueOf(theme));
|
pref_theme_picker.setDefaultValue(String.valueOf(theme));
|
||||||
|
|
||||||
button.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
|
||||||
|
reset_pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
|
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context);
|
||||||
|
@ -67,7 +146,6 @@ public class ColorSettingsFragment extends PreferenceFragmentCompat implements
|
||||||
editor.remove("theme_statuses_color");
|
editor.remove("theme_statuses_color");
|
||||||
editor.remove("theme_link_color");
|
editor.remove("theme_link_color");
|
||||||
editor.remove("theme_icons_color");
|
editor.remove("theme_icons_color");
|
||||||
editor.remove("theme_background_color");
|
|
||||||
editor.remove("pref_color_background");
|
editor.remove("pref_color_background");
|
||||||
editor.remove("pref_color_navigation_bar");
|
editor.remove("pref_color_navigation_bar");
|
||||||
editor.remove("theme_accent");
|
editor.remove("theme_accent");
|
||||||
|
@ -93,46 +171,4 @@ public class ColorSettingsFragment extends PreferenceFragmentCompat implements
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@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;
|
|
||||||
|
|
||||||
if( key.compareTo("pref_theme_picker") == 0){
|
|
||||||
String theme = sharedPreferences.getString("pref_theme_picker", null);
|
|
||||||
List<CyaneaTheme> list = CyaneaTheme.Companion.from(Objects.requireNonNull(getActivity()).getAssets(), "themes/cyanea_themes.json");
|
|
||||||
if( getActivity() != null && theme != null) {
|
|
||||||
SharedPreferences sharedpreferences = getActivity().getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE);
|
|
||||||
SharedPreferences.Editor editor = sharedpreferences.edit();
|
|
||||||
int i = 0;
|
|
||||||
if( theme.compareTo("2") == 0 ) {
|
|
||||||
editor.putInt(Helper.SET_THEME, Helper.THEME_LIGHT);
|
|
||||||
}else if( theme.compareTo("1") == 0 ) {
|
|
||||||
editor.putInt(Helper.SET_THEME, Helper.THEME_DARK);
|
|
||||||
i = 1;
|
|
||||||
}else if( theme.compareTo("3") == 0 ) {
|
|
||||||
editor.putInt(Helper.SET_THEME, Helper.THEME_BLACK);
|
|
||||||
i = 2;
|
|
||||||
}
|
|
||||||
editor.commit();
|
|
||||||
list.get(i).apply(Cyanea.getInstance()).recreate(getActivity());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -160,12 +160,6 @@ public class DisplayNotificationsFragment extends Fragment implements OnRetrieve
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
||||||
main_timeline_container = rootView.findViewById(R.id.main_timeline_container);
|
|
||||||
int mainBackgroundColor = prefs.getInt("theme_background_color", -1);
|
|
||||||
if( main_timeline_container != null && mainBackgroundColor != -1 ){
|
|
||||||
main_timeline_container.setBackgroundColor(mainBackgroundColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) {
|
if (MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.MASTODON || MainActivity.social == UpdateAccountInfoAsyncTask.SOCIAL.PLEROMA) {
|
||||||
|
|
||||||
|
|
|
@ -162,13 +162,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn
|
||||||
}
|
}
|
||||||
if (ischannel)
|
if (ischannel)
|
||||||
type = RetrieveFeedsAsyncTask.Type.CHANNEL;
|
type = RetrieveFeedsAsyncTask.Type.CHANNEL;
|
||||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
||||||
|
|
||||||
RelativeLayout main_timeline_container = rootView.findViewById(R.id.main_timeline_container);
|
|
||||||
int mainBackgroundColor = prefs.getInt("theme_background_color", -1);
|
|
||||||
if( main_timeline_container != null && mainBackgroundColor != -1 ){
|
|
||||||
main_timeline_container.setBackgroundColor(mainBackgroundColor);
|
|
||||||
}
|
|
||||||
|
|
||||||
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
SQLiteDatabase db = Sqlite.getInstance(context, Sqlite.DB_NAME, null, Sqlite.DB_VERSION).open();
|
||||||
//instanceType should not be null only for Peertube accounts
|
//instanceType should not be null only for Peertube accounts
|
||||||
|
|
|
@ -1273,5 +1273,7 @@
|
||||||
<string name="apply_changes">Apply changes</string>
|
<string name="apply_changes">Apply changes</string>
|
||||||
<string name="restart_message">You need to restart the application to apply changes</string>
|
<string name="restart_message">You need to restart the application to apply changes</string>
|
||||||
<string name="restart">Restart</string>
|
<string name="restart">Restart</string>
|
||||||
|
<string name="pref_custom_theme">Use a custom theme</string>
|
||||||
|
<string name="pref_custom_theme_summary">Allow to override colors of the selected theme above</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
|
@ -11,6 +11,15 @@
|
||||||
android:summary="@string/pref_theme_summary"
|
android:summary="@string/pref_theme_summary"
|
||||||
android:title="@string/pref_theme_title"/>
|
android:title="@string/pref_theme_title"/>
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.preference.SwitchPreferenceCompat
|
||||||
|
app:iconSpaceReserved="false"
|
||||||
|
android:defaultValue="false"
|
||||||
|
android:key="use_custom_theme"
|
||||||
|
android:summary="@string/pref_custom_theme_summary"
|
||||||
|
android:title="@string/pref_custom_theme"
|
||||||
|
/>
|
||||||
|
|
||||||
<com.jaredrummler.android.colorpicker.ColorPreferenceCompat
|
<com.jaredrummler.android.colorpicker.ColorPreferenceCompat
|
||||||
app:iconSpaceReserved="false"
|
app:iconSpaceReserved="false"
|
||||||
android:defaultValue="-1"
|
android:defaultValue="-1"
|
||||||
|
|
Loading…
Reference in New Issue