Skip to content

Commit

Permalink
Merge pull request #296 from naz013/feature/REM-932_test_and_fix_all_…
Browse files Browse the repository at this point in the history
…functionality

REM-932 - Test and fix all functionality
  • Loading branch information
naz013 authored Jan 24, 2025
2 parents 14a01be + a94e12a commit 6ce322b
Show file tree
Hide file tree
Showing 31 changed files with 221 additions and 100 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import com.elementary.tasks.navigation.toolbarfragment.BaseToolbarFragment
import com.github.naz013.common.Permissions
import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.view.visibleInvisible
import org.koin.android.ext.android.inject
Expand Down Expand Up @@ -163,8 +164,8 @@ class EditBirthdayFragment : BaseToolbarFragment<FragmentEditBirthdayBinding>()

private fun initViewModel() {
lifecycle.addObserver(viewModel)
viewModel.birthday.nonNullObserve(this) { showBirthday(it) }
viewModel.result.nonNullObserve(this) {
viewModel.birthday.nonNullObserve(viewLifecycleOwner) { showBirthday(it) }
viewModel.resultEvent.observeEvent(viewLifecycleOwner) {
when (it) {
Commands.SAVED -> moveBack()
Commands.DELETED -> {
Expand All @@ -183,10 +184,10 @@ class EditBirthdayFragment : BaseToolbarFragment<FragmentEditBirthdayBinding>()
}
}
}
viewModel.formattedDate.nonNullObserve(this) {
viewModel.formattedDate.nonNullObserve(viewLifecycleOwner) {
binding.birthDate.text = it
}
viewModel.isContactAttached.nonNullObserve(this) {
viewModel.isContactAttached.nonNullObserve(viewLifecycleOwner) {
binding.pickContactView.visibleInvisible(it)
}
viewModel.load()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import com.elementary.tasks.tests.TestObjects
import com.github.naz013.common.Permissions
import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.activity.BindingActivity
import com.github.naz013.ui.common.activity.toast
Expand Down Expand Up @@ -59,7 +60,7 @@ class ShowBirthday29Activity : BindingActivity<ActivityDialogBirthdayBinding>()

private fun initViewModel() {
viewModel.birthday.nonNullObserve(this) { showBirthday(it) }
viewModel.result.nonNullObserve(this) { commands ->
viewModel.resultEvent.observeEvent(this) { commands ->
when (commands) {
Commands.SAVED -> finish()
else -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import com.elementary.tasks.navigation.toolbarfragment.BaseToolbarFragment
import com.github.naz013.common.Permissions
import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.view.gone
import com.github.naz013.ui.common.view.visible
Expand Down Expand Up @@ -175,8 +176,8 @@ class PreviewBirthdayFragment : BaseToolbarFragment<FragmentBirthdayPreviewBindi

private fun initViewModel() {
lifecycle.addObserver(viewModel)
viewModel.birthday.nonNullObserve(this) { showBirthday(it) }
viewModel.result.nonNullObserve(this) {
viewModel.birthday.nonNullObserve(viewLifecycleOwner) { showBirthday(it) }
viewModel.resultEvent.observeEvent(viewLifecycleOwner) {
when (it) {
Commands.DELETED -> moveBack()
else -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,38 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.elementary.tasks.core.data.Commands
import com.github.naz013.feature.common.coroutine.DispatcherProvider
import com.github.naz013.feature.common.livedata.Event
import com.github.naz013.feature.common.livedata.toLiveData
import com.github.naz013.feature.common.livedata.toSingleEvent
import com.github.naz013.feature.common.viewmodel.mutableLiveDataOf
import com.github.naz013.logging.Logger
import kotlinx.coroutines.launch

open class BaseProgressViewModel(
protected val dispatcherProvider: DispatcherProvider
) : ViewModel(), DefaultLifecycleObserver {

private val _result = mutableLiveDataOf<Commands>()
val result = _result.toLiveData()
private val _resultEvent = mutableLiveDataOf<Event<Commands>>()
val resultEvent = _resultEvent.toLiveData()

private val _isInProgress = mutableLiveDataOf<Boolean>()
val isInProgress = _isInProgress.toLiveData()

private val _error = mutableLiveDataOf<String>()
val error = _error.toSingleEvent()
private val _errorEvent = mutableLiveDataOf<Event<String>>()
val errorEvent = _errorEvent.toLiveData()

protected fun postInProgress(isInProgress: Boolean) {
Logger.d(TAG, "Post in progress: $isInProgress")
_isInProgress.postValue(isInProgress)
}

protected fun postCommand(commands: Commands) {
_result.postValue(commands)
Logger.d(TAG, "Post command: $commands")
_resultEvent.postValue(Event(commands))
}

protected fun postError(error: String) {
_error.postValue(error)
Logger.e(TAG, "Post error: $error")
_errorEvent.postValue(Event(error))
}

protected fun withProgressSuspend(doWork: suspend ((error: String) -> Unit) -> Unit) {
Expand All @@ -51,4 +55,8 @@ open class BaseProgressViewModel(
postCommand(commands)
}
}

companion object {
private const val TAG = "BaseProgressViewModel"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import com.elementary.tasks.navigation.toolbarfragment.BaseToolbarFragment
import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.domain.GoogleTaskList
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.ui.common.fragment.dp2px
import com.github.naz013.ui.common.isColorDark
import com.github.naz013.ui.common.theme.ThemeProvider
Expand Down Expand Up @@ -127,7 +128,7 @@ class TaskListFragment : BaseToolbarFragment<FragmentGoogleListBinding>() {

private fun initViewModel() {
viewModel.isInProgress.nonNullObserve(viewLifecycleOwner) { updateProgress(it) }
viewModel.result.nonNullObserve(viewLifecycleOwner) { showResult(it) }
viewModel.resultEvent.observeEvent(viewLifecycleOwner) { showResult(it) }
viewModel.tasks.nonNullObserve(viewLifecycleOwner) { showTasks(it) }
viewModel.taskList.nonNullObserve(viewLifecycleOwner) { showGoogleTaskList(it) }
lifecycle.addObserver(viewModel)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import com.elementary.tasks.databinding.FragmentGoogleTaskPreviewBinding
import com.elementary.tasks.navigation.toolbarfragment.BaseToolbarFragment
import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.view.visibleGone
import com.github.naz013.ui.common.view.visibleInvisible
Expand Down Expand Up @@ -107,15 +108,15 @@ class PreviewGoogleTaskFragment : BaseToolbarFragment<FragmentGoogleTaskPreviewB

private fun initViewModel() {
lifecycle.addObserver(viewModel)
viewModel.googleTask.nonNullObserve(this) { showGoogleTask(it) }
viewModel.result.nonNullObserve(this) {
viewModel.googleTask.nonNullObserve(viewLifecycleOwner) { showGoogleTask(it) }
viewModel.resultEvent.observeEvent(viewLifecycleOwner) {
when (it) {
Commands.DELETED -> moveBack()
else -> {
}
}
}
viewModel.isInProgress.nonNullObserve(this) {
viewModel.isInProgress.nonNullObserve(viewLifecycleOwner) {
binding.progressBar.visibleInvisible(it)
binding.buttonComplete.isEnabled = !it
invalidateOptionsMenu()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import com.github.naz013.domain.GoogleTask
import com.github.naz013.domain.GoogleTaskList
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.nullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.fragment.hideKeyboard
import com.github.naz013.ui.common.fragment.toast
Expand Down Expand Up @@ -102,7 +103,7 @@ class EditGoogleTaskFragment : BaseToolbarFragment<FragmentGoogleTaskEditBinding

private fun initViewModel() {
viewModel.isInProgress.nonNullObserve(viewLifecycleOwner) { onProgressChanged(it) }
viewModel.result.nonNullObserve(viewLifecycleOwner) { commands ->
viewModel.resultEvent.observeEvent(viewLifecycleOwner) { commands ->
when (commands) {
Commands.SAVED, Commands.DELETED -> moveBack()
else -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import com.elementary.tasks.navigation.toolbarfragment.BaseToolbarFragment
import com.github.naz013.appwidgets.AppWidgetUpdater
import com.github.naz013.domain.GoogleTaskList
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.fragment.hideKeyboard
import com.github.naz013.ui.common.fragment.toast
Expand Down Expand Up @@ -103,9 +104,9 @@ class EditGoogleTaskListFragment : BaseToolbarFragment<FragmentGoogleTaskListEdi
}

private fun initViewModel() {
viewModel.googleTaskList.nonNullObserve(this) { showTaskList(it) }
viewModel.isInProgress.nonNullObserve(this) { onProgressChanged(it) }
viewModel.result.nonNullObserve(this) { commands ->
viewModel.googleTaskList.nonNullObserve(viewLifecycleOwner) { showTaskList(it) }
viewModel.isInProgress.nonNullObserve(viewLifecycleOwner) { onProgressChanged(it) }
viewModel.resultEvent.observeEvent(viewLifecycleOwner) { commands ->
if (commands == Commands.DELETED || commands == Commands.SAVED) {
moveBack()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import com.elementary.tasks.databinding.FragmentEditGroupBinding
import com.elementary.tasks.navigation.toolbarfragment.BaseToolbarFragment
import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.theme.ThemeProvider
import org.koin.androidx.viewmodel.ext.android.viewModel
Expand Down Expand Up @@ -95,8 +96,8 @@ class EditGroupFragment : BaseToolbarFragment<FragmentEditGroupBinding>() {
}

private fun initViewModel() {
viewModel.reminderGroup.nonNullObserve(this) { showGroup(it) }
viewModel.result.nonNullObserve(this) {
viewModel.reminderGroup.nonNullObserve(viewLifecycleOwner) { showGroup(it) }
viewModel.resultEvent.observeEvent(viewLifecycleOwner) {
when (it) {
Commands.SAVED, Commands.DELETED -> moveBack()
else -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.common.uri.UriUtil
import com.github.naz013.domain.font.FontParams
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.Dialogues
import com.github.naz013.ui.common.activity.BindingActivity
Expand Down Expand Up @@ -498,7 +499,7 @@ class CreateNoteActivity :
updateMenu()
}
viewModel.note.nonNullObserve(this) { showNote(it) }
viewModel.result.nonNullObserve(this) { commands ->
viewModel.resultEvent.observeEvent(this) { commands ->
Logger.d("initViewModel: $commands")
when (commands) {
Commands.DELETED, Commands.SAVED -> {
Expand All @@ -512,7 +513,7 @@ class CreateNoteActivity :
}
}
viewModel.noteToShare.nonNullObserve(this) { sendNote(it.second, it.first) }
viewModel.error.nonNullObserve(this) { toast(it) }
viewModel.errorEvent.observeEvent(this) { toast(it) }
viewModel.parsedText.nonNullObserve(this) { setText(it) }
lifecycle.addObserver(viewModel)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ class NoteViewHolder(
parent: ViewGroup,
private val common: UiNoteListAdapterCommon = UiNoteListAdapterCommon(),
private val listener: ((View, Int, ListActions) -> Unit)?,
private val imageClickListener: ((View, position: Int, imageId: Int) -> Unit)?
private val imageClickListener: ((View, position: Int, imageId: Int) -> Unit)?,
allowMore: Boolean = true
) : HolderBinding<ListItemNoteBinding>(
ListItemNoteBinding.inflate(parent.inflater(), parent, false)
) {
Expand All @@ -34,6 +35,7 @@ class NoteViewHolder(
binding.buttonMore.setOnClickListener {
listener?.invoke(it, bindingAdapterPosition, ListActions.MORE)
}
hasMore = allowMore
updateMore()
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.domain.note.NoteWithImages
import com.github.naz013.feature.common.android.SystemServiceProvider
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.Dialogues
import com.github.naz013.ui.common.context.startActivity
Expand Down Expand Up @@ -163,7 +164,7 @@ class NotesFragment : BaseTopToolbarFragment<FragmentNotesBinding>() {
hideProgress()
}
}
viewModel.error.nonNullObserve(viewLifecycleOwner) { showErrorSending() }
viewModel.errorEvent.observeEvent(viewLifecycleOwner) { showErrorSending() }
}

private fun sendNote(note: NoteWithImages, file: File) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.domain.note.NoteWithImages
import com.github.naz013.feature.common.android.SystemServiceProvider
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.Dialogues
import com.github.naz013.ui.common.fragment.dp2px
Expand Down Expand Up @@ -157,7 +158,7 @@ class ArchivedNotesFragment : BaseToolbarFragment<FragmentNotesBinding>() {
hideProgress()
}
}
viewModel.error.nonNullObserve(viewLifecycleOwner) { showErrorSending() }
viewModel.errorEvent.observeEvent(viewLifecycleOwner) { showErrorSending() }
}

private fun sendNote(note: NoteWithImages, file: File) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import com.github.naz013.common.Permissions
import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.domain.note.NoteWithImages
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.fragment.colorOf
import com.github.naz013.ui.common.fragment.startActivity
Expand Down Expand Up @@ -121,17 +122,18 @@ class PreviewNoteFragment : BaseNonToolbarFragment<FragmentNotePreviewBinding>()

private fun initViewModel() {
lifecycle.addObserver(viewModel)
viewModel.note.nonNullObserve(this) { showNote(it) }
viewModel.reminders.nonNullObserve(this) { showReminders(it) }
viewModel.result.nonNullObserve(this) { commands ->
viewModel.note.nonNullObserve(viewLifecycleOwner) { showNote(it) }
viewModel.reminders.nonNullObserve(viewLifecycleOwner) { showReminders(it) }
viewModel.resultEvent.observeEvent(viewLifecycleOwner) { commands ->
Logger.d(TAG, "Received command: $commands")
when (commands) {
Commands.DELETED -> moveBack()
else -> {
}
}
}
viewModel.error.nonNullObserve(this) { showErrorSending() }
viewModel.sharedFile.nonNullObserve(this) { sendNote(it.first, it.second) }
viewModel.errorEvent.observeEvent(viewLifecycleOwner) { showErrorSending() }
viewModel.sharedFile.nonNullObserve(viewLifecycleOwner) { sendNote(it.first, it.second) }
}

private fun initReminderCard() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import com.elementary.tasks.navigation.toolbarfragment.BaseToolbarFragment
import com.elementary.tasks.simplemap.SimpleMapFragment
import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.logging.Logger
import com.github.naz013.ui.common.fragment.toast
import com.google.android.gms.maps.model.LatLng
Expand Down Expand Up @@ -123,8 +124,8 @@ class EditPlaceFragment : BaseToolbarFragment<FragmentEditPlaceBinding>() {

private fun initViewModel() {
lifecycle.addObserver(viewModel)
viewModel.place.nonNullObserve(this) { showPlace(it) }
viewModel.result.nonNullObserve(this) {
viewModel.place.nonNullObserve(viewLifecycleOwner) { showPlace(it) }
viewModel.resultEvent.observeEvent(viewLifecycleOwner) {
when (it) {
Commands.SAVED, Commands.DELETED -> moveBack()
else -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import com.elementary.tasks.navigation.fragments.BaseSettingsFragment
import com.github.naz013.common.intent.IntentKeys
import com.github.naz013.feature.common.android.SystemServiceProvider
import com.github.naz013.feature.common.livedata.nonNullObserve
import com.github.naz013.feature.common.livedata.observeEvent
import com.github.naz013.ui.common.Dialogues
import com.github.naz013.ui.common.fragment.toast
import com.github.naz013.ui.common.view.ViewUtils
Expand Down Expand Up @@ -81,7 +82,7 @@ class PlacesFragment : BaseSettingsFragment<FragmentPlacesBinding>() {
binding.recyclerView.smoothScrollToPosition(0)
refreshView(places.size)
}
viewModel.result.nonNullObserve(viewLifecycleOwner) {
viewModel.resultEvent.observeEvent(viewLifecycleOwner) {
when (it) {
Commands.DELETED -> {
toast(R.string.deleted)
Expand Down
8 changes: 5 additions & 3 deletions app/src/main/java/com/elementary/tasks/reminder/KoinModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@ import com.elementary.tasks.reminder.build.reminder.ICalDateTimeCalculator
import com.elementary.tasks.reminder.build.reminder.ReminderToBiDecomposer
import com.elementary.tasks.reminder.build.reminder.compose.ActionCalculator
import com.elementary.tasks.reminder.build.reminder.compose.DateTimeInjector
import com.elementary.tasks.reminder.build.reminder.compose.EditedReminderDataCleaner
import com.elementary.tasks.reminder.build.reminder.compose.ICalDateTimeInjector
import com.elementary.tasks.reminder.build.reminder.compose.ReminderCleaner
import com.elementary.tasks.reminder.build.reminder.compose.ReminderDateTimeCleaner
import com.elementary.tasks.reminder.build.reminder.compose.TypeCalculator
import com.elementary.tasks.reminder.build.reminder.decompose.ActionDecomposer
import com.elementary.tasks.reminder.build.reminder.decompose.ByDateDecomposer
Expand Down Expand Up @@ -213,7 +214,7 @@ val reminderModule = module {
factory { TypeCalculator(get()) }
factory { ActionCalculator() }

factory { BiToReminderAdapter(get(), get(), get(), get(), get()) }
factory { BiToReminderAdapter(get(), get(), get(), get(), get(), get()) }

factory { BuilderErrorFinder(get(), get(), get(), get(), get()) }
factory { BuilderErrorToTextAdapter(get(), get()) }
Expand All @@ -231,7 +232,8 @@ val reminderModule = module {

factory { DateTimeInjector(get(), get(), get()) }
factory { ICalDateTimeInjector(get(), get()) }
factory { ReminderCleaner() }
factory { ReminderDateTimeCleaner() }
factory { EditedReminderDataCleaner() }

factory { ReminderToBiDecomposer(get(), get(), get(), get(), get(), get(), get()) }

Expand Down
Loading

0 comments on commit 6ce322b

Please sign in to comment.