瀏覽代碼

Integrate afollestad/date-picker, resolves #1820

Aidan Follestad 5 年之前
父節點
當前提交
8b85e7d670

+ 11 - 2
datetime/src/main/java/com/afollestad/materialdialogs/datetime/DateTimePickerExt.kt

@@ -19,6 +19,7 @@ package com.afollestad.materialdialogs.datetime
 
 import android.R.attr
 import androidx.annotation.CheckResult
+import com.afollestad.date.dayOfMonth
 import com.afollestad.materialdialogs.MaterialDialog
 import com.afollestad.materialdialogs.WhichButton.POSITIVE
 import com.afollestad.materialdialogs.actions.setActionButtonEnabled
@@ -68,12 +69,12 @@ fun MaterialDialog.dateTimePicker(
   getDatePicker().apply {
     minDateTime?.let { setMinDate(it) }
     currentDateTime?.let { setDate(it) }
-    onDateChanged {
+    addOnDateChanged { previous, date ->
       val futureTime = isFutureTime(getDatePicker(), getTimePicker())
       setActionButtonEnabled(
           POSITIVE, !requireFutureDateTime || futureTime
       )
-      if (autoFlipToTime) {
+      if (autoFlipToTime && didDateChange(previous, date)) {
         getPager().currentItem = 1
       }
     }
@@ -113,6 +114,14 @@ fun MaterialDialog.dateTimePicker(
   return this
 }
 
+private fun didDateChange(
+  from: Calendar?,
+  to: Calendar
+): Boolean {
+  if (from == null) return false
+  return from.dayOfMonth != to.dayOfMonth
+}
+
 /**
  * Gets the currently selected date and time from a date/time picker dialog.
  */

+ 4 - 1
datetime/src/main/res/layout/md_datetime_picker_date.xml

@@ -1,6 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <com.afollestad.date.DatePicker
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/datetimeDatePicker"
     android:layout_width="wrap_content"
-    android:layout_height="wrap_content" />
+    android:layout_height="wrap_content"
+    app:date_picker_calendar_horizontal_padding="8dp"
+    />

+ 1 - 1
dependencies.gradle

@@ -26,5 +26,5 @@ ext.versions = [
     // afollestad
     assent              : '2.3.0',
     dotsIndicator       : '1.0.0',
-    datePicker          : '0.2.1'
+    datePicker          : '0.4.1'
 ]