mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-06-08 23:57:45 +00:00
Immediately apply the dark mode setting once it's changed
This commit is contained in:
parent
4aa9374e0b
commit
a681efcf2d
2 changed files with 29 additions and 3 deletions
|
@ -30,4 +30,21 @@ public class PreferencesActivity extends AegisActivity {
|
||||||
// pass permission request results to the fragment
|
// pass permission request results to the fragment
|
||||||
_fragment.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
_fragment.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected final void onRestoreInstanceState(final Bundle inState) {
|
||||||
|
// pass the stored result intent back to the fragment
|
||||||
|
if (inState.containsKey("result")) {
|
||||||
|
_fragment.setResult(inState.getParcelable("result"));
|
||||||
|
}
|
||||||
|
super.onRestoreInstanceState(inState);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected final void onSaveInstanceState(final Bundle outState) {
|
||||||
|
// save the result intent of the fragment
|
||||||
|
// this is done so we don't lose anything if the fragment calls recreate on this activity
|
||||||
|
outState.putParcelable("result", _fragment.getResult());
|
||||||
|
super.onSaveInstanceState(outState);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class PreferencesFragment extends PreferenceFragment {
|
||||||
private static final int CODE_PERM_IMPORT = 0;
|
private static final int CODE_PERM_IMPORT = 0;
|
||||||
private static final int CODE_PERM_EXPORT = 1;
|
private static final int CODE_PERM_EXPORT = 1;
|
||||||
|
|
||||||
private Intent _result = new Intent();
|
private Intent _result;
|
||||||
private DatabaseManager _db;
|
private DatabaseManager _db;
|
||||||
|
|
||||||
// this is used to keep a reference to a database converter
|
// this is used to keep a reference to a database converter
|
||||||
|
@ -60,14 +60,14 @@ public class PreferencesFragment extends PreferenceFragment {
|
||||||
_db = app.getDatabaseManager();
|
_db = app.getDatabaseManager();
|
||||||
|
|
||||||
// set the result intent in advance
|
// set the result intent in advance
|
||||||
getActivity().setResult(Activity.RESULT_OK, _result);
|
setResult(new Intent());
|
||||||
|
|
||||||
Preference darkModePreference = findPreference("pref_dark_mode");
|
Preference darkModePreference = findPreference("pref_dark_mode");
|
||||||
darkModePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
darkModePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
_result.putExtra("needsRecreate", true);
|
_result.putExtra("needsRecreate", true);
|
||||||
Toast.makeText(getActivity(), "Dark mode setting will be applied after closing this screen", Toast.LENGTH_SHORT).show();
|
getActivity().recreate();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -175,6 +175,15 @@ public class PreferencesFragment extends PreferenceFragment {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Intent getResult() {
|
||||||
|
return _result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResult(Intent result) {
|
||||||
|
_result = result;
|
||||||
|
getActivity().setResult(Activity.RESULT_OK, _result);
|
||||||
|
}
|
||||||
|
|
||||||
private void onImport() {
|
private void onImport() {
|
||||||
if (PermissionHelper.request(getActivity(), CODE_PERM_IMPORT, Manifest.permission.READ_EXTERNAL_STORAGE)) {
|
if (PermissionHelper.request(getActivity(), CODE_PERM_IMPORT, Manifest.permission.READ_EXTERNAL_STORAGE)) {
|
||||||
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
|
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue