changed date and timer pickers to material

This commit is contained in:
Denis Çerri 2023-02-23 10:03:02 +01:00
parent 9f7ef2f93d
commit c43cc4bfc6
No known key found for this signature in database
GPG key ID: 95C43D517D830350

View file

@ -6,6 +6,8 @@ import android.app.Dialog
import android.app.TimePickerDialog import android.app.TimePickerDialog
import android.content.DialogInterface import android.content.DialogInterface
import android.os.Bundle import android.os.Bundle
import android.util.DisplayMetrics
import android.view.Display
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.widget.Adapter import android.widget.Adapter
@ -23,7 +25,13 @@ import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel.Type
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.google.android.material.button.MaterialButton import com.google.android.material.button.MaterialButton
import com.google.android.material.datepicker.CalendarConstraints
import com.google.android.material.datepicker.DateValidatorPointBackward
import com.google.android.material.datepicker.DateValidatorPointForward
import com.google.android.material.datepicker.MaterialDatePicker
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
import com.google.android.material.timepicker.MaterialTimePicker
import com.google.android.material.timepicker.TimeFormat
import java.util.* import java.util.*
@ -47,7 +55,9 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val
dialog.setOnShowListener { dialog.setOnShowListener {
behavior = BottomSheetBehavior.from(view.parent as View) behavior = BottomSheetBehavior.from(view.parent as View)
behavior.peekHeight = 1200 val displayMetrics = DisplayMetrics()
requireActivity().windowManager.defaultDisplay.getMetrics(displayMetrics)
behavior.peekHeight = displayMetrics.heightPixels / 2
} }
tabLayout = view.findViewById(R.id.download_tablayout) tabLayout = view.findViewById(R.id.download_tablayout)
@ -103,32 +113,40 @@ class DownloadBottomSheetDialog(private val resultItem: ResultItem, private val
val currentDate = Calendar.getInstance() val currentDate = Calendar.getInstance()
val date = Calendar.getInstance() val date = Calendar.getInstance()
val datepicker = DatePickerDialog( val datepicker = MaterialDatePicker.Builder.datePicker()
requireContext(), .setCalendarConstraints(
{ view, year, monthOfYear, dayOfMonth -> CalendarConstraints.Builder()
date[year, monthOfYear] = dayOfMonth .setValidator(DateValidatorPointForward.now())
TimePickerDialog(context, .build()
{ _, hourOfDay, minute -> )
date[Calendar.HOUR_OF_DAY] = hourOfDay .setSelection(MaterialDatePicker.todayInUtcMilliseconds())
date[Calendar.MINUTE] = minute .build()
datepicker.addOnPositiveButtonClickListener{
date.timeInMillis = it
val item: DownloadItem = getDownloadItem(); val timepicker = MaterialTimePicker.Builder()
item.downloadStartTime = date.timeInMillis .setTimeFormat(TimeFormat.CLOCK_12H)
downloadViewModel.queueDownloads(listOf(item)) .setHour(currentDate.get(Calendar.HOUR_OF_DAY))
dismiss() .setMinute(currentDate.get(Calendar.MINUTE))
}, .build()
currentDate.get(Calendar.HOUR_OF_DAY),
currentDate.get(Calendar.MINUTE), timepicker.addOnPositiveButtonClickListener{
false date[Calendar.HOUR_OF_DAY] = timepicker.hour
).show() date[Calendar.MINUTE] = timepicker.minute
},
currentDate.get(Calendar.YEAR),
currentDate.get(Calendar.MONTH), val item: DownloadItem = getDownloadItem();
currentDate.get(Calendar.DATE) item.downloadStartTime = date.timeInMillis
) downloadViewModel.queueDownloads(listOf(item))
datepicker.datePicker.minDate = System.currentTimeMillis() - 1000 dismiss()
datepicker.show() }
timepicker.show(fragmentManager, "timepicker")
}
datepicker.show(fragmentManager, "datepicker")
} }
val download = view.findViewById<Button>(R.id.bottomsheet_download_button) val download = view.findViewById<Button>(R.id.bottomsheet_download_button)