Files
OpenTracks/src/main/java/de/dennisguse/opentracks/settings/ResetDialogPreference.java
T
2023-11-06 07:46:18 +01:00

58 lines
2.0 KiB
Java

package de.dennisguse.opentracks.settings;
import android.content.Context;
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;
import de.dennisguse.opentracks.R;
public class ResetDialogPreference extends DialogPreference {
public ResetDialogPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}
interface ResetCallback {
void onReset();
}
public static class ResetPreferenceDialog extends PreferenceDialogFragmentCompat {
static PreferenceDialogFragmentCompat newInstance(String preferenceKey) {
ResetPreferenceDialog dialog = new ResetPreferenceDialog();
final Bundle bundle = new Bundle(1);
bundle.putString(PreferenceDialogFragmentCompat.ARG_KEY, preferenceKey);
dialog.setArguments(bundle);
return dialog;
}
@Override
public void onDialogClosed(boolean positiveResult) {
if (!positiveResult) {
return;
}
FragmentActivity activity = getActivity();
String preferenceKey = getArguments().getString(PreferenceDialogFragmentCompat.ARG_KEY);
if (preferenceKey.equals(getString(R.string.settings_reset_key))) {
PreferencesUtils.resetPreferences(activity, true);
Toast.makeText(activity, R.string.settings_reset_done, Toast.LENGTH_SHORT).show();
} else if (preferenceKey.equals(getString(R.string.settings_layout_reset_key))) {
PreferencesUtils.resetCustomLayoutPreferences();
Toast.makeText(activity, R.string.settings_layout_reset_done, Toast.LENGTH_SHORT).show();
}
if (activity instanceof ResetCallback resetCallback) {
resetCallback.onReset();
}
}
}
}