From f2c8082990d556983b5117a7e58264f2879eb476 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Wed, 18 Mar 2020 11:53:21 +0100 Subject: [PATCH] Fix date picker kitkat issue --- .../keepass/activities/EntryEditActivity.kt | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt b/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt index d51a8d0d9..0cd8ae95a 100644 --- a/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt +++ b/app/src/main/java/com/kunzisoft/keepass/activities/EntryEditActivity.kt @@ -431,20 +431,24 @@ class EntryEditActivity : LockingActivity(), } override fun onDateSet(datePicker: DatePicker?, year: Int, month: Int, day: Int) { - entryEditContentsView?.expiresDate?.date?.let { expiresDate -> - // Save the date - entryEditContentsView?.expiresDate = - DateInstant(DateTime(expiresDate) - .withYear(year) - .withMonthOfYear(month+1) - .withDayOfMonth(day) - .toDate()) - // Launch the time picker - val dateTime = DateTime(expiresDate) - val defaultHour = dateTime.hourOfDay - val defaultMinute = dateTime.minuteOfHour - TimePickerFragment.getInstance(defaultHour, defaultMinute) - .show(supportFragmentManager, "TimePickerFragment") + // To fix android 4.4 issue + // https://stackoverflow.com/questions/12436073/datepicker-ondatechangedlistener-called-twice + if (datePicker?.isShown == true) { + entryEditContentsView?.expiresDate?.date?.let { expiresDate -> + // Save the date + entryEditContentsView?.expiresDate = + DateInstant(DateTime(expiresDate) + .withYear(year) + .withMonthOfYear(month + 1) + .withDayOfMonth(day) + .toDate()) + // Launch the time picker + val dateTime = DateTime(expiresDate) + val defaultHour = dateTime.hourOfDay + val defaultMinute = dateTime.minuteOfHour + TimePickerFragment.getInstance(defaultHour, defaultMinute) + .show(supportFragmentManager, "TimePickerFragment") + } } }