Refactor task review no handling

This commit is contained in:
Jonas Lochmann 2023-02-06 01:00:00 +01:00
parent 1468d9d5a0
commit cb4beed825
No known key found for this signature in database
GPG key ID: 8B8C9AEE10FA5B36
3 changed files with 42 additions and 13 deletions

View file

@ -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,

View file

@ -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,

View file

@ -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))
}