forked from upstream-mirrors/OpenTracks
Re-enable SummaryProvider for default_activity.
This commit is contained in:
@@ -32,6 +32,7 @@ import androidx.preference.PreferenceDialogFragmentCompat;
|
|||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
|
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
|
||||||
|
import de.dennisguse.opentracks.util.HackUtils;
|
||||||
import de.dennisguse.opentracks.util.PreferencesUtils;
|
import de.dennisguse.opentracks.util.PreferencesUtils;
|
||||||
import de.dennisguse.opentracks.util.TrackIconUtils;
|
import de.dennisguse.opentracks.util.TrackIconUtils;
|
||||||
|
|
||||||
@@ -57,8 +58,7 @@ public class ActivityTypePreference extends DialogPreference {
|
|||||||
setNegativeButtonText(android.R.string.cancel);
|
setNegativeButtonText(android.R.string.cancel);
|
||||||
setDialogIcon(null);
|
setDialogIcon(null);
|
||||||
setPersistent(true);
|
setPersistent(true);
|
||||||
//TODO: for some reason the summary is not updated; after changing it. Enable summaryprovider, when fixed.
|
setSummaryProvider(summaryProvider);
|
||||||
// setSummaryProvider(summaryProvider);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -142,6 +142,7 @@ public class ActivityTypePreference extends DialogPreference {
|
|||||||
String newDefaultActivity = textView.getText().toString();
|
String newDefaultActivity = textView.getText().toString();
|
||||||
if (getPreference().callChangeListener(newDefaultActivity)) {
|
if (getPreference().callChangeListener(newDefaultActivity)) {
|
||||||
PreferencesUtils.setDefaultActivity(getActivity(), newDefaultActivity);
|
PreferencesUtils.setDefaultActivity(getActivity(), newDefaultActivity);
|
||||||
|
HackUtils.invalidatePreference(getPreference());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import androidx.preference.PreferenceFragmentCompat;
|
|||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
|
import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment;
|
||||||
|
import de.dennisguse.opentracks.util.HackUtils;
|
||||||
import de.dennisguse.opentracks.util.PreferencesUtils;
|
import de.dennisguse.opentracks.util.PreferencesUtils;
|
||||||
import de.dennisguse.opentracks.util.StringUtils;
|
import de.dennisguse.opentracks.util.StringUtils;
|
||||||
|
|
||||||
@@ -190,10 +191,7 @@ public class SettingsActivity extends AppCompatActivity implements ChooseActivit
|
|||||||
String[] options = getResources().getStringArray(metricUnits ? R.array.stats_rate_metric_options : R.array.stats_rate_imperial_options);
|
String[] options = getResources().getStringArray(metricUnits ? R.array.stats_rate_metric_options : R.array.stats_rate_imperial_options);
|
||||||
statsRatePreferences.setEntries(options);
|
statsRatePreferences.setEntries(options);
|
||||||
|
|
||||||
//TODO This is a hack!!! (Alternative bring the object out of view).
|
HackUtils.invalidatePreference(statsRatePreferences);
|
||||||
//Need to trigger androidx.preference.preferences.notifyChanged() to trigger a redraw, but method is protected.
|
|
||||||
statsRatePreferences.setEnabled(false);
|
|
||||||
statsRatePreferences.setEnabled(true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package de.dennisguse.opentracks.util;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.preference.Preference;
|
||||||
|
|
||||||
|
public class HackUtils {
|
||||||
|
|
||||||
|
private HackUtils() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triggers a redraw of the summary of a preference if it was set programmatically.
|
||||||
|
* Need to trigger androidx.preference.preferences.notifyChanged() to trigger a redraw, but method is protected.
|
||||||
|
* This workaround also works when this preference has not changed, but it's entries (see R.string.stats_rate_key).
|
||||||
|
* TODO
|
||||||
|
*/
|
||||||
|
public static void invalidatePreference(@NonNull Preference preference) {
|
||||||
|
boolean isEnabled = preference.isEnabled();
|
||||||
|
preference.setEnabled(!isEnabled);
|
||||||
|
preference.setEnabled(isEnabled);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user