From 4c61353411bf155ff34775867244674068abec7c Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 25 Sep 2023 23:47:31 -0500 Subject: [PATCH] Remove TimerControlSetCallback --- .../todoroo/astrid/activity/MainActivity.kt | 11 +---- .../astrid/activity/TaskEditFragment.kt | 28 ------------- .../todoroo/astrid/timers/TimerControlSet.kt | 40 ++++++++++++++----- 3 files changed, 30 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt index e66e7d414..8f8d08dac 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/MainActivity.kt @@ -18,7 +18,6 @@ import com.todoroo.astrid.api.Filter import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.data.Task import com.todoroo.astrid.service.TaskCreator -import com.todoroo.astrid.timers.TimerControlSet.TimerControlSetCallback import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async @@ -58,7 +57,7 @@ import timber.log.Timber import javax.inject.Inject @AndroidEntryPoint -class MainActivity : AppCompatActivity(), TaskListFragmentCallbackHandler, TimerControlSetCallback { +class MainActivity : AppCompatActivity(), TaskListFragmentCallbackHandler { @Inject lateinit var preferences: Preferences @Inject lateinit var defaultFilterProvider: DefaultFilterProvider @Inject lateinit var theme: Theme @@ -383,14 +382,6 @@ class MainActivity : AppCompatActivity(), TaskListFragmentCallbackHandler, Timer private val taskEditFragment: TaskEditFragment? get() = supportFragmentManager.findFragmentByTag(TaskEditFragment.TAG_TASKEDIT_FRAGMENT) as TaskEditFragment? - override suspend fun stopTimer(): Task { - return taskEditFragment!!.stopTimer() - } - - override suspend fun startTimer(): Task { - return taskEditFragment!!.startTimer() - } - private val isSinglePaneLayout: Boolean get() = !resources.getBoolean(R.bool.two_pane_layout) diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt index c8dbf778d..1a4951bed 100755 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskEditFragment.kt @@ -10,7 +10,6 @@ import android.content.Context import android.content.Intent import android.graphics.Paint import android.os.Bundle -import android.text.format.DateUtils import android.view.LayoutInflater import android.view.MenuItem import android.view.View @@ -51,7 +50,6 @@ import com.todoroo.astrid.files.FilesControlSet import com.todoroo.astrid.repeats.RepeatControlSet import com.todoroo.astrid.tags.TagsControlSet import com.todoroo.astrid.timers.TimerControlSet -import com.todoroo.astrid.timers.TimerPlugin import com.todoroo.astrid.ui.ReminderControlSet import com.todoroo.astrid.ui.StartDateControlSet import dagger.hilt.android.AndroidEntryPoint @@ -126,7 +124,6 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener { @Inject lateinit var taskEditControlSetFragmentManager: TaskEditControlSetFragmentManager @Inject lateinit var preferences: Preferences @Inject lateinit var firebase: Firebase - @Inject lateinit var timerPlugin: TimerPlugin @Inject lateinit var linkify: Linkify @Inject lateinit var markdownProvider: MarkdownProvider @Inject lateinit var taskEditEventBus: TaskEditEventBus @@ -371,31 +368,6 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener { return false } - suspend fun stopTimer(): Task { - val model = editViewModel.task - timerPlugin.stopTimer(model) - val elapsedTime = DateUtils.formatElapsedTime(model.elapsedSeconds.toLong()) - editViewModel.addComment(String.format( - "%s %s\n%s %s", // $NON-NLS-1$ - getString(R.string.TEA_timer_comment_stopped), - DateUtilities.getTimeString(context, newDateTime()), - getString(R.string.TEA_timer_comment_spent), - elapsedTime), - null) - return model - } - - suspend fun startTimer(): Task { - val model = editViewModel.task - timerPlugin.startTimer(model) - editViewModel.addComment(String.format( - "%s %s", - getString(R.string.TEA_timer_comment_started), - DateUtilities.getTimeString(context, newDateTime())), - null) - return model - } - suspend fun save(remove: Boolean = true) { editViewModel.save(remove) activity?.let { playServices.requestReview(it) } diff --git a/app/src/main/java/com/todoroo/astrid/timers/TimerControlSet.kt b/app/src/main/java/com/todoroo/astrid/timers/TimerControlSet.kt index e670f6800..afa504442 100644 --- a/app/src/main/java/com/todoroo/astrid/timers/TimerControlSet.kt +++ b/app/src/main/java/com/todoroo/astrid/timers/TimerControlSet.kt @@ -7,12 +7,14 @@ package com.todoroo.astrid.timers import android.app.Activity import android.os.Bundle +import android.text.format.DateUtils import android.view.View import android.view.ViewGroup import androidx.appcompat.app.AlertDialog import androidx.compose.ui.platform.ComposeView import androidx.lifecycle.lifecycleScope import com.google.android.material.composethemeadapter.MdcTheme +import com.todoroo.andlib.utility.DateUtilities import com.todoroo.astrid.data.Task import com.todoroo.astrid.ui.TimeDurationControlSet import dagger.hilt.android.AndroidEntryPoint @@ -20,6 +22,7 @@ import kotlinx.coroutines.launch import org.tasks.R import org.tasks.compose.collectAsStateLifecycleAware import org.tasks.compose.edit.TimerRow +import org.tasks.date.DateTimeUtils import org.tasks.dialogs.DialogBuilder import org.tasks.themes.Theme import org.tasks.ui.TaskEditControlFragment @@ -35,12 +38,12 @@ class TimerControlSet : TaskEditControlFragment() { @Inject lateinit var activity: Activity @Inject lateinit var dialogBuilder: DialogBuilder @Inject lateinit var theme: Theme + @Inject lateinit var timerPlugin: TimerPlugin private lateinit var estimated: TimeDurationControlSet private lateinit var elapsed: TimeDurationControlSet private var dialog: AlertDialog? = null private lateinit var dialogView: View - private lateinit var callback: TimerControlSetCallback override fun createView(savedInstanceState: Bundle?) { dialogView = activity.layoutInflater.inflate(R.layout.control_set_timers_dialog, null) @@ -50,11 +53,6 @@ class TimerControlSet : TaskEditControlFragment() { elapsed.setTimeDuration(viewModel.elapsedSeconds.value) } - override fun onAttach(activity: Activity) { - super.onAttach(activity) - callback = activity as TimerControlSetCallback - } - private fun onRowClick() { if (dialog == null) { dialog = buildDialog() @@ -77,12 +75,12 @@ class TimerControlSet : TaskEditControlFragment() { private fun timerClicked() { lifecycleScope.launch { if (timerActive()) { - val task = callback.stopTimer() + val task = stopTimer() viewModel.elapsedSeconds.value = task.elapsedSeconds elapsed.setTimeDuration(task.elapsedSeconds) viewModel.timerStarted.value = 0 } else { - val task = callback.startTimer() + val task = startTimer() viewModel.timerStarted.value = task.timerStart } } @@ -107,9 +105,29 @@ class TimerControlSet : TaskEditControlFragment() { private fun timerActive() = viewModel.timerStarted.value > 0 - interface TimerControlSetCallback { - suspend fun stopTimer(): Task - suspend fun startTimer(): Task + private suspend fun stopTimer(): Task { + val model = viewModel.task + timerPlugin.stopTimer(model) + val elapsedTime = DateUtils.formatElapsedTime(model.elapsedSeconds.toLong()) + viewModel.addComment(String.format( + "%s %s\n%s %s", // $NON-NLS-1$ + getString(R.string.TEA_timer_comment_stopped), + DateUtilities.getTimeString(context, DateTimeUtils.newDateTime()), + getString(R.string.TEA_timer_comment_spent), + elapsedTime), + null) + return model + } + + private suspend fun startTimer(): Task { + val model = viewModel.task + timerPlugin.startTimer(model) + viewModel.addComment(String.format( + "%s %s", + getString(R.string.TEA_timer_comment_started), + DateUtilities.getTimeString(context, DateTimeUtils.newDateTime())), + null) + return model } companion object {