Skip to content

Commit ef11ada

Browse files
authored
Update wear-os app: Use SwipeToReveal, convert delete Screens to AlertDialogs (#360)
1 parent c0b2c57 commit ef11ada

16 files changed

Lines changed: 304 additions & 358 deletions

gradle/libs.versions.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ androidJunit = "1.1.3"
77
androidMinSdk = "24"
88
androidTargetSdk = "34"
99
androidWearMinSdk = "25"
10+
animationGraphicsAndroid = "1.5.0"
1011
appcompat = "1.6.1"
1112
composeCompiler = "1.4.8"
1213
composeMultiplatform = "1.5.1"
@@ -49,7 +50,11 @@ wearInput = "1.2.0-alpha02"
4950
android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "androidGradlePlugin" }
5051

5152
androidx-activityCompose = { module = "androidx.activity:activity-compose", version.ref = "activity" }
53+
54+
androidx-compose-animationGraphicsAndroid = { module = "androidx.compose.animation:animation-graphics-android", version.ref = "animationGraphicsAndroid" }
55+
5256
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }
57+
5358
androidx-coreKtx = { module = "androidx.core:core-ktx", version.ref = "androidCore" }
5459

5560
androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "dataStore" }

wearos/build.gradle.kts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,18 @@ dependencies {
7474

7575
implementation(libs.androidx.activityCompose)
7676

77+
implementation(libs.androidx.compose.animationGraphicsAndroid)
78+
7779
implementation(libs.androidx.coreKtx)
7880

7981
implementation(libs.androidx.lifecycle.runtime)
8082
implementation(libs.androidx.lifecycle.viewmodel)
8183

82-
implementation(libs.wear.wear)
8384
implementation(libs.wear.compose.foundation)
8485
implementation(libs.wear.compose.material)
8586
implementation(libs.wear.compose.navigation)
8687
implementation(libs.wear.input)
88+
implementation(libs.wear.wear)
8789

8890
implementation(libs.koin.android)
8991
implementation(libs.koin.compose)

wearos/src/main/java/dev/sergiobelda/todometer/wear/di/ViewModelModule.kt

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
package dev.sergiobelda.todometer.wear.di
1818

19-
import dev.sergiobelda.todometer.wear.ui.deletetask.DeleteTaskViewModel
20-
import dev.sergiobelda.todometer.wear.ui.deletetasklist.DeleteTaskListViewModel
2119
import dev.sergiobelda.todometer.wear.ui.home.HomeViewModel
2220
import dev.sergiobelda.todometer.wear.ui.taskdetail.TaskDetailViewModel
2321
import dev.sergiobelda.todometer.wear.ui.tasklisttasks.TaskListTasksViewModel
@@ -35,16 +33,12 @@ internal val viewModelModule = module {
3533
get(),
3634
get(),
3735
get(),
36+
get(),
37+
get(),
3838
get()
3939
)
4040
}
4141
viewModel { parameters ->
42-
DeleteTaskListViewModel(taskListId = parameters.get(), get())
43-
}
44-
viewModel { parameters ->
45-
TaskDetailViewModel(taskId = parameters.get(), get(), get())
46-
}
47-
viewModel { parameters ->
48-
DeleteTaskViewModel(taskId = parameters.get(), get())
42+
TaskDetailViewModel(taskId = parameters.get(), get(), get(), get())
4943
}
5044
}

wearos/src/main/java/dev/sergiobelda/todometer/wear/ui/ToDometerNavHost.kt

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,8 @@ import androidx.navigation.NavHostController
2222
import androidx.wear.compose.navigation.SwipeDismissableNavHost
2323
import androidx.wear.compose.navigation.composable
2424
import dev.sergiobelda.todometer.common.navigation.Action
25-
import dev.sergiobelda.todometer.wear.ui.deletetask.DeleteTaskDestination
26-
import dev.sergiobelda.todometer.wear.ui.deletetask.DeleteTaskScreen
27-
import dev.sergiobelda.todometer.wear.ui.deletetask.navigateToDeleteTask
28-
import dev.sergiobelda.todometer.wear.ui.deletetasklist.DeleteTaskListDestination
29-
import dev.sergiobelda.todometer.wear.ui.deletetasklist.DeleteTaskListScreen
30-
import dev.sergiobelda.todometer.wear.ui.deletetasklist.navigateToDeleteTaskList
3125
import dev.sergiobelda.todometer.wear.ui.home.HomeDestination
3226
import dev.sergiobelda.todometer.wear.ui.home.HomeScreen
33-
import dev.sergiobelda.todometer.wear.ui.home.popBackStackToHome
3427
import dev.sergiobelda.todometer.wear.ui.taskdetail.TaskDetailDestination
3528
import dev.sergiobelda.todometer.wear.ui.taskdetail.TaskDetailScreen
3629
import dev.sergiobelda.todometer.wear.ui.taskdetail.navigateToTaskDetail
@@ -60,32 +53,13 @@ fun ToDometerNavHost(
6053
TaskListTasksScreen(
6154
taskListId = taskListId,
6255
openTask = action.navigateToTaskDetail,
63-
deleteTaskList = { action.navigateToDeleteTaskList(taskListId) }
64-
)
65-
}
66-
composable(DeleteTaskListDestination.route) { navBackStackEntry ->
67-
val taskListId = DeleteTaskListDestination.navArgsTaskListId(navBackStackEntry)
68-
DeleteTaskListScreen(
69-
taskListId = taskListId,
70-
onDeleteTaskList = action.popBackStackToHome,
7156
navigateBack = { action.popBackStack() }
7257
)
7358
}
7459
composable(TaskDetailDestination.route) { navBackStackEntry ->
7560
val taskId = TaskDetailDestination.navArgsTaskId(navBackStackEntry)
7661
TaskDetailScreen(
7762
taskId = taskId,
78-
deleteTask = { action.navigateToDeleteTask(taskId) }
79-
)
80-
}
81-
composable(DeleteTaskDestination.route) { navBackStackEntry ->
82-
val taskId = DeleteTaskDestination.navArgsTaskId(navBackStackEntry)
83-
DeleteTaskScreen(
84-
taskId = taskId,
85-
onDeleteTask = {
86-
action.popBackStack()
87-
action.navigateUp()
88-
},
8963
navigateBack = { action.popBackStack() }
9064
)
9165
}

