1 /**
2  * Copyright (C) 2022 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5  * in compliance with the License. You may obtain a copy of the License at
6  *
7  * ```
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  * ```
10  *
11  * Unless required by applicable law or agreed to in writing, software distributed under the License
12  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13  * or implied. See the License for the specific language governing permissions and limitations under
14  * the License.
15  */
16 package com.android.healthconnect.controller.utils
17 
18 import android.app.DatePickerDialog
19 import android.content.Context
20 import java.time.Instant
21 
22 /** Factory for {@link DatePickerDialog}. */
23 object DatePickerFactory {
createnull24     fun create(context: Context, selectedDate: Instant, maxDate: Instant?): DatePickerDialog {
25         val datePickerDialog = DatePickerDialog(context)
26         val datePicker = datePickerDialog.datePicker
27         if (maxDate != null) {
28             datePicker.maxDate = maxDate.toEpochMilli()
29         }
30 
31         val date = selectedDate.toLocalDate()
32         // date picker takes month starting from 0, local date return month starting from 1
33         val month = date.month.value - 1
34         datePicker.updateDate(date.year, month, date.dayOfMonth)
35 
36         return datePickerDialog
37     }
38 }
39