Skip to content

Commit

Permalink
Merge pull request #322 from SuhasDissa/fix-layout
Browse files Browse the repository at this point in the history
Fix layout related issues
  • Loading branch information
SuhasDissa authored Apr 8, 2024
2 parents 89bcfb7 + dd39a1d commit 66b3cd4
Show file tree
Hide file tree
Showing 7 changed files with 362 additions and 278 deletions.
11 changes: 0 additions & 11 deletions app/src/main/java/com/bnyro/clock/ui/components/AlarmRow.kt
Original file line number Diff line number Diff line change
Expand Up @@ -141,17 +141,6 @@ fun AlarmRow(alarm: Alarm, alarmModel: AlarmModel) {
onCheckedChange = { newValue ->
alarm.enabled = newValue
isEnabled = newValue

if (isEnabled) {
val millisRemainingForAlarm = (AlarmHelper.getAlarmTime(alarm) - System.currentTimeMillis())
val formattedDuration = TimeHelper.durationToFormatted(context, millisRemainingForAlarm.milliseconds)
Toast.makeText(
context,
context.resources.getString(R.string.alarm_will_play, formattedDuration),
Toast.LENGTH_SHORT
).show()
}

alarmModel.updateAlarm(context, alarm)
}
)
Expand Down
302 changes: 163 additions & 139 deletions app/src/main/java/com/bnyro/clock/ui/components/AlarmSettingsSheet.kt

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ import androidx.compose.ui.unit.dp
* @param onMinutesChanged New minutes value
*/
@Composable
fun ColumnScope.AlarmTimePicker(
fun AlarmTimePicker(
initialHours: Int,
initialMinutes: Int,
onHoursChanged: (Int) -> Unit,
Expand All @@ -41,7 +41,7 @@ fun ColumnScope.AlarmTimePicker(
if (initialHours >= 12) Meridiem.PM else Meridiem.AM
}
Box(
modifier = Modifier.fillMaxWidth().weight(1f),
modifier = Modifier.fillMaxWidth(),
contentAlignment = Alignment.Center
) {
Row {
Expand Down
12 changes: 8 additions & 4 deletions app/src/main/java/com/bnyro/clock/ui/components/NumberKeypad.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,28 +38,32 @@ fun NumberKeypad(
verticalArrangement = Arrangement.spacedBy(buttonSpacing)
) {
Row(
horizontalArrangement = Arrangement.spacedBy(buttonSpacing)
horizontalArrangement = Arrangement.spacedBy(buttonSpacing),
modifier = Modifier.weight(1f)
) {
NumPadButton(number = "1", buttonSize, onOperation)
NumPadButton(number = "2", buttonSize, onOperation)
NumPadButton(number = "3", buttonSize, onOperation)
}
Row(
horizontalArrangement = Arrangement.spacedBy(buttonSpacing)
horizontalArrangement = Arrangement.spacedBy(buttonSpacing),
modifier = Modifier.weight(1f)
) {
NumPadButton(number = "4", buttonSize, onOperation)
NumPadButton(number = "5", buttonSize, onOperation)
NumPadButton(number = "6", buttonSize, onOperation)
}
Row(
horizontalArrangement = Arrangement.spacedBy(buttonSpacing)
horizontalArrangement = Arrangement.spacedBy(buttonSpacing),
modifier = Modifier.weight(1f)
) {
NumPadButton(number = "7", buttonSize, onOperation)
NumPadButton(number = "8", buttonSize, onOperation)
NumPadButton(number = "9", buttonSize, onOperation)
}
Row(
horizontalArrangement = Arrangement.spacedBy(buttonSpacing)
horizontalArrangement = Arrangement.spacedBy(buttonSpacing),
modifier = Modifier.weight(1f)
) {
NumPadButton(number = "00", buttonSize, onOperation)
NumPadButton(number = "0", buttonSize, onOperation)
Expand Down
15 changes: 15 additions & 0 deletions app/src/main/java/com/bnyro/clock/ui/model/AlarmModel.kt
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
package com.bnyro.clock.ui.model

import android.content.Context
import android.widget.Toast
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.bnyro.clock.R
import com.bnyro.clock.db.DatabaseHolder
import com.bnyro.clock.obj.Alarm
import com.bnyro.clock.obj.AlarmFilters
import com.bnyro.clock.util.AlarmHelper
import com.bnyro.clock.util.TimeHelper
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.SharingStarted
Expand All @@ -19,6 +22,7 @@ import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import java.util.Collections
import kotlin.time.Duration.Companion.milliseconds

class AlarmModel : ViewModel() {
var selectedAlarm: Alarm? by mutableStateOf(null)
Expand Down Expand Up @@ -47,6 +51,17 @@ class AlarmModel : ViewModel() {
}

fun updateAlarm(context: Context, alarm: Alarm) {
if (alarm.enabled) {
val millisRemainingForAlarm =
(AlarmHelper.getAlarmTime(alarm) - System.currentTimeMillis())
val formattedDuration =
TimeHelper.durationToFormatted(context, millisRemainingForAlarm.milliseconds)
Toast.makeText(
context,
context.resources.getString(R.string.alarm_will_play, formattedDuration),
Toast.LENGTH_SHORT
).show()
}
AlarmHelper.enqueue(context, alarm)
viewModelScope.launch(Dispatchers.IO) {
DatabaseHolder.instance.alarmsDao().update(alarm)
Expand Down
Loading

0 comments on commit 66b3cd4

Please sign in to comment.