From 9c3156a85afdc2f6c752ab4cb1e399cce2b0bcf6 Mon Sep 17 00:00:00 2001 From: sathwikcs <85106054+sathwikcs@users.noreply.github.com> Date: Tue, 18 Mar 2025 17:42:48 +0530 Subject: [PATCH] created DailyMonthYearPickerDialog --- .../smiadmin/ui/utils/DaliyYearPicker.kt | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 app/src/main/java/in/sminnovations/smiadmin/ui/utils/DaliyYearPicker.kt diff --git a/app/src/main/java/in/sminnovations/smiadmin/ui/utils/DaliyYearPicker.kt b/app/src/main/java/in/sminnovations/smiadmin/ui/utils/DaliyYearPicker.kt new file mode 100644 index 0000000..cd273ae --- /dev/null +++ b/app/src/main/java/in/sminnovations/smiadmin/ui/utils/DaliyYearPicker.kt @@ -0,0 +1,54 @@ +package `in`.sminnovations.smiadmin.ui.utils + +import android.app.AlertDialog +import android.app.Dialog +import android.os.Bundle +import android.view.LayoutInflater +import android.widget.CalendarView +import android.widget.NumberPicker +import androidx.fragment.app.DialogFragment +import `in`.sminnovations.smiadmin.R +import java.util.Calendar +class DailyMonthYearPickerDialog : DialogFragment() { + private var onDateSelected: ((Calendar) -> Unit)? = null + private var selectedDate: Calendar = Calendar.getInstance() + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + // Inflate the custom layout + val view = LayoutInflater.from(requireContext()).inflate(R.layout.dialog_date_month_year_picker, null) + + // Initialize CalendarView + val calendarPicker = view.findViewById(R.id.calendarViewPicker) + + // Set default date + calendarPicker.date = selectedDate.timeInMillis + + // Listen for date changes + calendarPicker.setOnDateChangeListener { _, year, month, dayOfMonth -> + selectedDate.set(Calendar.YEAR, year) + selectedDate.set(Calendar.MONTH, month) + selectedDate.set(Calendar.DAY_OF_MONTH, dayOfMonth) + } + + // Build the Dialog + val dialog = AlertDialog.Builder(requireContext()) + .setView(view) + .setTitle("Select Date") + .setPositiveButton("OK") { _, _ -> + // Pass the selected date back through the callback + onDateSelected?.invoke(selectedDate) + } + .setNegativeButton("Cancel", null) + .create() + + return dialog + } + + fun setOnDateSelectedListener(listener: (Calendar) -> Unit) { + onDateSelected = listener + } + + fun setInitialDate(calendar: Calendar) { + selectedDate = calendar + } +} \ No newline at end of file