From cb4beed825fea7a965dc2513d93969a3ada13242 Mon Sep 17 00:00:00 2001 From: Jonas Lochmann Date: Mon, 6 Feb 2023 01:00:00 +0100 Subject: [PATCH] Refactor task review no handling --- .../android/sync/actions/apply/ApplyAction.kt | 12 ++++++++ .../android/ui/model/main/OverviewHandling.kt | 30 ++++++++++++++++++- .../ui/overview/overview/OverviewScreen.kt | 13 +------- 3 files changed, 42 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/io/timelimit/android/sync/actions/apply/ApplyAction.kt b/app/src/main/java/io/timelimit/android/sync/actions/apply/ApplyAction.kt index 4999c46..d51a3ad 100644 --- a/app/src/main/java/io/timelimit/android/sync/actions/apply/ApplyAction.kt +++ b/app/src/main/java/io/timelimit/android/sync/actions/apply/ApplyAction.kt @@ -198,6 +198,18 @@ object ApplyActionUtil { } } + suspend fun applyParentAction( + action: ParentAction, + authentication: ApplyActionParentAuthentication, + logic: AppLogic + ) = applyParentAction( + action = action, + database = logic.database, + authentication = authentication, + syncUtil = logic.syncUtil, + platformIntegration = logic.platformIntegration + ) + suspend fun applyParentAction( action: ParentAction, database: Database, diff --git a/app/src/main/java/io/timelimit/android/ui/model/main/OverviewHandling.kt b/app/src/main/java/io/timelimit/android/ui/model/main/OverviewHandling.kt index 8e1a642..2532598 100644 --- a/app/src/main/java/io/timelimit/android/ui/model/main/OverviewHandling.kt +++ b/app/src/main/java/io/timelimit/android/ui/model/main/OverviewHandling.kt @@ -29,6 +29,8 @@ import io.timelimit.android.integration.platform.RuntimePermissionStatus import io.timelimit.android.livedata.map import io.timelimit.android.logic.AppLogic import io.timelimit.android.logic.ServerApiLevelInfo +import io.timelimit.android.sync.actions.ReviewChildTaskAction +import io.timelimit.android.sync.actions.apply.ApplyActionUtil import io.timelimit.android.ui.model.ActivityCommand import io.timelimit.android.ui.model.AuthenticationModelApi import io.timelimit.android.ui.model.Screen @@ -106,6 +108,30 @@ object OverviewHandling { } } } + }, + reviewReject = { task -> + // TODO: add error handler to scope + scope.launch { + lock.tryWithLock { + authentication.doParentAuthentication()?.let { parent -> + ApplyActionUtil.applyParentAction( + ReviewChildTaskAction( + taskId = task.task.childTask.taskId, + ok = false, + time = logic.timeApi.getCurrentTimeInMillis(), + day = null + ), + parent.authentication, + logic + ) + } + } + } + }, + reviewAccept = { + scope.launch { + TODO() + } } ) } @@ -310,7 +336,9 @@ object OverviewHandling { data class Actions( val hideIntro: () -> Unit, val addDevice: () -> Unit, - val skipTaskReview: (TaskToReview) -> Unit + val skipTaskReview: (TaskToReview) -> Unit, + val reviewReject: (TaskToReview) -> Unit, + val reviewAccept: (TaskToReview) -> Unit ) data class IntroFlags( val showSetupOption: Boolean, diff --git a/app/src/main/java/io/timelimit/android/ui/overview/overview/OverviewScreen.kt b/app/src/main/java/io/timelimit/android/ui/overview/overview/OverviewScreen.kt index 7352fed..83220aa 100644 --- a/app/src/main/java/io/timelimit/android/ui/overview/overview/OverviewScreen.kt +++ b/app/src/main/java/io/timelimit/android/ui/overview/overview/OverviewScreen.kt @@ -197,18 +197,7 @@ fun OverviewScreen( Spacer(Modifier.weight(1.0f)) - OutlinedButton(onClick = { - if (activity.getActivityViewModel().isParentAuthenticated()) { - auth.tryDispatchParentAction( - ReviewChildTaskAction( - taskId = screen.taskToReview.task.childTask.taskId, - ok = false, - time = logic.timeApi.getCurrentTimeInMillis(), - day = null - ) - ) - } else activity.showAuthenticationScreen() - }) { + OutlinedButton(onClick = { screen.actions.reviewReject(screen.taskToReview) }) { Text(stringResource(R.string.generic_no)) }