mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-04-23 15:29:15 +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
|
||||
_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_EXPORT = 1;
|
||||
|
||||
private Intent _result = new Intent();
|
||||
private Intent _result;
|
||||
private DatabaseManager _db;
|
||||
|
||||
// this is used to keep a reference to a database converter
|
||||
|
@ -60,14 +60,14 @@ public class PreferencesFragment extends PreferenceFragment {
|
|||
_db = app.getDatabaseManager();
|
||||
|
||||
// set the result intent in advance
|
||||
getActivity().setResult(Activity.RESULT_OK, _result);
|
||||
setResult(new Intent());
|
||||
|
||||
Preference darkModePreference = findPreference("pref_dark_mode");
|
||||
darkModePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
_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;
|
||||
}
|
||||
});
|
||||
|
@ -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() {
|
||||
if (PermissionHelper.request(getActivity(), CODE_PERM_IMPORT, Manifest.permission.READ_EXTERNAL_STORAGE)) {
|
||||
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
|
||||
|
|
Loading…
Add table
Reference in a new issue