Skip to content

Commit

Permalink
Merge pull request #58 from ahudson20/56-tidy-ups
Browse files Browse the repository at this point in the history
General code tidy up
  • Loading branch information
ahudson20 authored Apr 23, 2024
2 parents c941835 + 2025e1e commit 41e6292
Show file tree
Hide file tree
Showing 25 changed files with 361 additions and 252 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import androidx.compose.ui.test.onNodeWithText
import com.app.whakaara.state.BooleanStateEvent
import com.app.whakaara.state.ListStateEvent
import com.app.whakaara.state.StringStateEvent
import com.app.whakaara.state.UpdateBottomSheetDetailsAlarmInfo
import com.app.whakaara.ui.bottomsheet.details.BottomSheetDetailsAlarmInfo
import com.app.whakaara.ui.theme.WhakaaraTheme
import org.junit.Rule
Expand All @@ -25,21 +26,23 @@ class BottomSheetAlarmDetailsTest {
setContent {
WhakaaraTheme {
BottomSheetDetailsAlarmInfo(
updateIsVibrationEnabled = BooleanStateEvent(
value = false
),
updateIsSnoozeEnabled = BooleanStateEvent(
value = true
),
updateDeleteAfterGoesOff = BooleanStateEvent(
value = false
),
updateRepeatDaily = BooleanStateEvent(
value = false
),
updateCheckedList = ListStateEvent(),
updateTitle = StringStateEvent(
value = "Alarm"
updateBottomSheetDetailsAlarmInfo = UpdateBottomSheetDetailsAlarmInfo(
updateIsVibrationEnabled = BooleanStateEvent(
value = false
),
updateIsSnoozeEnabled = BooleanStateEvent(
value = true
),
updateDeleteAfterGoesOff = BooleanStateEvent(
value = false
),
updateRepeatDaily = BooleanStateEvent(
value = false
),
updateCheckedList = ListStateEvent(),
updateTitle = StringStateEvent(
value = "Alarm"
)
)
)
}
Expand Down
124 changes: 104 additions & 20 deletions app/src/main/java/com/app/whakaara/activities/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,27 @@ import androidx.compose.foundation.layout.ExperimentalLayoutApi
import androidx.compose.runtime.getValue
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.app.whakaara.data.alarm.Alarm
import com.app.whakaara.data.preferences.AppTheme
import com.app.whakaara.data.preferences.Preferences
import com.app.whakaara.logic.MainViewModel
import com.app.whakaara.state.AlarmState
import com.app.whakaara.state.events.AlarmEventCallbacks
import com.app.whakaara.state.events.PreferencesEventCallbacks
import com.app.whakaara.state.events.StopwatchEventCallbacks
import com.app.whakaara.state.events.TimerEventCallbacks
import com.app.whakaara.ui.screens.MainScreen
import com.app.whakaara.ui.theme.WhakaaraTheme
import dagger.hilt.android.AndroidEntryPoint

@AndroidEntryPoint
@ExperimentalLayoutApi
class MainActivity : ComponentActivity() {
class MainActivity :
ComponentActivity(),
AlarmEventCallbacks,
TimerEventCallbacks,
StopwatchEventCallbacks,
PreferencesEventCallbacks {

private val viewModel: MainViewModel by viewModels()

Expand Down Expand Up @@ -52,25 +63,10 @@ class MainActivity : ComponentActivity() {
alarmState = alarmState,
stopwatchState = stopwatchState,
timerState = timerState,
create = viewModel::create,
delete = viewModel::delete,
disable = viewModel::disable,
enable = viewModel::enable,
reset = viewModel::reset,
updateHours = viewModel::updateInputHours,
updateMinutes = viewModel::updateInputMinutes,
updateSeconds = viewModel::updateInputSeconds,
startTimer = viewModel::startTimer,
stopTimer = viewModel::resetTimer,
pauseTimer = viewModel::pauseTimer,
restartTimer = viewModel::restartTimer,
onStart = viewModel::startStopwatch,
onPause = viewModel::pauseStopwatch,
onStop = viewModel::resetStopwatch,
onLap = viewModel::lapStopwatch,
updatePreferences = viewModel::updatePreferences,
updateAllAlarmSubtitles = viewModel::updateAllAlarmSubtitles,
updateCurrentAlarmsToAddOrRemoveUpcomingAlarmNotification = viewModel::updateCurrentAlarmsToAddOrRemoveUpcomingAlarmNotification
alarmEventCallbacks = this@MainActivity,
timerEventCallbacks = this@MainActivity,
stopwatchEventCallbacks = this@MainActivity,
preferencesEventCallbacks = this@MainActivity
)
}
}
Expand All @@ -95,4 +91,92 @@ class MainActivity : ComponentActivity() {
startTimerNotification()
}
}

//region alarm
override fun create(alarm: Alarm) {
viewModel.create(alarm = alarm)
}

override fun delete(alarm: Alarm) {
viewModel.delete(alarm = alarm)
}

override fun disable(alarm: Alarm) {
viewModel.disable(alarm = alarm)
}

override fun enable(alarm: Alarm) {
viewModel.enable(alarm = alarm)
}

override fun reset(alarm: Alarm) {
viewModel.reset(alarm = alarm)
}
//endregion

//region timer
override fun updateHours(newValue: String) {
viewModel.updateInputHours(newValue = newValue)
}

override fun updateMinutes(newValue: String) {
viewModel.updateInputMinutes(newValue = newValue)
}

override fun updateSeconds(newValue: String) {
viewModel.updateInputSeconds(newValue = newValue)
}

override fun startTimer() {
viewModel.startTimer()
}

override fun stopTimer() {
viewModel.resetTimer()
}

override fun pauseTimer() {
viewModel.pauseTimer()
}

override fun restartTimer() {
viewModel.restartTimer()
}
//endregion

//region stopwatch
override fun startStopwatch() {
viewModel.startStopwatch()
}

override fun pauseStopwatch() {
viewModel.pauseStopwatch()
}

override fun stopStopwatch() {
viewModel.resetStopwatch()
}

override fun lapStopwatch() {
viewModel.lapStopwatch()
}
//endregion

//region preferences
override fun updatePreferences(preferences: Preferences) {
viewModel.updatePreferences(preferences = preferences)
}

override fun updateAllAlarmSubtitles(format: Boolean) {
viewModel.updateAllAlarmSubtitles(format = format)
}

override fun updateCurrentAlarmsToAddOrRemoveUpcomingAlarmNotification(
shouldEnableUpcomingAlarmNotification: Boolean
) {
viewModel.updateCurrentAlarmsToAddOrRemoveUpcomingAlarmNotification(
shouldEnableUpcomingAlarmNotification = shouldEnableUpcomingAlarmNotification
)
}
//endregion
}
9 changes: 9 additions & 0 deletions app/src/main/java/com/app/whakaara/state/UpdateStateEvent.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,12 @@ data class ListStateEvent(
val value: MutableList<Int> = mutableListOf(),
val onValueChange: (Int) -> Unit = {}
)

data class UpdateBottomSheetDetailsAlarmInfo(
val updateIsVibrationEnabled: BooleanStateEvent = BooleanStateEvent(),
val updateIsSnoozeEnabled: BooleanStateEvent = BooleanStateEvent(),
val updateDeleteAfterGoesOff: BooleanStateEvent = BooleanStateEvent(),
val updateTitle: StringStateEvent = StringStateEvent(),
val updateRepeatDaily: BooleanStateEvent = BooleanStateEvent(),
val updateCheckedList: ListStateEvent = ListStateEvent()
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.app.whakaara.state.events

import com.app.whakaara.data.alarm.Alarm

interface AlarmEventCallbacks {
fun create(alarm: Alarm)
fun delete(alarm: Alarm)
fun disable(alarm: Alarm)
fun enable(alarm: Alarm)
fun reset(alarm: Alarm)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.app.whakaara.state.events

import com.app.whakaara.data.preferences.Preferences

interface PreferencesEventCallbacks {
fun updatePreferences(preferences: Preferences)

fun updateAllAlarmSubtitles(format: Boolean)

fun updateCurrentAlarmsToAddOrRemoveUpcomingAlarmNotification(shouldEnableUpcomingAlarmNotification: Boolean)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.app.whakaara.state.events

interface StopwatchEventCallbacks {
fun startStopwatch()
fun pauseStopwatch()
fun stopStopwatch()
fun lapStopwatch()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.app.whakaara.state.events

interface TimerEventCallbacks {
fun updateHours(newValue: String)
fun updateMinutes(newValue: String)
fun updateSeconds(newValue: String)
fun startTimer()
fun stopTimer()
fun pauseTimer()
fun restartTimer()
}
Loading

0 comments on commit 41e6292

Please sign in to comment.