Refresh the key profile list on pref_issuer changes

Looks like 6b56a24c274994135fac95ad03678b4c668d2db3 introduced a regression after all
This commit is contained in:
Alexander Bakker 2017-12-12 21:55:34 +01:00
parent a66d94a743
commit 094924cd1c
2 changed files with 29 additions and 10 deletions

View file

@ -147,14 +147,16 @@ public class MainActivity extends AppCompatActivity implements KeyProfileAdapter
} }
private void onPreferencesResult(int resultCode, Intent data) { private void onPreferencesResult(int resultCode, Intent data) {
if (resultCode != RESULT_OK) { // refresh the entire key profile list if needed
return; if (data.getBooleanExtra("needsRefresh", false)) {
_keyProfileAdapter.notifyDataSetChanged();
} }
// TODO: create a custom layout to show a message AND a checkbox // perform any pending actions
int action = data.getIntExtra("action", -1); int action = data.getIntExtra("action", -1);
switch (action) { switch (action) {
case PreferencesActivity.ACTION_EXPORT: case PreferencesActivity.ACTION_EXPORT:
// TODO: create a custom layout to show a message AND a checkbox
final boolean[] checked = {true}; final boolean[] checked = {true};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this) AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this)
.setTitle("Export the database") .setTitle("Export the database")

View file

@ -1,6 +1,5 @@
package me.impy.aegis; package me.impy.aegis;
import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
@ -28,13 +27,26 @@ public class PreferencesActivity extends AppCompatActivity {
} }
public static class PreferencesFragment extends PreferenceFragment { public static class PreferencesFragment extends PreferenceFragment {
private Intent _result = new Intent();
private void setResult() {
getActivity().setResult(RESULT_OK, _result);
}
private void finish() {
setResult();
getActivity().finish();
}
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences); addPreferencesFromResource(R.xml.preferences);
final Preference nightModePreference = findPreference("pref_night_mode"); // set the result intent in advance
setResult();
Preference nightModePreference = findPreference("pref_night_mode");
nightModePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { nightModePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
@ -47,12 +59,17 @@ public class PreferencesActivity extends AppCompatActivity {
exportPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { exportPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override @Override
public boolean onPreferenceClick(Preference preference) { public boolean onPreferenceClick(Preference preference) {
Intent intent = new Intent(); _result.putExtra("action", ACTION_EXPORT);
intent.putExtra("action", ACTION_EXPORT); finish();
return true;
}
});
Activity activity = getActivity(); Preference issuerPreference = findPreference("pref_issuer");
activity.setResult(RESULT_OK, intent); issuerPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
activity.finish(); @Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
_result.putExtra("needsRefresh", true);
return true; return true;
} }
}); });