mirror of
https://codeberg.org/timelimit/timelimit-android.git
synced 2025-10-03 17:59:51 +02:00
Allow task completion marking from the task list
This commit is contained in:
parent
020e4e2be0
commit
a778a5cb74
7 changed files with 25 additions and 5 deletions
|
@ -52,7 +52,7 @@ class LockTaskFragment: Fragment() {
|
|||
if (task.pendingRequest)
|
||||
TaskReviewPendingDialogFragment.newInstance().show(parentFragmentManager)
|
||||
else
|
||||
ConfirmTaskDialogFragment.newInstance(taskId = task.taskId, taskTitle = task.taskTitle).show(parentFragmentManager)
|
||||
ConfirmTaskDialogFragment.newInstance(taskId = task.taskId, taskTitle = task.taskTitle, fromManageScreen = false).show(parentFragmentManager)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,6 +83,7 @@ class ChildTaskAdapter: RecyclerView.Adapter<ChildTaskAdapter.Holder>() {
|
|||
binding.lastGrant = item.taskItem.lastGrantTimestamp.let { time ->
|
||||
if (time == 0L) null else DateUtil.formatAbsoluteDate(context, time)
|
||||
}
|
||||
binding.pendingReview = item.taskItem.pendingRequest
|
||||
|
||||
binding.executePendingBindings()
|
||||
|
||||
|
|
|
@ -43,6 +43,10 @@ class ChildTaskModel (application: Application): AndroidViewModel(application) {
|
|||
}
|
||||
}
|
||||
|
||||
val isChildTheCurrentDeviceUser = logic.deviceUserId.switchMap { deviceUserId ->
|
||||
childIdLive.map { selectedId -> deviceUserId == selectedId }
|
||||
}
|
||||
|
||||
fun init(childId: String) {
|
||||
if (didInit) return
|
||||
|
||||
|
|
|
@ -32,11 +32,13 @@ class ConfirmTaskDialogFragment: DialogFragment() {
|
|||
private const val DIALOG_TAG = "ConfirmTaskDialogFragment"
|
||||
private const val TASK_TITLE = "taskTitle"
|
||||
private const val TASK_ID = "taskId"
|
||||
private const val FROM_MANAGE_SCREEN = "fromManageScreen"
|
||||
|
||||
fun newInstance(taskId: String, taskTitle: String) = ConfirmTaskDialogFragment().apply {
|
||||
fun newInstance(taskId: String, taskTitle: String, fromManageScreen: Boolean) = ConfirmTaskDialogFragment().apply {
|
||||
arguments = Bundle().apply {
|
||||
putString(TASK_ID, taskId)
|
||||
putString(TASK_TITLE, taskTitle)
|
||||
putBoolean(FROM_MANAGE_SCREEN, fromManageScreen)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -44,11 +46,15 @@ class ConfirmTaskDialogFragment: DialogFragment() {
|
|||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
val taskId = requireArguments().getString(TASK_ID)!!
|
||||
val taskTitle = requireArguments().getString(TASK_TITLE)!!
|
||||
val fromManageScreen = requireArguments().getBoolean(FROM_MANAGE_SCREEN)
|
||||
val logic = getActivityViewModel(requireActivity()).logic
|
||||
|
||||
val messagePrefix = if (fromManageScreen) getString(R.string.lock_task_confirm_dialog_from_manage_screen) + " " else ""
|
||||
val message = messagePrefix + getString(R.string.lock_task_confirm_dialog)
|
||||
|
||||
return AlertDialog.Builder(requireContext(), theme)
|
||||
.setTitle(taskTitle)
|
||||
.setMessage(R.string.lock_task_confirm_dialog)
|
||||
.setMessage(message)
|
||||
.setNegativeButton(R.string.generic_no, null)
|
||||
.setPositiveButton(R.string.generic_yes) { _, _ ->
|
||||
runAsync {
|
||||
|
|
|
@ -66,6 +66,7 @@ class ManageChildTasksFragment: Fragment(), EditTaskDialogFragment.Listener {
|
|||
recycler.adapter = adapter
|
||||
|
||||
model.listContent.observe(viewLifecycleOwner) { adapter.data = it }
|
||||
model.isChildTheCurrentDeviceUser.observe(viewLifecycleOwner) {/* keep the value fresh */}
|
||||
|
||||
adapter.listener = object: ChildTaskAdapter.Listener {
|
||||
override fun onAddClicked() {
|
||||
|
@ -75,9 +76,15 @@ class ManageChildTasksFragment: Fragment(), EditTaskDialogFragment.Listener {
|
|||
}
|
||||
|
||||
override fun onTaskClicked(task: ChildTask) {
|
||||
if (auth.requestAuthenticationOrReturnTrue()) {
|
||||
if (auth.isParentAuthenticated()) {
|
||||
EditTaskDialogFragment.newInstance(childId = childId, taskId = task.taskId, listener = this@ManageChildTasksFragment).show(parentFragmentManager)
|
||||
}
|
||||
} else if (model.isChildTheCurrentDeviceUser.value == true && !task.pendingRequest) {
|
||||
ConfirmTaskDialogFragment.newInstance(
|
||||
taskId = task.taskId,
|
||||
taskTitle = task.taskTitle,
|
||||
fromManageScreen = true
|
||||
).show(parentFragmentManager)
|
||||
} else auth.requestAuthentication()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -628,6 +628,7 @@
|
|||
</string>
|
||||
<string name="lock_task_confirm_dialog">Hast Du diese Aufgabe erledigt? Die Zeit gibt es
|
||||
sowieso erst, wenn ein Elternteil das bestätigt hat.</string>
|
||||
<string name="lock_task_confirm_dialog_from_manage_screen">Zum Verändern der Aufgabe muss sich erst ein Elternteil anmelden.</string>
|
||||
<string name="lock_task_review_pending_dialog">Die Erledigung der Aufgabe wurde markiert.
|
||||
Jetzt muss nur noch ein Elternteil das auf der Startseite von TimeLimit besätigen.
|
||||
</string>
|
||||
|
|
|
@ -684,6 +684,7 @@
|
|||
</string>
|
||||
<string name="lock_task_confirm_dialog">Have you finished this task? The time
|
||||
will only be granted if a parent confirms it.</string>
|
||||
<string name="lock_task_confirm_dialog_from_manage_screen">A parent must sign in first to modify the task.</string>
|
||||
<string name="lock_task_review_pending_dialog">It is noted that this task is finished.
|
||||
The only missing part is a parent which confirms this at the start screen of TimeLimit.
|
||||
</string>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue