mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-21 22:03:37 +00:00
[android] Make from- and to-time pickers save input mode while picking time
Signed-off-by: lluka <lluka@noreply.codeberg.org>
This commit is contained in:
@@ -30,6 +30,7 @@ public class FromToTimePicker
|
|||||||
private MaterialTimePicker mToTimePicker;
|
private MaterialTimePicker mToTimePicker;
|
||||||
private MaterialTimePicker mFromTimePicker;
|
private MaterialTimePicker mFromTimePicker;
|
||||||
private boolean mIsFromTimePicked;
|
private boolean mIsFromTimePicked;
|
||||||
|
private int mInputMode;
|
||||||
|
|
||||||
public static void pickTime(@NonNull Fragment fragment,
|
public static void pickTime(@NonNull Fragment fragment,
|
||||||
@NonNull FromToTimePicker.OnPickListener listener,
|
@NonNull FromToTimePicker.OnPickListener listener,
|
||||||
@@ -64,6 +65,7 @@ public class FromToTimePicker
|
|||||||
mId = id;
|
mId = id;
|
||||||
|
|
||||||
mIsFromTimePicked = false;
|
mIsFromTimePicked = false;
|
||||||
|
mInputMode = MaterialTimePicker.INPUT_MODE_CLOCK;
|
||||||
|
|
||||||
mIs24HourFormat = DateUtils.is24HourFormat(mActivity);
|
mIs24HourFormat = DateUtils.is24HourFormat(mActivity);
|
||||||
mResources = mActivity.getResources();
|
mResources = mActivity.getResources();
|
||||||
@@ -75,7 +77,7 @@ public class FromToTimePicker
|
|||||||
{
|
{
|
||||||
if (mFromTimePicker != null)
|
if (mFromTimePicker != null)
|
||||||
{
|
{
|
||||||
mFromTime = getHoursMinutes(mFromTimePicker);
|
saveState(mFromTimePicker, true);
|
||||||
mFromTimePicker.dismiss();
|
mFromTimePicker.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +89,7 @@ public class FromToTimePicker
|
|||||||
{
|
{
|
||||||
if (mToTimePicker != null)
|
if (mToTimePicker != null)
|
||||||
{
|
{
|
||||||
mToTime = getHoursMinutes(mToTimePicker);
|
saveState(mToTimePicker, false);
|
||||||
mToTimePicker.dismiss();
|
mToTimePicker.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +110,8 @@ public class FromToTimePicker
|
|||||||
timePicker.addOnPositiveButtonClickListener(view ->
|
timePicker.addOnPositiveButtonClickListener(view ->
|
||||||
{
|
{
|
||||||
mIsFromTimePicked = true;
|
mIsFromTimePicked = true;
|
||||||
mFromTime = getHoursMinutes(timePicker);
|
saveState(timePicker, true);
|
||||||
|
mFromTimePicker = null;
|
||||||
showToTimePicker();
|
showToTimePicker();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -126,6 +129,8 @@ public class FromToTimePicker
|
|||||||
|
|
||||||
timePicker.addOnNegativeButtonClickListener(view ->
|
timePicker.addOnNegativeButtonClickListener(view ->
|
||||||
{
|
{
|
||||||
|
saveState(timePicker, false);
|
||||||
|
mToTimePicker = null;
|
||||||
if (mIsFromTimePicked)
|
if (mIsFromTimePicked)
|
||||||
showFromTimePicker();
|
showFromTimePicker();
|
||||||
else
|
else
|
||||||
@@ -134,7 +139,7 @@ public class FromToTimePicker
|
|||||||
|
|
||||||
timePicker.addOnPositiveButtonClickListener(view ->
|
timePicker.addOnPositiveButtonClickListener(view ->
|
||||||
{
|
{
|
||||||
mToTime = getHoursMinutes(timePicker);
|
saveState(timePicker, false);
|
||||||
finishTimePicking(true);
|
finishTimePicking(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -152,7 +157,7 @@ public class FromToTimePicker
|
|||||||
MaterialTimePicker.Builder builder = new MaterialTimePicker.Builder()
|
MaterialTimePicker.Builder builder = new MaterialTimePicker.Builder()
|
||||||
.setTitleText(title)
|
.setTitleText(title)
|
||||||
.setTimeFormat(mIs24HourFormat ? TimeFormat.CLOCK_24H : TimeFormat.CLOCK_12H)
|
.setTimeFormat(mIs24HourFormat ? TimeFormat.CLOCK_24H : TimeFormat.CLOCK_12H)
|
||||||
.setInputMode(MaterialTimePicker.INPUT_MODE_CLOCK)
|
.setInputMode(mInputMode)
|
||||||
.setTheme(R.style.MwmMain_MaterialTimePicker)
|
.setTheme(R.style.MwmMain_MaterialTimePicker)
|
||||||
.setHour((int) time.hours)
|
.setHour((int) time.hours)
|
||||||
.setMinute((int) time.minutes);
|
.setMinute((int) time.minutes);
|
||||||
@@ -166,9 +171,18 @@ public class FromToTimePicker
|
|||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private HoursMinutes getHoursMinutes(@NonNull MaterialTimePicker picker)
|
private void saveState(@NonNull MaterialTimePicker timePicker, boolean isFromTime)
|
||||||
{
|
{
|
||||||
return new HoursMinutes(picker.getHour(), picker.getMinute(), mIs24HourFormat);
|
mInputMode = timePicker.getInputMode();
|
||||||
|
if (isFromTime)
|
||||||
|
mFromTime = getHoursMinutes(timePicker);
|
||||||
|
else
|
||||||
|
mToTime = getHoursMinutes(timePicker);
|
||||||
|
}
|
||||||
|
|
||||||
|
private HoursMinutes getHoursMinutes(@NonNull MaterialTimePicker timePicker)
|
||||||
|
{
|
||||||
|
return new HoursMinutes(timePicker.getHour(), timePicker.getMinute(), mIs24HourFormat);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void finishTimePicking(boolean isConfirmed)
|
private void finishTimePicking(boolean isConfirmed)
|
||||||
|
|||||||
Reference in New Issue
Block a user