From 5e45ec9a9ca8d0c627f281095fe3751a1177c1fc Mon Sep 17 00:00:00 2001 From: tarsin Date: Thu, 17 Nov 2022 18:11:02 +0800 Subject: [PATCH] Restrict datepicker ranges --- .../java/com/hippo/ehviewer/ui/scene/FavoritesScene.java | 8 ++++++++ .../com/hippo/ehviewer/ui/scene/GalleryListScene.java | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java index d79acf460..5814cd80f 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java @@ -41,6 +41,7 @@ import androidx.drawerlayout.widget.DrawerLayout; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.datepicker.CalendarConstraints; import com.google.android.material.datepicker.MaterialDatePicker; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.hippo.annotation.Implemented; @@ -77,6 +78,9 @@ import com.hippo.yorozuya.ObjectUtils; import com.hippo.yorozuya.SimpleHandler; import com.hippo.yorozuya.ViewUtils; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -645,7 +649,11 @@ public class FavoritesScene extends BaseScene implements return; } + LocalDateTime local = LocalDateTime.of(2005, 1, 1, 0, 0); + var constraintsBuilder = new CalendarConstraints.Builder().setStart(local.atZone(ZoneId.ofOffset("UTC", ZoneOffset.UTC)).toInstant().toEpochMilli()).setEnd(MaterialDatePicker.todayInUtcMilliseconds()); + var datePicker = MaterialDatePicker.Builder.datePicker() + .setCalendarConstraints(constraintsBuilder.build()) .setTitleText(R.string.go_to) .setSelection(MaterialDatePicker.todayInUtcMilliseconds()) .build(); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java index 074503bc4..d0120d962 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java @@ -55,6 +55,7 @@ import androidx.recyclerview.widget.ItemTouchHelper; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.datepicker.CalendarConstraints; import com.google.android.material.datepicker.MaterialDatePicker; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.hippo.app.BaseDialogBuilder; @@ -109,6 +110,9 @@ import com.hippo.yorozuya.ViewUtils; import java.io.File; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -892,7 +896,11 @@ public final class GalleryListScene extends BaseScene dialog.dismiss(); }); } else { + LocalDateTime local = LocalDateTime.of(2005, 1, 1, 0, 0); + var constraintsBuilder = new CalendarConstraints.Builder().setStart(local.atZone(ZoneId.ofOffset("UTC", ZoneOffset.UTC)).toInstant().toEpochMilli()).setEnd(MaterialDatePicker.todayInUtcMilliseconds()); + var datePicker = MaterialDatePicker.Builder.datePicker() + .setCalendarConstraints(constraintsBuilder.build()) .setTitleText(R.string.go_to) .setSelection(MaterialDatePicker.todayInUtcMilliseconds()) .build();