Skip to content

Instantly share code, notes, and snippets.

View PriyaSindkar's full-sized avatar
👩‍💻
Coding

Priya Sindkar PriyaSindkar

👩‍💻
Coding
View GitHub Profile
@PriyaSindkar
PriyaSindkar / DatePickerDialogDemo.kt
Created June 26, 2023 11:37
Material 3 DatePickerDialog
var openDatePickerDialog = remember { mutableStateOf(false) }
if (openDatePickerDialog.value) {
val datePickerState = rememberDatePickerState()
DatePickerDialog(
onDismissRequest = {
openDatePickerDialog.value = false
},
confirmButton = {
TextButton(
@PriyaSindkar
PriyaSindkar / DatePickerSelectableDates.kt
Created June 26, 2023 11:35
Selectable Dates for DatePicker from Material 3- enable and disable dates available for selection
val datePickerState =
rememberDatePickerState(initialSelectedDateMillis = System.currentTimeMillis(),
selectableDates = object : SelectableDates {
override fun isSelectableDate(utcTimeMillis: Long): Boolean {
val date = Date().apply {
time = utcTimeMillis
}
val currentDate = Date()
return date.before(currentDate)
}
@PriyaSindkar
PriyaSindkar / DatePickerdemo.kt
Created June 26, 2023 11:24
DatePicker component from Material3
val datePickerState =
rememberDatePickerState(initialSelectedDateMillis = System.currentTimeMillis())
DatePicker(
state = datePickerState,
modifier = Modifier.padding(16.dp),
title = {
Text(text = "Select start date")
},
// colors = DatePickerDefaults.colors(
@PriyaSindkar
PriyaSindkar / ModalBottomSheetDemo.kt
Created June 26, 2023 11:23
Modal BottomSheet Demo
var openModalBottomSheet by rememberSaveable { mutableStateOf(false) }
// Modal Sheet content
if (openModalBottomSheet) {
ModalBottomSheet(
onDismissRequest = { openModalBottomSheet = false },
sheetState = bottomSheetState,
scrimColor = Purple40Alpha30,
) {
@PriyaSindkar
PriyaSindkar / BottonSheetDragHandle.kt
Created June 26, 2023 11:22
BottomSheet Drag Handle customization
// to customize sheet drag handle
sheetDragHandle = {
BottomSheetDefaults.DragHandle(
color = Color.Red,
shape = RoundedCornerShape(2.dp),
width = 48.dp,
height = 8.dp
)
},
@PriyaSindkar
PriyaSindkar / BottomSheetDcaffoldDemo.kt
Created June 26, 2023 11:21
Standard Bottom Sheet from Material 3
val scope = rememberCoroutineScope()
val sheetState = SheetState(skipPartiallyExpanded = false, skipHiddenState = false)
val scaffoldState = rememberBottomSheetScaffoldState(bottomSheetState = sheetState)
BottomSheetScaffold(modifier = Modifier.fillMaxHeight(),
scaffoldState = scaffoldState,
sheetPeekHeight = 128.dp,
sheetShadowElevation = 32.dp,
topBar = {
CenterAlignedTopAppBar(title = { Text(text = "Material 3 Demo") })
@PriyaSindkar
PriyaSindkar / Material3DefaultTheme.kt
Created June 26, 2023 11:20
Default theme for Material 3 in Compose
private val DarkColorScheme = darkColorScheme(
primary = Purple80,
secondary = PurpleGrey80,
tertiary = Pink80
)
private val LightColorScheme = lightColorScheme(
primary = Purple40,
secondary = PurpleGrey40,
tertiary = Pink40
// Migrating queries to fetch all products (From skus to products)
// v4.0 - deprecated
val skuList = ArrayList<String>()
skuList.add("up_basic_sub")
val params = SkuDetailsParams.newBuilder()
params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS)
billingClient.querySkuDetailsAsync(params.build()) {
billingResult, skuDetailsList ->
// Process the result
fun main() {
val listOfMumbaiPeople = listOf<Person>(
Person("John", Address("Thane", "Mumbai")),
Person("Bob", Address("Bandra", "Mumbai"))
)
val listOfVadodaraPeople = listOf<Person>(
Person("Jane", Address("Manjalpur", "Vadodara")),
Person("Alice", Address("Akota", "Vadodara"))
)
data class Address(var addressLine1: String, var city: String)
data class Person(var name: String, var address: Address)
fun main() {
// map
val listOfPeople = listOf<Person>(
Person("Jane", Address("Manjalpur", "Vadodara")),
Person("John", Address("Vastrapur", "Ahmedabad")),
Person("Bob", Address("Bandra", "Mumbai"))
)