From 46077d74432d1f6ba0f283606e84705e18da861e Mon Sep 17 00:00:00 2001 From: razeeman Date: Sat, 25 Sep 2021 23:25:10 +0300 Subject: [PATCH] code review, notification navigation improvements --- .../navigation/NotificationResolverImpl.kt | 20 +++++++++---------- .../navigation/RouterImpl.kt | 4 ++-- .../core/sharedViewModel/BackupViewModel.kt | 8 +++----- .../sharedViewModel/RemoveRecordViewModel.kt | 2 +- .../stripped.dir/layout/archive_fragment.xml | 7 ------- .../viewModel/ArchiveViewModel.kt | 13 +++--------- .../viewModel/ChangeCategoryViewModel.kt | 10 ++++------ .../viewModel/ChangeRecordViewModel.kt | 8 +++----- .../viewModel/ChangeRecordTagViewModel.kt | 8 +++----- .../viewModel/ChangeRecordTypeViewModel.kt | 8 +++----- .../viewModel/ChangeRunningRecordViewModel.kt | 8 +++----- .../view/RecordsContainerFragment.kt | 5 ++--- .../view/RecordsAllFragment.kt | 5 ++--- .../viewModel/SettingsViewModel.kt | 8 +++----- ...{Notification.kt => NotificationParams.kt} | 5 +---- .../navigation/NotificationResolver.kt | 2 +- .../simpletimetracker/navigation/Router.kt | 3 +-- .../navigation/params/ToastParams.kt | 5 ----- .../{ => notification}/SnackBarParams.kt | 6 ++++-- .../params/notification/ToastParams.kt | 7 +++++++ 20 files changed, 55 insertions(+), 87 deletions(-) delete mode 100644 feature_archive/build/intermediates/incremental/packageDebugResources/stripped.dir/layout/archive_fragment.xml rename navigation/src/main/java/com/example/util/simpletimetracker/navigation/{Notification.kt => NotificationParams.kt} (51%) delete mode 100644 navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ToastParams.kt rename navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/{ => notification}/SnackBarParams.kt (63%) create mode 100644 navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/notification/ToastParams.kt diff --git a/app/src/main/java/com/example/util/simpletimetracker/navigation/NotificationResolverImpl.kt b/app/src/main/java/com/example/util/simpletimetracker/navigation/NotificationResolverImpl.kt index a5e45fe7..99caf117 100644 --- a/app/src/main/java/com/example/util/simpletimetracker/navigation/NotificationResolverImpl.kt +++ b/app/src/main/java/com/example/util/simpletimetracker/navigation/NotificationResolverImpl.kt @@ -6,29 +6,27 @@ import android.graphics.Color import android.view.View import android.widget.TextView import android.widget.Toast -import com.example.util.simpletimetracker.navigation.params.SnackBarParams -import com.example.util.simpletimetracker.navigation.params.ToastParams +import com.example.util.simpletimetracker.navigation.params.notification.SnackBarParams +import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import com.google.android.material.snackbar.Snackbar import javax.inject.Inject class NotificationResolverImpl @Inject constructor() : NotificationResolver { - override fun show(activity: Activity?, notification: Notification, data: Any?, anchor: Any?) { - when (notification) { - Notification.TOAST -> showSystemMessage(activity, data) - Notification.SNACK_BAR -> showSnackBar(activity, data, anchor) + override fun show(activity: Activity?, data: NotificationParams, anchor: Any?) { + when (data) { + is ToastParams -> showSystemMessage(activity, data) + is SnackBarParams -> showSnackBar(activity, data, anchor) } } - private fun showSystemMessage(activity: Activity?, data: Any?) { - if (data !is ToastParams) return - + private fun showSystemMessage(activity: Activity?, data: ToastParams) { Toast.makeText(activity?.applicationContext, data.message, Toast.LENGTH_LONG).show() } @SuppressLint("WrongConstant") - private fun showSnackBar(activity: Activity?, data: Any?, anchor: Any?) { - if (data !is SnackBarParams || activity == null) return + private fun showSnackBar(activity: Activity?, data: SnackBarParams, anchor: Any?) { + if (activity == null) return val snackBar = Snackbar.make( activity.findViewById(android.R.id.content), diff --git a/app/src/main/java/com/example/util/simpletimetracker/navigation/RouterImpl.kt b/app/src/main/java/com/example/util/simpletimetracker/navigation/RouterImpl.kt index c10b788c..ccb209fb 100644 --- a/app/src/main/java/com/example/util/simpletimetracker/navigation/RouterImpl.kt +++ b/app/src/main/java/com/example/util/simpletimetracker/navigation/RouterImpl.kt @@ -40,8 +40,8 @@ class RouterImpl @Inject constructor( actionResolver.execute(activity, action, data) } - override fun show(notification: Notification, data: Any?, anchor: Any?) { - notificationResolver.show(activity, notification, data, anchor) + override fun show(data: NotificationParams, anchor: Any?) { + notificationResolver.show(activity, data, anchor) } override fun setResultListener(key: String, listener: ResultListener) { diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel/BackupViewModel.kt b/core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel/BackupViewModel.kt index ef57caab..28f16bb1 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel/BackupViewModel.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel/BackupViewModel.kt @@ -12,14 +12,13 @@ import com.example.util.simpletimetracker.domain.model.Range import com.example.util.simpletimetracker.domain.resolver.BackupRepo import com.example.util.simpletimetracker.domain.resolver.CsvRepo import com.example.util.simpletimetracker.navigation.Action -import com.example.util.simpletimetracker.navigation.Notification import com.example.util.simpletimetracker.navigation.RequestCode import com.example.util.simpletimetracker.navigation.Router import com.example.util.simpletimetracker.navigation.Screen import com.example.util.simpletimetracker.navigation.params.CsvExportSettingsParams import com.example.util.simpletimetracker.navigation.params.FileChooserParams import com.example.util.simpletimetracker.navigation.params.StandardDialogParams -import com.example.util.simpletimetracker.navigation.params.ToastParams +import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -140,9 +139,8 @@ class BackupViewModel @Inject constructor( } private fun showMessage(stringResId: Int) { - stringResId - .let(resourceRepo::getString) - .let { router.show(Notification.TOAST, ToastParams(it)) } + val params = ToastParams(message = resourceRepo.getString(stringResId)) + router.show(params) } private fun showProgress(isVisible: Boolean) { diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel/RemoveRecordViewModel.kt b/core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel/RemoveRecordViewModel.kt index f37547d4..5b077796 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel/RemoveRecordViewModel.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/sharedViewModel/RemoveRecordViewModel.kt @@ -10,7 +10,7 @@ import com.example.util.simpletimetracker.domain.interactor.RecordInteractor import com.example.util.simpletimetracker.domain.interactor.RecordTypeInteractor import com.example.util.simpletimetracker.domain.model.Record import com.example.util.simpletimetracker.navigation.params.ChangeRecordParams -import com.example.util.simpletimetracker.navigation.params.SnackBarParams +import com.example.util.simpletimetracker.navigation.params.notification.SnackBarParams import kotlinx.coroutines.launch import javax.inject.Inject diff --git a/feature_archive/build/intermediates/incremental/packageDebugResources/stripped.dir/layout/archive_fragment.xml b/feature_archive/build/intermediates/incremental/packageDebugResources/stripped.dir/layout/archive_fragment.xml deleted file mode 100644 index 8693725a..00000000 --- a/feature_archive/build/intermediates/incremental/packageDebugResources/stripped.dir/layout/archive_fragment.xml +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/features/feature_archive/src/main/java/com/example/util/simpletimetracker/feature_archive/viewModel/ArchiveViewModel.kt b/features/feature_archive/src/main/java/com/example/util/simpletimetracker/feature_archive/viewModel/ArchiveViewModel.kt index 2c917023..e49affef 100644 --- a/features/feature_archive/src/main/java/com/example/util/simpletimetracker/feature_archive/viewModel/ArchiveViewModel.kt +++ b/features/feature_archive/src/main/java/com/example/util/simpletimetracker/feature_archive/viewModel/ArchiveViewModel.kt @@ -17,12 +17,11 @@ import com.example.util.simpletimetracker.domain.interactor.RecordTypeInteractor import com.example.util.simpletimetracker.domain.interactor.RunningRecordInteractor import com.example.util.simpletimetracker.feature_archive.R import com.example.util.simpletimetracker.feature_archive.interactor.ArchiveViewDataInteractor -import com.example.util.simpletimetracker.navigation.Notification import com.example.util.simpletimetracker.navigation.Router import com.example.util.simpletimetracker.navigation.Screen import com.example.util.simpletimetracker.navigation.params.ArchiveDialogParams import com.example.util.simpletimetracker.navigation.params.StandardDialogParams -import com.example.util.simpletimetracker.navigation.params.ToastParams +import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -94,10 +93,7 @@ class ArchiveViewModel @Inject constructor( } updateViewData() - router.show( - notification = Notification.TOAST, - data = ToastParams(message) - ) + router.show(ToastParams(message)) } } @@ -128,10 +124,7 @@ class ArchiveViewModel @Inject constructor( } updateViewData() - router.show( - notification = Notification.TOAST, - data = ToastParams(message) - ) + router.show(ToastParams(message)) } } diff --git a/features/feature_change_category/src/main/java/com/example/util/simpletimetracker/feature_change_category/viewModel/ChangeCategoryViewModel.kt b/features/feature_change_category/src/main/java/com/example/util/simpletimetracker/feature_change_category/viewModel/ChangeCategoryViewModel.kt index f1b307ed..0b345ad0 100644 --- a/features/feature_change_category/src/main/java/com/example/util/simpletimetracker/feature_change_category/viewModel/ChangeCategoryViewModel.kt +++ b/features/feature_change_category/src/main/java/com/example/util/simpletimetracker/feature_change_category/viewModel/ChangeCategoryViewModel.kt @@ -20,10 +20,9 @@ import com.example.util.simpletimetracker.domain.interactor.RecordTypeCategoryIn import com.example.util.simpletimetracker.domain.model.Category import com.example.util.simpletimetracker.feature_change_category.R import com.example.util.simpletimetracker.feature_change_category.interactor.ChangeCategoryViewDataInteractor -import com.example.util.simpletimetracker.navigation.Notification import com.example.util.simpletimetracker.navigation.Router import com.example.util.simpletimetracker.navigation.params.ChangeCategoryParams -import com.example.util.simpletimetracker.navigation.params.ToastParams +import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -34,7 +33,7 @@ class ChangeCategoryViewModel @Inject constructor( private val recordTypeCategoryInteractor: RecordTypeCategoryInteractor, private val prefsInteractor: PrefsInteractor, private val categoryViewDataMapper: CategoryViewDataMapper, - private val resourceRepo: ResourceRepo + private val resourceRepo: ResourceRepo, ) : ViewModel() { lateinit var extra: ChangeCategoryParams @@ -232,8 +231,7 @@ class ChangeCategoryViewModel @Inject constructor( } private fun showMessage(stringResId: Int) { - stringResId - .let(resourceRepo::getString) - .let { router.show(Notification.TOAST, ToastParams(it)) } + val params = ToastParams(message = resourceRepo.getString(stringResId)) + router.show(params) } } diff --git a/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt b/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt index e42f06f4..8f83f8d0 100644 --- a/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt +++ b/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/viewModel/ChangeRecordViewModel.kt @@ -22,13 +22,12 @@ import com.example.util.simpletimetracker.domain.model.Record import com.example.util.simpletimetracker.feature_change_record.R import com.example.util.simpletimetracker.feature_change_record.interactor.ChangeRecordViewDataInteractor import com.example.util.simpletimetracker.feature_change_record.viewData.ChangeRecordViewData -import com.example.util.simpletimetracker.navigation.Notification import com.example.util.simpletimetracker.navigation.Router import com.example.util.simpletimetracker.navigation.Screen import com.example.util.simpletimetracker.navigation.params.ChangeRecordParams import com.example.util.simpletimetracker.navigation.params.DateTimeDialogParams import com.example.util.simpletimetracker.navigation.params.DateTimeDialogType -import com.example.util.simpletimetracker.navigation.params.ToastParams +import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -271,9 +270,8 @@ class ChangeRecordViewModel @Inject constructor( } private fun showMessage(stringResId: Int) { - stringResId - .let(resourceRepo::getString) - .let { router.show(Notification.TOAST, ToastParams(it)) } + val params = ToastParams(message = resourceRepo.getString(stringResId)) + router.show(params) } companion object { diff --git a/features/feature_change_record_tag/src/main/java/com/example/util/simpletimetracker/feature_change_record_tag/viewModel/ChangeRecordTagViewModel.kt b/features/feature_change_record_tag/src/main/java/com/example/util/simpletimetracker/feature_change_record_tag/viewModel/ChangeRecordTagViewModel.kt index 4df66753..a8686a4d 100644 --- a/features/feature_change_record_tag/src/main/java/com/example/util/simpletimetracker/feature_change_record_tag/viewModel/ChangeRecordTagViewModel.kt +++ b/features/feature_change_record_tag/src/main/java/com/example/util/simpletimetracker/feature_change_record_tag/viewModel/ChangeRecordTagViewModel.kt @@ -20,10 +20,9 @@ import com.example.util.simpletimetracker.domain.interactor.RecordTypeInteractor import com.example.util.simpletimetracker.domain.model.RecordTag import com.example.util.simpletimetracker.feature_change_record_tag.R import com.example.util.simpletimetracker.feature_change_record_tag.mapper.ChangeRecordTagMapper -import com.example.util.simpletimetracker.navigation.Notification import com.example.util.simpletimetracker.navigation.Router import com.example.util.simpletimetracker.navigation.params.ChangeCategoryParams -import com.example.util.simpletimetracker.navigation.params.ToastParams +import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -168,8 +167,7 @@ class ChangeRecordTagViewModel @Inject constructor( } private fun showMessage(stringResId: Int) { - stringResId - .let(resourceRepo::getString) - .let { router.show(Notification.TOAST, ToastParams(it)) } + val params = ToastParams(message = resourceRepo.getString(stringResId)) + router.show(params) } } diff --git a/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/viewModel/ChangeRecordTypeViewModel.kt b/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/viewModel/ChangeRecordTypeViewModel.kt index dd0f4c65..ba68b0bf 100644 --- a/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/viewModel/ChangeRecordTypeViewModel.kt +++ b/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/viewModel/ChangeRecordTypeViewModel.kt @@ -37,12 +37,11 @@ import com.example.util.simpletimetracker.feature_change_record_type.viewData.Ch import com.example.util.simpletimetracker.feature_change_record_type.viewData.ChangeRecordTypeIconSwitchViewData import com.example.util.simpletimetracker.feature_change_record_type.viewData.ChangeRecordTypeIconViewData import com.example.util.simpletimetracker.feature_change_record_type.viewData.ChangeRecordTypeScrollViewData -import com.example.util.simpletimetracker.navigation.Notification import com.example.util.simpletimetracker.navigation.Router import com.example.util.simpletimetracker.navigation.Screen import com.example.util.simpletimetracker.navigation.params.ChangeRecordTypeParams import com.example.util.simpletimetracker.navigation.params.DurationDialogParams -import com.example.util.simpletimetracker.navigation.params.ToastParams +import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -438,9 +437,8 @@ class ChangeRecordTypeViewModel @Inject constructor( } private fun showMessage(stringResId: Int) { - stringResId - .let(resourceRepo::getString) - .let { router.show(Notification.TOAST, ToastParams(it)) } + val params = ToastParams(message = resourceRepo.getString(stringResId)) + router.show(params) } companion object { diff --git a/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/viewModel/ChangeRunningRecordViewModel.kt b/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/viewModel/ChangeRunningRecordViewModel.kt index cf6e7def..e905b9e8 100644 --- a/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/viewModel/ChangeRunningRecordViewModel.kt +++ b/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/viewModel/ChangeRunningRecordViewModel.kt @@ -22,13 +22,12 @@ import com.example.util.simpletimetracker.domain.model.RunningRecord import com.example.util.simpletimetracker.feature_change_running_record.R import com.example.util.simpletimetracker.feature_change_running_record.interactor.ChangeRunningRecordViewDataInteractor import com.example.util.simpletimetracker.feature_change_running_record.viewData.ChangeRunningRecordViewData -import com.example.util.simpletimetracker.navigation.Notification import com.example.util.simpletimetracker.navigation.Router import com.example.util.simpletimetracker.navigation.Screen import com.example.util.simpletimetracker.navigation.params.ChangeRunningRecordParams import com.example.util.simpletimetracker.navigation.params.DateTimeDialogParams import com.example.util.simpletimetracker.navigation.params.DateTimeDialogType -import com.example.util.simpletimetracker.navigation.params.ToastParams +import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.Job import kotlinx.coroutines.cancelAndJoin import kotlinx.coroutines.delay @@ -257,9 +256,8 @@ class ChangeRunningRecordViewModel @Inject constructor( } private fun showMessage(stringResId: Int) { - stringResId - .let(resourceRepo::getString) - .let { router.show(Notification.TOAST, ToastParams(it)) } + val params = ToastParams(message = resourceRepo.getString(stringResId)) + router.show(params) } companion object { diff --git a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/view/RecordsContainerFragment.kt b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/view/RecordsContainerFragment.kt index b91671d8..b7fa114a 100644 --- a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/view/RecordsContainerFragment.kt +++ b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/view/RecordsContainerFragment.kt @@ -12,9 +12,8 @@ import com.example.util.simpletimetracker.feature_views.extension.setOnLongClick import com.example.util.simpletimetracker.core.sharedViewModel.RemoveRecordViewModel import com.example.util.simpletimetracker.feature_records.adapter.RecordsContainerAdapter import com.example.util.simpletimetracker.feature_records.viewModel.RecordsContainerViewModel -import com.example.util.simpletimetracker.navigation.Notification import com.example.util.simpletimetracker.navigation.Router -import com.example.util.simpletimetracker.navigation.params.SnackBarParams +import com.example.util.simpletimetracker.navigation.params.notification.SnackBarParams import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject import com.example.util.simpletimetracker.feature_records.databinding.RecordsContainerFragmentBinding as Binding @@ -85,7 +84,7 @@ class RecordsContainerFragment : private fun showMessage(message: SnackBarParams?) { if (message != null && message.tag == SnackBarParams.TAG.RECORD_DELETE) { - router.show(Notification.SNACK_BAR, message, binding.btnRecordAdd) + router.show(message, binding.btnRecordAdd) removeRecordViewModel.onMessageShown() } } diff --git a/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/view/RecordsAllFragment.kt b/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/view/RecordsAllFragment.kt index 8958315e..28e72483 100644 --- a/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/view/RecordsAllFragment.kt +++ b/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/view/RecordsAllFragment.kt @@ -16,10 +16,9 @@ import com.example.util.simpletimetracker.core.sharedViewModel.RemoveRecordViewM import com.example.util.simpletimetracker.feature_records_all.adapter.createRecordAllDateAdapterDelegate import com.example.util.simpletimetracker.feature_records_all.viewData.RecordsAllSortOrderViewData import com.example.util.simpletimetracker.feature_records_all.viewModel.RecordsAllViewModel -import com.example.util.simpletimetracker.navigation.Notification import com.example.util.simpletimetracker.navigation.Router import com.example.util.simpletimetracker.navigation.params.RecordsAllParams -import com.example.util.simpletimetracker.navigation.params.SnackBarParams +import com.example.util.simpletimetracker.navigation.params.notification.SnackBarParams import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject import com.example.util.simpletimetracker.feature_records_all.databinding.RecordsAllFragmentBinding as Binding @@ -96,7 +95,7 @@ class RecordsAllFragment : BaseFragment() { private fun showMessage(message: SnackBarParams?) { if (message != null && message.tag == SnackBarParams.TAG.RECORDS_ALL_DELETE) { - router.show(Notification.SNACK_BAR, message) + router.show(message) removeRecordViewModel.onMessageShown() } } diff --git a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt index 5474b1d2..6aa2c5eb 100644 --- a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt +++ b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/viewModel/SettingsViewModel.kt @@ -15,14 +15,13 @@ import com.example.util.simpletimetracker.feature_settings.mapper.SettingsMapper import com.example.util.simpletimetracker.feature_settings.viewData.CardOrderViewData import com.example.util.simpletimetracker.feature_settings.viewData.FirstDayOfWeekViewData import com.example.util.simpletimetracker.navigation.Action -import com.example.util.simpletimetracker.navigation.Notification import com.example.util.simpletimetracker.navigation.Router import com.example.util.simpletimetracker.navigation.Screen import com.example.util.simpletimetracker.navigation.params.CardOrderDialogParams import com.example.util.simpletimetracker.navigation.params.DurationDialogParams import com.example.util.simpletimetracker.navigation.params.OpenMarketParams import com.example.util.simpletimetracker.navigation.params.SendEmailParams -import com.example.util.simpletimetracker.navigation.params.ToastParams +import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -332,9 +331,8 @@ class SettingsViewModel @Inject constructor( } private fun showMessage(stringResId: Int) { - stringResId - .let(resourceRepo::getString) - .let { router.show(Notification.TOAST, ToastParams(it)) } + val params = ToastParams(message = resourceRepo.getString(stringResId)) + router.show(params) } private suspend fun updateCardOrderViewData() { diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/Notification.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/NotificationParams.kt similarity index 51% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/Notification.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/NotificationParams.kt index cfdf4bf9..25377224 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/Notification.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/NotificationParams.kt @@ -1,6 +1,3 @@ package com.example.util.simpletimetracker.navigation -enum class Notification { - TOAST, - SNACK_BAR -} \ No newline at end of file +interface NotificationParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/NotificationResolver.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/NotificationResolver.kt index 7ae49c4e..07e70b34 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/NotificationResolver.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/NotificationResolver.kt @@ -4,5 +4,5 @@ import android.app.Activity interface NotificationResolver { - fun show(activity: Activity?, notification: Notification, data: Any?, anchor: Any?) + fun show(activity: Activity?, data: NotificationParams, anchor: Any?) } \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/Router.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/Router.kt index 91c342cf..159c87e8 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/Router.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/Router.kt @@ -22,8 +22,7 @@ interface Router { ) fun show( - notification: Notification, - data: Any? = null, + data: NotificationParams, anchor: Any? = null // should be a view ) diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ToastParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ToastParams.kt deleted file mode 100644 index 0869a9b5..00000000 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ToastParams.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.example.util.simpletimetracker.navigation.params - -data class ToastParams( - val message: String -) \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/SnackBarParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/notification/SnackBarParams.kt similarity index 63% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/SnackBarParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/notification/SnackBarParams.kt index 95018be2..a0c20e66 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/SnackBarParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/notification/SnackBarParams.kt @@ -1,4 +1,6 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.notification + +import com.example.util.simpletimetracker.navigation.NotificationParams data class SnackBarParams( val tag: TAG? = null, @@ -6,7 +8,7 @@ data class SnackBarParams( val dismissedListener: ((TAG?) -> Unit)? = null, val actionText: String = "", val actionListener: ((TAG?) -> Unit)? = null -) { +): NotificationParams { enum class TAG { RECORD_DELETE, diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/notification/ToastParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/notification/ToastParams.kt new file mode 100644 index 00000000..f41dff6f --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/notification/ToastParams.kt @@ -0,0 +1,7 @@ +package com.example.util.simpletimetracker.navigation.params.notification + +import com.example.util.simpletimetracker.navigation.NotificationParams + +data class ToastParams( + val message: String, +) : NotificationParams \ No newline at end of file -- 2.51.2