Allow settings reset and import/export while recording
This commit is contained in:
Dennis Guse
2022-05-28 13:48:56 +02:00
committed by GitHub
52 changed files with 2 additions and 95 deletions
@@ -2,6 +2,7 @@ package de.dennisguse.opentracks.settings;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
import androidx.preference.Preference;
import androidx.preference.PreferenceFragmentCompat;
@@ -13,20 +14,10 @@ import de.dennisguse.opentracks.services.TrackRecordingServiceConnection;
public class MainSettingsFragment extends PreferenceFragmentCompat {
private static final String TAG = MainSettingsFragment.class.getSimpleName();
private RecordingStatus recordingStatus = TrackRecordingService.STATUS_DEFAULT;
private TrackRecordingServiceConnection trackRecordingServiceConnection;
private final TrackRecordingServiceConnection.Callback bindServiceCallback =
(service, unused) -> service.getRecordingStatusObservable()
.observe(MainSettingsFragment.this, this::onRecordingStatusChanged);
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
addPreferencesFromResource(R.xml.settings);
trackRecordingServiceConnection = new TrackRecordingServiceConnection(bindServiceCallback);
findPreference(getString(R.string.settings_defaults_key)).setOnPreferenceClickListener(preference -> {
((SettingsActivity) getActivity()).openScreen(getString(R.string.settings_defaults_key));
return true;
@@ -69,20 +60,7 @@ public class MainSettingsFragment extends PreferenceFragmentCompat {
}
@Override
public void onResume() {
super.onResume();
trackRecordingServiceConnection.bind(getContext());
updatePrefsDependOnRecording();
}
@Override
public void onDestroy() {
super.onDestroy();
trackRecordingServiceConnection.unbind(getContext());
}
@Override
public void onDisplayPreferenceDialog(Preference preference) {
public void onDisplayPreferenceDialog(@NonNull Preference preference) {
DialogFragment dialogFragment = null;
if (preference instanceof ResetDialogPreference) {
@@ -97,24 +75,4 @@ public class MainSettingsFragment extends PreferenceFragmentCompat {
super.onDisplayPreferenceDialog(preference);
}
private void onRecordingStatusChanged(RecordingStatus status) {
this.recordingStatus = status;
if (isAdded()) {
updatePrefsDependOnRecording();
}
}
private void updatePrefsDependOnRecording() {
Preference importExportPreference = findPreference(getString(R.string.settings_import_export_key));
Preference resetPreference = findPreference(getString(R.string.settings_reset_key));
boolean isRecording = recordingStatus.isRecording();
importExportPreference.setSummary(isRecording ? getString(R.string.settings_not_while_recording) : getString(R.string.settings_import_export_summary));
importExportPreference.setEnabled(!isRecording);
resetPreference.setSummary(isRecording ? getString(R.string.settings_not_while_recording) : getString(R.string.settings_reset_summary));
resetPreference.setEnabled(!isRecording);
}
}