2021-02-04 20:15:58 +01:00
|
|
|
package org.moire.ultrasonic.util;
|
|
|
|
|
|
|
|
import android.content.Context;
|
|
|
|
import android.view.View;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
|
import androidx.preference.DialogPreference;
|
|
|
|
import androidx.preference.Preference;
|
|
|
|
import androidx.preference.PreferenceDialogFragmentCompat;
|
|
|
|
import org.moire.ultrasonic.R;
|
|
|
|
|
2021-02-25 18:40:41 +01:00
|
|
|
import java.util.Locale;
|
2021-02-04 20:15:58 +01:00
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Created by Joshua Bahnsen on 12/22/13.
|
|
|
|
*/
|
|
|
|
public class TimeSpanPreferenceDialogFragmentCompat extends PreferenceDialogFragmentCompat implements DialogPreference.TargetFragment
|
|
|
|
{
|
|
|
|
private static final Pattern COMPILE = Pattern.compile(":");
|
|
|
|
Context context;
|
|
|
|
TimeSpanPicker picker;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
protected View onCreateDialogView(Context context) {
|
|
|
|
picker = new TimeSpanPicker(context);
|
|
|
|
this.context = context;
|
|
|
|
|
|
|
|
picker.setTimeSpanDisableText(this.context.getResources().getString(R.string.no_expiration));
|
|
|
|
|
|
|
|
Preference preference = getPreference();
|
|
|
|
String persisted = preference.getSharedPreferences().getString(preference.getKey(), "");
|
|
|
|
|
|
|
|
if (!"".equals(persisted))
|
|
|
|
{
|
|
|
|
String[] split = COMPILE.split(persisted);
|
|
|
|
|
|
|
|
if (split.length == 2)
|
|
|
|
{
|
|
|
|
String amount = split[0];
|
|
|
|
|
|
|
|
if ("0".equals(amount) || "".equals(amount))
|
|
|
|
{
|
|
|
|
picker.setTimeSpanDisableCheckboxChecked(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
picker.setTimeSpanAmount(amount);
|
|
|
|
picker.setTimeSpanType(split[1]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
picker.setTimeSpanDisableCheckboxChecked(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
return picker;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onDialogClosed(boolean positiveResult)
|
|
|
|
{
|
|
|
|
String persisted = "";
|
|
|
|
|
|
|
|
if (picker.getTimeSpanEnabled())
|
|
|
|
{
|
|
|
|
int tsAmount = picker.getTimeSpanAmount();
|
|
|
|
|
|
|
|
if (tsAmount > 0)
|
|
|
|
{
|
|
|
|
String tsType = picker.getTimeSpanType();
|
|
|
|
|
2021-02-25 18:40:41 +01:00
|
|
|
persisted = String.format(Locale.US, "%d:%s", tsAmount, tsType);
|
2021-02-04 20:15:58 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Preference preference = getPreference();
|
|
|
|
preference.getSharedPreferences().edit().putString(preference.getKey(), persisted).apply();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Nullable
|
|
|
|
@Override
|
|
|
|
public Preference findPreference(@NonNull CharSequence key) {
|
|
|
|
return getPreference();
|
|
|
|
}
|
|
|
|
}
|