Remove TimerControlSetCallback

pull/2533/head
Alex Baker 1 year ago
parent f8d3985e97
commit 4c61353411

@ -18,7 +18,6 @@ import com.todoroo.astrid.api.Filter
import com.todoroo.astrid.dao.TaskDao import com.todoroo.astrid.dao.TaskDao
import com.todoroo.astrid.data.Task import com.todoroo.astrid.data.Task
import com.todoroo.astrid.service.TaskCreator import com.todoroo.astrid.service.TaskCreator
import com.todoroo.astrid.timers.TimerControlSet.TimerControlSetCallback
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async import kotlinx.coroutines.async
@ -58,7 +57,7 @@ import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
class MainActivity : AppCompatActivity(), TaskListFragmentCallbackHandler, TimerControlSetCallback { class MainActivity : AppCompatActivity(), TaskListFragmentCallbackHandler {
@Inject lateinit var preferences: Preferences @Inject lateinit var preferences: Preferences
@Inject lateinit var defaultFilterProvider: DefaultFilterProvider @Inject lateinit var defaultFilterProvider: DefaultFilterProvider
@Inject lateinit var theme: Theme @Inject lateinit var theme: Theme
@ -383,14 +382,6 @@ class MainActivity : AppCompatActivity(), TaskListFragmentCallbackHandler, Timer
private val taskEditFragment: TaskEditFragment? private val taskEditFragment: TaskEditFragment?
get() = supportFragmentManager.findFragmentByTag(TaskEditFragment.TAG_TASKEDIT_FRAGMENT) as 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 private val isSinglePaneLayout: Boolean
get() = !resources.getBoolean(R.bool.two_pane_layout) get() = !resources.getBoolean(R.bool.two_pane_layout)

@ -10,7 +10,6 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Paint import android.graphics.Paint
import android.os.Bundle import android.os.Bundle
import android.text.format.DateUtils
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
@ -51,7 +50,6 @@ import com.todoroo.astrid.files.FilesControlSet
import com.todoroo.astrid.repeats.RepeatControlSet import com.todoroo.astrid.repeats.RepeatControlSet
import com.todoroo.astrid.tags.TagsControlSet import com.todoroo.astrid.tags.TagsControlSet
import com.todoroo.astrid.timers.TimerControlSet import com.todoroo.astrid.timers.TimerControlSet
import com.todoroo.astrid.timers.TimerPlugin
import com.todoroo.astrid.ui.ReminderControlSet import com.todoroo.astrid.ui.ReminderControlSet
import com.todoroo.astrid.ui.StartDateControlSet import com.todoroo.astrid.ui.StartDateControlSet
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@ -126,7 +124,6 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
@Inject lateinit var taskEditControlSetFragmentManager: TaskEditControlSetFragmentManager @Inject lateinit var taskEditControlSetFragmentManager: TaskEditControlSetFragmentManager
@Inject lateinit var preferences: Preferences @Inject lateinit var preferences: Preferences
@Inject lateinit var firebase: Firebase @Inject lateinit var firebase: Firebase
@Inject lateinit var timerPlugin: TimerPlugin
@Inject lateinit var linkify: Linkify @Inject lateinit var linkify: Linkify
@Inject lateinit var markdownProvider: MarkdownProvider @Inject lateinit var markdownProvider: MarkdownProvider
@Inject lateinit var taskEditEventBus: TaskEditEventBus @Inject lateinit var taskEditEventBus: TaskEditEventBus
@ -371,31 +368,6 @@ class TaskEditFragment : Fragment(), Toolbar.OnMenuItemClickListener {
return false 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) { suspend fun save(remove: Boolean = true) {
editViewModel.save(remove) editViewModel.save(remove)
activity?.let { playServices.requestReview(it) } activity?.let { playServices.requestReview(it) }

@ -7,12 +7,14 @@ package com.todoroo.astrid.timers
import android.app.Activity import android.app.Activity
import android.os.Bundle import android.os.Bundle
import android.text.format.DateUtils
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.compose.ui.platform.ComposeView import androidx.compose.ui.platform.ComposeView
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.google.android.material.composethemeadapter.MdcTheme import com.google.android.material.composethemeadapter.MdcTheme
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.data.Task import com.todoroo.astrid.data.Task
import com.todoroo.astrid.ui.TimeDurationControlSet import com.todoroo.astrid.ui.TimeDurationControlSet
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@ -20,6 +22,7 @@ import kotlinx.coroutines.launch
import org.tasks.R import org.tasks.R
import org.tasks.compose.collectAsStateLifecycleAware import org.tasks.compose.collectAsStateLifecycleAware
import org.tasks.compose.edit.TimerRow import org.tasks.compose.edit.TimerRow
import org.tasks.date.DateTimeUtils
import org.tasks.dialogs.DialogBuilder import org.tasks.dialogs.DialogBuilder
import org.tasks.themes.Theme import org.tasks.themes.Theme
import org.tasks.ui.TaskEditControlFragment import org.tasks.ui.TaskEditControlFragment
@ -35,12 +38,12 @@ class TimerControlSet : TaskEditControlFragment() {
@Inject lateinit var activity: Activity @Inject lateinit var activity: Activity
@Inject lateinit var dialogBuilder: DialogBuilder @Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var theme: Theme @Inject lateinit var theme: Theme
@Inject lateinit var timerPlugin: TimerPlugin
private lateinit var estimated: TimeDurationControlSet private lateinit var estimated: TimeDurationControlSet
private lateinit var elapsed: TimeDurationControlSet private lateinit var elapsed: TimeDurationControlSet
private var dialog: AlertDialog? = null private var dialog: AlertDialog? = null
private lateinit var dialogView: View private lateinit var dialogView: View
private lateinit var callback: TimerControlSetCallback
override fun createView(savedInstanceState: Bundle?) { override fun createView(savedInstanceState: Bundle?) {
dialogView = activity.layoutInflater.inflate(R.layout.control_set_timers_dialog, null) dialogView = activity.layoutInflater.inflate(R.layout.control_set_timers_dialog, null)
@ -50,11 +53,6 @@ class TimerControlSet : TaskEditControlFragment() {
elapsed.setTimeDuration(viewModel.elapsedSeconds.value) elapsed.setTimeDuration(viewModel.elapsedSeconds.value)
} }
override fun onAttach(activity: Activity) {
super.onAttach(activity)
callback = activity as TimerControlSetCallback
}
private fun onRowClick() { private fun onRowClick() {
if (dialog == null) { if (dialog == null) {
dialog = buildDialog() dialog = buildDialog()
@ -77,12 +75,12 @@ class TimerControlSet : TaskEditControlFragment() {
private fun timerClicked() { private fun timerClicked() {
lifecycleScope.launch { lifecycleScope.launch {
if (timerActive()) { if (timerActive()) {
val task = callback.stopTimer() val task = stopTimer()
viewModel.elapsedSeconds.value = task.elapsedSeconds viewModel.elapsedSeconds.value = task.elapsedSeconds
elapsed.setTimeDuration(task.elapsedSeconds) elapsed.setTimeDuration(task.elapsedSeconds)
viewModel.timerStarted.value = 0 viewModel.timerStarted.value = 0
} else { } else {
val task = callback.startTimer() val task = startTimer()
viewModel.timerStarted.value = task.timerStart viewModel.timerStarted.value = task.timerStart
} }
} }
@ -107,9 +105,29 @@ class TimerControlSet : TaskEditControlFragment() {
private fun timerActive() = viewModel.timerStarted.value > 0 private fun timerActive() = viewModel.timerStarted.value > 0
interface TimerControlSetCallback { private suspend fun stopTimer(): Task {
suspend fun stopTimer(): Task val model = viewModel.task
suspend fun startTimer(): 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 { companion object {

Loading…
Cancel
Save