wearos/src/main/java/dev/sergiobelda/todometer/wear/ui/components/ToDometerLoadingProgress.kt renamed to wearos/src/main/java/dev/sergiobelda/todometer/wear/ui/components/ContentLoadingProgress.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ import androidx.compose.ui.unit.dp
2323
import androidx.wear.compose.material.CircularProgressIndicator
2424

2525
@Composable
26-
internal fun ToDometerLoadingProgress() {
26+
internal fun ContentLoadingProgress() {
2727
CircularProgressIndicator(modifier = Modifier.padding(top = 24.dp))
2828
}

wearos/src/main/java/dev/sergiobelda/todometer/wear/ui/deletetask/DeleteTaskScreen.kt renamed to wearos/src/main/java/dev/sergiobelda/todometer/wear/ui/deletetask/DeleteTaskAlertDialog.kt

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,11 @@ import androidx.wear.compose.material.dialog.Alert
2525
import dev.sergiobelda.todometer.common.resources.MR
2626
import dev.sergiobelda.todometer.common.resources.ToDometerIcons
2727
import dev.sergiobelda.todometer.common.resources.stringResource
28-
import org.koin.androidx.compose.getViewModel
29-
import org.koin.core.parameter.parametersOf
3028

3129
@Composable
32-
internal fun DeleteTaskScreen(
33-
taskId: String,
30+
internal fun DeleteTaskAlertDialog(
3431
onDeleteTask: () -> Unit,
35-
navigateBack: () -> Unit,
36-
deleteTaskViewModel: DeleteTaskViewModel = getViewModel(parameters = { parametersOf(taskId) })
32+
onCancel: () -> Unit
3733
) {
3834
Alert(
3935
icon = {
@@ -45,17 +41,12 @@ internal fun DeleteTaskScreen(
4541
title = {},
4642
content = { Text(stringResource(MR.strings.delete_task_question)) },
4743
positiveButton = {
48-
Button(
49-
onClick = {
50-
deleteTaskViewModel.deleteTask()
51-
onDeleteTask()
52-
}
53-
) {
44+
Button(onClick = onDeleteTask) {
5445
Icon(ToDometerIcons.Check, null)
5546
}
5647
},
5748
negativeButton = {
58-
Button(colors = ButtonDefaults.secondaryButtonColors(), onClick = navigateBack) {
49+
Button(colors = ButtonDefaults.secondaryButtonColors(), onClick = onCancel) {
5950
Icon(ToDometerIcons.Close, null)
6051
}
6152
}

wearos/src/main/java/dev/sergiobelda/todometer/wear/ui/deletetask/DeleteTaskNavigation.kt

Lines changed: 0 additions & 41 deletions
This file was deleted.

wearos/src/main/java/dev/sergiobelda/todometer/wear/ui/deletetask/DeleteTaskViewModel.kt

Lines changed: 0 additions & 32 deletions
This file was deleted.

wearos/src/main/java/dev/sergiobelda/todometer/wear/ui/deletetasklist/DeleteTaskListScreen.kt renamed to wearos/src/main/java/dev/sergiobelda/todometer/wear/ui/deletetasklist/DeleteTaskListAlertDialog.kt

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,15 +25,11 @@ import androidx.wear.compose.material.dialog.Alert
2525
import dev.sergiobelda.todometer.common.resources.MR
2626
import dev.sergiobelda.todometer.common.resources.ToDometerIcons
2727
import dev.sergiobelda.todometer.common.resources.stringResource
28-
import org.koin.androidx.compose.getViewModel
29-
import org.koin.core.parameter.parametersOf
3028

3129
@Composable
32-
internal fun DeleteTaskListScreen(
33-
taskListId: String,
30+
internal fun DeleteTaskListAlertDialog(
3431
onDeleteTaskList: () -> Unit,
35-
navigateBack: () -> Unit,
36-
deleteTaskListViewModel: DeleteTaskListViewModel = getViewModel { parametersOf(taskListId) }
32+
onCancel: () -> Unit
3733
) {
3834
Alert(
3935
icon = {
@@ -46,16 +42,13 @@ internal fun DeleteTaskListScreen(
4642
content = { Text(stringResource(MR.strings.delete_task_list_question)) },
4743
positiveButton = {
4844
Button(
49-
onClick = {
50-
deleteTaskListViewModel.deleteTaskList()
51-
onDeleteTaskList()
52-
}
45+
onClick = onDeleteTaskList
5346
) {
5447
Icon(ToDometerIcons.Check, null)
5548
}
5649
},
5750
negativeButton = {
58-
Button(colors = secondaryButtonColors(), onClick = navigateBack) {
51+
Button(colors = secondaryButtonColors(), onClick = onCancel) {
5952
Icon(ToDometerIcons.Close, null)
6053
}
6154
}

wearos/src/main/java/dev/sergiobelda/todometer/wear/ui/deletetasklist/DeleteTaskListNavigation.kt

Lines changed: 0 additions & 43 deletions
This file was deleted.

0 commit comments

Comments
 (0)