Re-initialize PreferenceFragment, when sharedpreferences were reset.

This commit is contained in:
Dennis Guse
2019-11-07 19:41:29 +01:00
parent 40f2463f09
commit 77a6a63174
2 changed files with 21 additions and 5 deletions
@@ -5,6 +5,7 @@ import android.os.Bundle;
import android.util.AttributeSet;
import android.widget.Toast;
import androidx.fragment.app.FragmentActivity;
import androidx.preference.DialogPreference;
import androidx.preference.PreferenceDialogFragmentCompat;
@@ -17,6 +18,10 @@ public class ResetDialogPreference extends DialogPreference {
super(context, attrs);
}
interface ResetCallback {
void onReset();
}
public static class ResetPreferenceDialog extends PreferenceDialogFragmentCompat {
static PreferenceDialogFragmentCompat newInstance(String preferenceKey) {
@@ -31,9 +36,14 @@ public class ResetDialogPreference extends DialogPreference {
@Override
public void onDialogClosed(boolean positiveResult) {
if (positiveResult) {
PreferencesUtils.resetPreferences(getActivity(), true);
FragmentActivity activity = getActivity();
Toast.makeText(getActivity(), R.string.settings_reset_done, Toast.LENGTH_SHORT).show();
PreferencesUtils.resetPreferences(activity, true);
Toast.makeText(activity, R.string.settings_reset_done, Toast.LENGTH_SHORT).show();
if (activity instanceof ResetCallback) {
((ResetCallback) activity).onReset();
}
}
}
}
@@ -16,9 +16,9 @@ import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
import de.dennisguse.opentracks.util.PreferencesUtils;
import de.dennisguse.opentracks.util.StringUtils;
public class SettingsActivity extends AppCompatActivity implements ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller {
public class SettingsActivity extends AppCompatActivity implements ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller, ResetDialogPreference.ResetCallback {
private PrefsFragment prefsFragment = new PrefsFragment();
private PrefsFragment prefsFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -30,7 +30,7 @@ public class SettingsActivity extends AppCompatActivity implements ChooseActivit
toolbar.setTitle(R.string.menu_settings);
setSupportActionBar(toolbar);
getSupportFragmentManager().beginTransaction().replace(R.id.settings_fragment, prefsFragment).commit();
onReset();
}
@Override
@@ -38,6 +38,12 @@ public class SettingsActivity extends AppCompatActivity implements ChooseActivit
prefsFragment.setDefaultActivity(iconValue);
}
@Override
public void onReset() {
prefsFragment = new PrefsFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.settings_fragment, prefsFragment).commit();
}
public static class PrefsFragment extends PreferenceFragmentCompat {
/*