ui: Use a DropDownPreference for auto freeze delay
and limit maximum to 5 minutes while we are at it
This commit is contained in:
parent
9e0f2306a8
commit
da45e570ca
3 changed files with 18 additions and 30 deletions
|
@ -12,6 +12,7 @@ import android.provider.Settings;
|
|||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.preference.CheckBoxPreference;
|
||||
import androidx.preference.DropDownPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
|
||||
|
@ -20,6 +21,8 @@ import net.typeblog.shelter.services.IShelterService;
|
|||
import net.typeblog.shelter.util.SettingsManager;
|
||||
import net.typeblog.shelter.util.Utility;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class SettingsFragment extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener {
|
||||
private static final String SETTINGS_VERSION = "settings_version";
|
||||
private static final String SETTINGS_SOURCE_CODE = "settings_source_code";
|
||||
|
@ -33,6 +36,8 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
|
|||
private static final String SETTINGS_SKIP_FOREGROUND = "settings_dont_freeze_foreground";
|
||||
private static final String SETTINGS_PAYMENT_STUB = "settings_payment_stub";
|
||||
|
||||
private static final int[] AUTO_FREEZE_DELAY_SECONDS = new int[]{0, 60, 2 * 60, 5 * 60};
|
||||
|
||||
private SettingsManager mManager = SettingsManager.getInstance();
|
||||
private IShelterService mServiceWork = null;
|
||||
|
||||
|
@ -42,7 +47,7 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
|
|||
private CheckBoxPreference mPrefSkipForeground = null;
|
||||
private CheckBoxPreference mPrefPaymentStub = null;
|
||||
|
||||
private Preference mPrefAutoFreezeDelay = null;
|
||||
private DropDownPreference mPrefAutoFreezeDelay = null;
|
||||
|
||||
@Override
|
||||
public void onCreatePreferences(Bundle bundle, String s) {
|
||||
|
@ -85,7 +90,9 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
|
|||
mPrefAutoFreezeService.setChecked(mManager.getAutoFreezeServiceEnabled());
|
||||
mPrefAutoFreezeService.setOnPreferenceChangeListener(this);
|
||||
mPrefAutoFreezeDelay = findPreference(SETTINGS_AUTO_FREEZE_DELAY);
|
||||
mPrefAutoFreezeDelay.setOnPreferenceClickListener(this::openAutoFreezeDelayPicker);
|
||||
mPrefAutoFreezeDelay.setOnPreferenceChangeListener(this);
|
||||
mPrefAutoFreezeDelay.setEntries(Arrays.stream(AUTO_FREEZE_DELAY_SECONDS).mapToObj((it) -> getString(R.string.format_minutes, it / 60)).toArray(String[]::new));
|
||||
mPrefAutoFreezeDelay.setEntryValues(Arrays.stream(AUTO_FREEZE_DELAY_SECONDS).mapToObj(String::valueOf).toArray(String[]::new));
|
||||
updateAutoFreezeDelay();
|
||||
mPrefSkipForeground = (CheckBoxPreference) findPreference(SETTINGS_SKIP_FOREGROUND);
|
||||
mPrefSkipForeground.setChecked(mManager.getSkipForegroundEnabled());
|
||||
|
@ -116,9 +123,7 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
|
|||
}
|
||||
|
||||
private void updateAutoFreezeDelay() {
|
||||
/*mPrefAutoFreezeDelay.setSummary(TimeDurationUtil.formatMinutesSeconds(
|
||||
((long) mManager.getAutoFreezeDelay()) * 1000
|
||||
));*/
|
||||
mPrefAutoFreezeDelay.setSummary(getString(R.string.format_minutes, mManager.getAutoFreezeDelay() / 60));
|
||||
}
|
||||
|
||||
private boolean openSummaryUrl(Preference pref) {
|
||||
|
@ -128,11 +133,6 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
|
|||
return true;
|
||||
}
|
||||
|
||||
private boolean openAutoFreezeDelayPicker(Preference pref) {
|
||||
//new AutoFreezeDelayPickerFragment().show(getActivity().getFragmentManager(), "dialog");
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newState) {
|
||||
if (preference == mPrefCrossProfileFileChooser) {
|
||||
|
@ -184,6 +184,10 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
|
|||
} else if (preference == mPrefAutoFreezeService) {
|
||||
mManager.setAutoFreezeServiceEnabled((boolean) newState);
|
||||
return true;
|
||||
} else if (preference == mPrefAutoFreezeDelay) {
|
||||
mManager.setAutoFreezeDelay(Integer.parseInt((String) newState));
|
||||
updateAutoFreezeDelay();
|
||||
return true;
|
||||
} else if (preference == mPrefSkipForeground) {
|
||||
boolean enabled = (boolean) newState;
|
||||
if (!enabled) {
|
||||
|
@ -230,23 +234,4 @@ public class SettingsFragment extends PreferenceFragmentCompat implements Prefer
|
|||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/*public static class AutoFreezeDelayPickerFragment extends TimeDurationPickerDialogFragment {
|
||||
@Override
|
||||
protected long getInitialDuration() {
|
||||
return ((long) SettingsManager.getInstance().getAutoFreezeDelay()) * 1000;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int setTimeUnits() {
|
||||
return TimeDurationPicker.MM_SS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDurationSet(TimeDurationPicker view, long duration) {
|
||||
long seconds = duration / 1000;
|
||||
if (seconds >= Integer.MAX_VALUE) return;
|
||||
SettingsManager.getInstance().setAutoFreezeDelay((int) seconds);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
|
|
@ -114,4 +114,7 @@
|
|||
<!-- MIUI -->
|
||||
<string name="miui_cannot_clone">Cloning non-system apps to another profile is currently not possible on MIUI. Please clone your system\'s app store (e.g. <b>Play Store</b>) into the other profile and then install apps from there.</string>
|
||||
<string name="continue_anyway">Continue anyway</string>
|
||||
|
||||
<!-- Formats -->
|
||||
<string name="format_minutes">%d min</string>
|
||||
</resources>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
android:title="@string/settings_auto_freeze_service"
|
||||
android:summary="@string/settings_auto_freeze_service_desc" />
|
||||
|
||||
<androidx.preference.Preference
|
||||
<androidx.preference.DropDownPreference
|
||||
android:dependency="settings_auto_freeze_service"
|
||||
android:key="settings_auto_freeze_delay"
|
||||
android:title="@string/settings_auto_freeze_delay" />
|
||||
|
|
Loading…
Add table
Reference in a new issue