diff --git a/app/src/androidTest/java/com/example/util/simpletimetracker/WidgetTagSelection.kt b/app/src/androidTest/java/com/example/util/simpletimetracker/WidgetTagSelection.kt index 6e9ab996..99d11d67 100644 --- a/app/src/androidTest/java/com/example/util/simpletimetracker/WidgetTagSelection.kt +++ b/app/src/androidTest/java/com/example/util/simpletimetracker/WidgetTagSelection.kt @@ -5,7 +5,7 @@ import androidx.test.core.app.ApplicationProvider import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.ext.junit.runners.AndroidJUnit4 import com.example.util.simpletimetracker.feature_widget.widget.WidgetTagSelectionActivity -import com.example.util.simpletimetracker.navigation.params.RecordTagSelectionParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSelectionParams import com.example.util.simpletimetracker.utils.BaseUiTest import com.example.util.simpletimetracker.utils.checkViewDoesNotExist import com.example.util.simpletimetracker.utils.checkViewIsDisplayed diff --git a/app/src/main/java/com/example/util/simpletimetracker/di/NavigationDialogMapModule.kt b/app/src/main/java/com/example/util/simpletimetracker/di/NavigationDialogMapModule.kt index f66ab7e3..a9ebebdb 100644 --- a/app/src/main/java/com/example/util/simpletimetracker/di/NavigationDialogMapModule.kt +++ b/app/src/main/java/com/example/util/simpletimetracker/di/NavigationDialogMapModule.kt @@ -9,12 +9,25 @@ import com.example.util.simpletimetracker.feature_dialogs.emojiSelection.view.Em import com.example.util.simpletimetracker.feature_dialogs.recordTagSelection.RecordTagSelectionDialogFragment import com.example.util.simpletimetracker.feature_dialogs.standard.StandardDialogFragment import com.example.util.simpletimetracker.feature_dialogs.typesFilter.view.TypesFilterDialogFragment -import com.example.util.simpletimetracker.navigation.Screen -import com.example.util.simpletimetracker.navigation.params.NavigationData +import com.example.util.simpletimetracker.navigation.bundleCreator.BundleCreator +import com.example.util.simpletimetracker.navigation.bundleCreator.bundleCreatorDelegate +import com.example.util.simpletimetracker.navigation.params.screen.ArchiveDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.CardOrderDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.CardSizeDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.ChartFilterDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.CsvExportSettingDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DurationDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.EmojiSelectionDialogParams +import com.example.util.simpletimetracker.navigation.NavigationData +import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSelectionParams +import com.example.util.simpletimetracker.navigation.params.screen.StandardDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterDialogParams import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent +import dagger.multibindings.ClassKey import dagger.multibindings.IntoMap @Module @@ -23,111 +36,121 @@ class NavigationDialogMapModule { @IntoMap @Provides - @ScreenKey(Screen.STANDARD_DIALOG) + @ClassKey(StandardDialogParams::class) fun standardDialog(): NavigationData { return NavigationData( R.id.standardDialogFragment, - StandardDialogFragment::createBundle + bundleCreatorDelegate(StandardDialogFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.DATE_TIME_DIALOG) + @ClassKey(DateTimeDialogParams::class) fun dateTimeDialog(): NavigationData { return NavigationData( R.id.dateTimeDialog, - DateTimeDialogFragment::createBundle + bundleCreatorDelegate(DateTimeDialogFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.DURATION_DIALOG) + @ClassKey(DurationDialogParams::class) fun durationDialog(): NavigationData { return NavigationData( R.id.durationDialog, - DurationDialogFragment::createBundle + bundleCreatorDelegate(DurationDialogFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.CHART_FILTER_DIALOG) + @ClassKey(ChartFilterDialogParams::class) fun chartFilterDialog(): NavigationData { return NavigationData( R.id.chartFilerDialogFragment, - null + BundleCreator.empty() ) } @IntoMap @Provides - @ScreenKey(Screen.TYPES_FILTER_DIALOG) + @ClassKey(TypesFilterDialogParams::class) fun typesFilterDialog(): NavigationData { return NavigationData( R.id.typesFilterDialogFragment, - TypesFilterDialogFragment::createBundle + bundleCreatorDelegate(TypesFilterDialogFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.CARD_SIZE_DIALOG) + @ClassKey(CardSizeDialogParams::class) fun cardSizeDialog(): NavigationData { return NavigationData( R.id.cardSizeDialogFragment, - null + BundleCreator.empty() ) } @IntoMap @Provides - @ScreenKey(Screen.CARD_ORDER_DIALOG) + @ClassKey(CardOrderDialogParams::class) fun cardOrderDialog(): NavigationData { return NavigationData( R.id.cardOrderDialogFragment, - CardOrderDialogFragment::createBundle + bundleCreatorDelegate(CardOrderDialogFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.EMOJI_SELECTION_DIALOG) + @ClassKey(EmojiSelectionDialogParams::class) fun emojiSelectionDialog(): NavigationData { return NavigationData( R.id.emojiSelectionDialogFragment, - EmojiSelectionDialogFragment::createBundle + bundleCreatorDelegate(EmojiSelectionDialogFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.ARCHIVE_DIALOG) - fun archiveDialog(): NavigationData { + @ClassKey(ArchiveDialogParams.Activity::class) + fun archiveDialogActivity(): NavigationData { return NavigationData( R.id.archiveDialogFragment, - ArchiveDialogFragment::createBundle + bundleCreatorDelegate(ArchiveDialogFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.RECORD_TAG_SELECTION_DIALOG) + @ClassKey(ArchiveDialogParams.RecordTag::class) + fun archiveDialogRecordTag(): NavigationData { + return NavigationData( + R.id.archiveDialogFragment, + bundleCreatorDelegate(ArchiveDialogFragment::createBundle) + ) + } + + @IntoMap + @Provides + @ClassKey(RecordTagSelectionParams::class) fun recordTagSelectionDialog(): NavigationData { return NavigationData( R.id.recordTagSelectionDialogFragment, - RecordTagSelectionDialogFragment::createBundle + bundleCreatorDelegate(RecordTagSelectionDialogFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.CSV_EXPORT_SETTINGS_DIALOG) + @ClassKey(CsvExportSettingDialogParams::class) fun csvExportSettingsDialog(): NavigationData { return NavigationData( R.id.csvExportSettingsDialogFragment, - null + BundleCreator.empty() ) } } \ No newline at end of file diff --git a/app/src/main/java/com/example/util/simpletimetracker/di/NavigationScreenMapModule.kt b/app/src/main/java/com/example/util/simpletimetracker/di/NavigationScreenMapModule.kt index 1da8213e..89c0549d 100644 --- a/app/src/main/java/com/example/util/simpletimetracker/di/NavigationScreenMapModule.kt +++ b/app/src/main/java/com/example/util/simpletimetracker/di/NavigationScreenMapModule.kt @@ -8,12 +8,24 @@ import com.example.util.simpletimetracker.feature_change_record_type.view.Change import com.example.util.simpletimetracker.feature_change_running_record.view.ChangeRunningRecordFragment import com.example.util.simpletimetracker.feature_records_all.view.RecordsAllFragment import com.example.util.simpletimetracker.feature_statistics_detail.view.StatisticsDetailFragment -import com.example.util.simpletimetracker.navigation.Screen -import com.example.util.simpletimetracker.navigation.params.NavigationData +import com.example.util.simpletimetracker.navigation.bundleCreator.BundleCreator +import com.example.util.simpletimetracker.navigation.bundleCreator.bundleCreatorDelegate +import com.example.util.simpletimetracker.navigation.params.screen.ArchiveParams +import com.example.util.simpletimetracker.navigation.params.screen.CategoriesParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeCategoryParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordFromMainParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordFromRecordsAllParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordTagParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordTypeParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRunningRecordParams +import com.example.util.simpletimetracker.navigation.NavigationData +import com.example.util.simpletimetracker.navigation.params.screen.RecordsAllParams +import com.example.util.simpletimetracker.navigation.params.screen.StatisticsDetailParams import dagger.Module import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent +import dagger.multibindings.ClassKey import dagger.multibindings.IntoMap @Module @@ -22,101 +34,111 @@ class NavigationScreenMapModule { @IntoMap @Provides - @ScreenKey(Screen.CHANGE_RECORD_TYPE) - fun changeRecordType(): NavigationData { + @ClassKey(ChangeRecordTypeParams.Change::class) + fun changeRecordTypeChange(): NavigationData { return NavigationData( R.id.action_mainFragment_to_changeRecordTypeFragment, - ChangeRecordTypeFragment::createBundle + bundleCreatorDelegate(ChangeRecordTypeFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.CHANGE_RECORD_RUNNING) + @ClassKey(ChangeRecordTypeParams.New::class) + fun changeRecordTypeNew(): NavigationData { + return NavigationData( + R.id.action_mainFragment_to_changeRecordTypeFragment, + bundleCreatorDelegate(ChangeRecordTypeFragment::createBundle) + ) + } + + @IntoMap + @Provides + @ClassKey(ChangeRunningRecordParams::class) fun changeRecordRunning(): NavigationData { return NavigationData( R.id.action_mainFragment_to_changeRunningRecordFragment, - ChangeRunningRecordFragment::createBundle + bundleCreatorDelegate(ChangeRunningRecordFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.CHANGE_RECORD_FROM_MAIN) + @ClassKey(ChangeRecordFromMainParams::class) fun changeRecordFromMain(): NavigationData { return NavigationData( R.id.action_mainFragment_to_changeRecordFragment, - ChangeRecordFragment::createBundle + bundleCreatorDelegate(ChangeRecordFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.CHANGE_RECORD_FROM_RECORDS_ALL) + @ClassKey(ChangeRecordFromRecordsAllParams::class) fun changeRecordFromRecordsAll(): NavigationData { return NavigationData( R.id.action_recordsAllFragment_to_changeRecordFragment, - ChangeRecordFragment::createBundle + bundleCreatorDelegate(ChangeRecordFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.STATISTICS_DETAIL) + @ClassKey(StatisticsDetailParams::class) fun statisticsDetail(): NavigationData { return NavigationData( R.id.action_mainFragment_to_statisticsDetailFragment, - StatisticsDetailFragment::createBundle + bundleCreatorDelegate(StatisticsDetailFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.RECORDS_ALL) + @ClassKey(RecordsAllParams::class) fun recordsAll(): NavigationData { return NavigationData( R.id.action_statisticsDetailFragment_to_recordsAllFragment, - RecordsAllFragment::createBundle + bundleCreatorDelegate(RecordsAllFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.CATEGORIES) + @ClassKey(CategoriesParams::class) fun categories(): NavigationData { return NavigationData( R.id.action_mainFragment_to_categoriesFragment, - null + BundleCreator.empty() ) } @IntoMap @Provides - @ScreenKey(Screen.ARCHIVE) + @ClassKey(ArchiveParams::class) fun archive(): NavigationData { return NavigationData( R.id.action_mainFragment_to_archiveFragment, - null + BundleCreator.empty() ) } @IntoMap @Provides - @ScreenKey(Screen.CHANGE_CATEGORY) + @ClassKey(ChangeCategoryParams::class) fun changeCategory(): NavigationData { return NavigationData( R.id.action_categoriesFragment_to_changeCategoryFragment, - ChangeCategoryFragment::createBundle + bundleCreatorDelegate(ChangeCategoryFragment::createBundle) ) } @IntoMap @Provides - @ScreenKey(Screen.CHANGE_RECORD_TAG) + @ClassKey(ChangeRecordTagParams::class) fun changeRecordTag(): NavigationData { return NavigationData( R.id.action_categoriesFragment_to_changeRecordTagFragment, - ChangeRecordTagFragment::createBundle + bundleCreatorDelegate(ChangeRecordTagFragment::createBundle) ) } } \ No newline at end of file diff --git a/app/src/main/java/com/example/util/simpletimetracker/di/ScreenKey.kt b/app/src/main/java/com/example/util/simpletimetracker/di/ScreenKey.kt index dda1592a..da4e99a9 100644 --- a/app/src/main/java/com/example/util/simpletimetracker/di/ScreenKey.kt +++ b/app/src/main/java/com/example/util/simpletimetracker/di/ScreenKey.kt @@ -1,8 +1,9 @@ package com.example.util.simpletimetracker.di -import com.example.util.simpletimetracker.navigation.Screen +import com.example.util.simpletimetracker.navigation.params.screen.ScreenParams import dagger.MapKey +import kotlin.reflect.KClass @Retention(AnnotationRetention.RUNTIME) @MapKey -annotation class ScreenKey(val value: Screen) +annotation class ScreenKey(val value: KClass) 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 ef5c8493..fabcf531 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 @@ -8,6 +8,7 @@ import androidx.navigation.NavController import androidx.navigation.findNavController import com.example.util.simpletimetracker.navigation.params.action.ActionParams import com.example.util.simpletimetracker.navigation.params.notification.NotificationParams +import com.example.util.simpletimetracker.navigation.params.screen.ScreenParams import com.example.util.simpletimetracker.ui.MainActivity import dagger.hilt.android.qualifiers.ApplicationContext import javax.inject.Inject @@ -34,8 +35,8 @@ class RouterImpl @Inject constructor( this.activity = activity } - override fun navigate(screen: Screen, data: Any?, sharedElements: Map?) { - screenResolver.navigate(navController, screen, data, sharedElements) + override fun navigate(data: ScreenParams, sharedElements: Map?) { + screenResolver.navigate(navController, data, sharedElements) } override fun execute(data: ActionParams) { diff --git a/app/src/main/java/com/example/util/simpletimetracker/navigation/ScreenResolverImpl.kt b/app/src/main/java/com/example/util/simpletimetracker/navigation/ScreenResolverImpl.kt index 44b6e399..d0db037b 100644 --- a/app/src/main/java/com/example/util/simpletimetracker/navigation/ScreenResolverImpl.kt +++ b/app/src/main/java/com/example/util/simpletimetracker/navigation/ScreenResolverImpl.kt @@ -4,32 +4,31 @@ import android.view.View import androidx.navigation.NavController import androidx.navigation.Navigator import androidx.navigation.fragment.FragmentNavigator -import com.example.util.simpletimetracker.navigation.params.NavigationData +import com.example.util.simpletimetracker.navigation.params.screen.ScreenParams import javax.inject.Inject class ScreenResolverImpl @Inject constructor( - private val navigationDataMap: Map, + private val navigationDataMap: @JvmSuppressWildcards Map, NavigationData>, ) : ScreenResolver { override fun navigate( navController: NavController?, - screen: Screen, - data: Any?, + data: ScreenParams, sharedElements: Map?, ) { val navExtras = toNavExtras(sharedElements) - navigationDataMap[screen] + navigationDataMap[data::class.java] ?.let { navController?.navigate( it.navId, - it.bundleProvider?.invoke(data), + it.bundleCreator.createBundle(data), null, navExtras ) } ?: run { - if (BuildConfig.DEBUG) error("Navigation error, unknown screen: $screen") + if (BuildConfig.DEBUG) error("Navigation error, unknown screen data: $data") } } diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/dialog/ArchiveDialogListener.kt b/core/src/main/java/com/example/util/simpletimetracker/core/dialog/ArchiveDialogListener.kt index 60a37528..053ad78b 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/dialog/ArchiveDialogListener.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/dialog/ArchiveDialogListener.kt @@ -1,6 +1,6 @@ package com.example.util.simpletimetracker.core.dialog -import com.example.util.simpletimetracker.navigation.params.ArchiveDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.ArchiveDialogParams interface ArchiveDialogListener { diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/dialog/CsvExportSettingsDialogListener.kt b/core/src/main/java/com/example/util/simpletimetracker/core/dialog/CsvExportSettingsDialogListener.kt index 4161c6f3..295d9719 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/dialog/CsvExportSettingsDialogListener.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/dialog/CsvExportSettingsDialogListener.kt @@ -1,6 +1,6 @@ package com.example.util.simpletimetracker.core.dialog -import com.example.util.simpletimetracker.navigation.params.CsvExportSettingsParams +import com.example.util.simpletimetracker.navigation.params.screen.CsvExportSettingsParams interface CsvExportSettingsDialogListener { diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/dialog/TypesFilterDialogListener.kt b/core/src/main/java/com/example/util/simpletimetracker/core/dialog/TypesFilterDialogListener.kt index 3c877511..f97fe9a6 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/dialog/TypesFilterDialogListener.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/dialog/TypesFilterDialogListener.kt @@ -1,6 +1,6 @@ package com.example.util.simpletimetracker.core.dialog -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams interface TypesFilterDialogListener { diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/extension/OtherExtensions.kt b/core/src/main/java/com/example/util/simpletimetracker/core/extension/OtherExtensions.kt index 0a68cead..9444adcb 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/extension/OtherExtensions.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/extension/OtherExtensions.kt @@ -2,7 +2,7 @@ package com.example.util.simpletimetracker.core.extension import android.os.StrictMode import com.example.util.simpletimetracker.domain.model.Record -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import java.util.Calendar inline fun T.allowDiskWrite(block: T.() -> R): R { diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/extension/ViewDataExensions.kt b/core/src/main/java/com/example/util/simpletimetracker/core/extension/ViewDataExensions.kt index efba3f15..1e363d18 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/extension/ViewDataExensions.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/extension/ViewDataExensions.kt @@ -1,7 +1,7 @@ package com.example.util.simpletimetracker.core.extension import com.example.util.simpletimetracker.feature_views.viewData.RecordTypeIcon -import com.example.util.simpletimetracker.navigation.params.RecordTypeIconParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordTypeIconParams fun RecordTypeIconParams.toViewData(): RecordTypeIcon { return when (this) { diff --git a/core/src/main/java/com/example/util/simpletimetracker/core/interactor/TypesFilterInteractor.kt b/core/src/main/java/com/example/util/simpletimetracker/core/interactor/TypesFilterInteractor.kt index 93e97a07..58ab8da0 100644 --- a/core/src/main/java/com/example/util/simpletimetracker/core/interactor/TypesFilterInteractor.kt +++ b/core/src/main/java/com/example/util/simpletimetracker/core/interactor/TypesFilterInteractor.kt @@ -2,7 +2,7 @@ package com.example.util.simpletimetracker.core.interactor import com.example.util.simpletimetracker.domain.interactor.RecordTypeCategoryInteractor import com.example.util.simpletimetracker.domain.model.ChartFilterType -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import javax.inject.Inject class TypesFilterInteractor @Inject constructor( 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 5b7af92d..2725c2e1 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 @@ -13,9 +13,8 @@ import com.example.util.simpletimetracker.domain.resolver.BackupRepo import com.example.util.simpletimetracker.domain.resolver.CsvRepo 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.StandardDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.CsvExportSettingsParams +import com.example.util.simpletimetracker.navigation.params.screen.StandardDialogParams import com.example.util.simpletimetracker.navigation.params.action.CreateCsvFileParams import com.example.util.simpletimetracker.navigation.params.action.CreateFileParams import com.example.util.simpletimetracker.navigation.params.action.OpenFileParams @@ -42,7 +41,6 @@ class BackupViewModel @Inject constructor( fun onRestoreClick() { router.navigate( - Screen.STANDARD_DIALOG, StandardDialogParams( tag = ALERT_DIALOG_TAG, message = resourceRepo.getString(R.string.settings_dialog_message), 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 5b077796..1352bbc1 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 @@ -9,7 +9,7 @@ import com.example.util.simpletimetracker.core.repo.ResourceRepo 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.screen.ChangeRecordParams import com.example.util.simpletimetracker.navigation.params.notification.SnackBarParams import kotlinx.coroutines.launch import javax.inject.Inject diff --git a/features/feature_archive/src/main/java/com/example/util/simpletimetracker/feature_archive/view/ArchiveFragment.kt b/features/feature_archive/src/main/java/com/example/util/simpletimetracker/feature_archive/view/ArchiveFragment.kt index 24aee6db..dcc24b1d 100644 --- a/features/feature_archive/src/main/java/com/example/util/simpletimetracker/feature_archive/view/ArchiveFragment.kt +++ b/features/feature_archive/src/main/java/com/example/util/simpletimetracker/feature_archive/view/ArchiveFragment.kt @@ -14,7 +14,7 @@ import com.example.util.simpletimetracker.core.di.BaseViewModelFactory import com.example.util.simpletimetracker.core.dialog.ArchiveDialogListener import com.example.util.simpletimetracker.core.dialog.StandardDialogListener import com.example.util.simpletimetracker.feature_archive.viewModel.ArchiveViewModel -import com.example.util.simpletimetracker.navigation.params.ArchiveDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.ArchiveDialogParams import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager 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 e49affef..91d86859 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 @@ -4,12 +4,8 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType -import com.example.util.simpletimetracker.feature_base_adapter.category.CategoryViewData -import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData import com.example.util.simpletimetracker.core.extension.set import com.example.util.simpletimetracker.core.repo.ResourceRepo -import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData import com.example.util.simpletimetracker.domain.interactor.RecordInteractor import com.example.util.simpletimetracker.domain.interactor.RecordTagInteractor import com.example.util.simpletimetracker.domain.interactor.RecordTypeCategoryInteractor @@ -17,10 +13,13 @@ 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.feature_base_adapter.ViewHolderType +import com.example.util.simpletimetracker.feature_base_adapter.category.CategoryViewData +import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData +import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData 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.screen.ArchiveDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.StandardDialogParams import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -48,14 +47,12 @@ class ArchiveViewModel @Inject constructor( fun onRecordTypeClick(item: RecordTypeViewData) { router.navigate( - screen = Screen.ARCHIVE_DIALOG, data = ArchiveDialogParams.Activity(item.id) ) } fun onCategoryClick(item: CategoryViewData) { if (item is CategoryViewData.Record) router.navigate( - screen = Screen.ARCHIVE_DIALOG, data = ArchiveDialogParams.RecordTag(item.id) ) } @@ -65,7 +62,6 @@ class ArchiveViewModel @Inject constructor( if (params == null) return@launch router.navigate( - Screen.STANDARD_DIALOG, StandardDialogParams( tag = ALERT_DIALOG_TAG, data = params, diff --git a/features/feature_categories/src/main/java/com/example/util/simpletimetracker/feature_categories/viewModel/CategoriesViewModel.kt b/features/feature_categories/src/main/java/com/example/util/simpletimetracker/feature_categories/viewModel/CategoriesViewModel.kt index b96bf51b..a9b44d95 100644 --- a/features/feature_categories/src/main/java/com/example/util/simpletimetracker/feature_categories/viewModel/CategoriesViewModel.kt +++ b/features/feature_categories/src/main/java/com/example/util/simpletimetracker/feature_categories/viewModel/CategoriesViewModel.kt @@ -4,23 +4,24 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType -import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData -import com.example.util.simpletimetracker.feature_base_adapter.category.CategoryViewData import com.example.util.simpletimetracker.core.extension.toParams -import com.example.util.simpletimetracker.feature_views.TransitionNames import com.example.util.simpletimetracker.domain.model.TagType +import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType +import com.example.util.simpletimetracker.feature_base_adapter.category.CategoryViewData +import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData import com.example.util.simpletimetracker.feature_categories.interactor.CategoriesViewDataInteractor import com.example.util.simpletimetracker.feature_categories.viewData.CategoryAddViewData +import com.example.util.simpletimetracker.feature_views.TransitionNames import com.example.util.simpletimetracker.navigation.Router -import com.example.util.simpletimetracker.navigation.Screen -import com.example.util.simpletimetracker.navigation.params.ChangeCategoryParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeCategoryParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordTagParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeTagData import kotlinx.coroutines.launch import javax.inject.Inject class CategoriesViewModel @Inject constructor( private val router: Router, - private val categoriesViewDataInteractor: CategoriesViewDataInteractor + private val categoriesViewDataInteractor: CategoriesViewDataInteractor, ) : ViewModel() { val categories: LiveData> by lazy { @@ -34,9 +35,9 @@ class CategoriesViewModel @Inject constructor( } fun onCategoryClick(item: CategoryViewData, sharedElements: Map) { - val screen = when (item) { - is CategoryViewData.Activity -> Screen.CHANGE_CATEGORY - is CategoryViewData.Record -> Screen.CHANGE_RECORD_TAG + val params = when (item) { + is CategoryViewData.Activity -> ::ChangeCategoryParams + is CategoryViewData.Record -> ::ChangeRecordTagParams } val icon = (item as? CategoryViewData.Record)?.icon?.toParams() val transitionName = when (item) { @@ -45,14 +46,15 @@ class CategoriesViewModel @Inject constructor( } + item.id router.navigate( - screen = screen, - data = ChangeCategoryParams.Change( - transitionName = transitionName, - id = item.id, - preview = ChangeCategoryParams.Change.Preview( - name = item.name, - color = item.color, - icon = icon + data = params( + ChangeTagData.Change( + transitionName = transitionName, + id = item.id, + preview = ChangeTagData.Change.Preview( + name = item.name, + color = item.color, + icon = icon + ) ) ), sharedElements = sharedElements @@ -60,14 +62,13 @@ class CategoriesViewModel @Inject constructor( } fun onAddCategoryClick(viewData: CategoryAddViewData) { - val screen = when (viewData.type) { - TagType.RECORD_TYPE -> Screen.CHANGE_CATEGORY - TagType.RECORD -> Screen.CHANGE_RECORD_TAG + val params = when (viewData.type) { + TagType.RECORD_TYPE -> ::ChangeCategoryParams + TagType.RECORD -> ::ChangeRecordTagParams } router.navigate( - screen = screen, - data = ChangeCategoryParams.New + data = params(ChangeTagData.New) ) } diff --git a/features/feature_change_category/src/main/java/com/example/util/simpletimetracker/feature_change_category/view/ChangeCategoryFragment.kt b/features/feature_change_category/src/main/java/com/example/util/simpletimetracker/feature_change_category/view/ChangeCategoryFragment.kt index 8b433ceb..c93dd3bc 100644 --- a/features/feature_change_category/src/main/java/com/example/util/simpletimetracker/feature_change_category/view/ChangeCategoryFragment.kt +++ b/features/feature_change_category/src/main/java/com/example/util/simpletimetracker/feature_change_category/view/ChangeCategoryFragment.kt @@ -26,7 +26,8 @@ import com.example.util.simpletimetracker.feature_views.extension.visible import com.example.util.simpletimetracker.core.utils.BuildVersions import com.example.util.simpletimetracker.core.utils.setChooserColor import com.example.util.simpletimetracker.feature_change_category.viewModel.ChangeCategoryViewModel -import com.example.util.simpletimetracker.navigation.params.ChangeCategoryParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeCategoryParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeTagData import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager @@ -61,20 +62,20 @@ class ChangeCategoryFragment : BaseFragment() { } // TODO by delegate? - private val params: ChangeCategoryParams by lazy { - arguments?.getParcelable(ARGS_PARAMS) ?: ChangeCategoryParams.New + private val params: ChangeTagData by lazy { + arguments?.getParcelable(ARGS_PARAMS) ?: ChangeTagData.New } override fun initUi(): Unit = with(binding) { setPreview() // TODO move to utils - if (BuildVersions.isLollipopOrHigher() && params !is ChangeCategoryParams.New) { + if (BuildVersions.isLollipopOrHigher() && params !is ChangeTagData.New) { sharedElementEnterTransition = TransitionInflater.from(context) .inflateTransition(android.R.transition.move) } - val transitionName: String = (params as? ChangeCategoryParams.Change)?.transitionName.orEmpty() + val transitionName: String = (params as? ChangeTagData.Change)?.transitionName.orEmpty() ViewCompat.setTransitionName(previewChangeCategory, transitionName) rvChangeCategoryColor.apply { @@ -139,7 +140,7 @@ class ChangeCategoryFragment : BaseFragment() { etChangeCategoryName.setSelection(item.name.length) } - private fun setPreview() = (params as? ChangeCategoryParams.Change)?.preview?.run { + private fun setPreview() = (params as? ChangeTagData.Change)?.preview?.run { with(binding.previewChangeCategory) { itemName = name itemColor = color @@ -156,10 +157,8 @@ class ChangeCategoryFragment : BaseFragment() { companion object { private const val ARGS_PARAMS = "args_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is ChangeCategoryParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: ChangeCategoryParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data.data) } } } \ No newline at end of file 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 0b345ad0..9915b3c5 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 @@ -21,7 +21,7 @@ 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.Router -import com.example.util.simpletimetracker.navigation.params.ChangeCategoryParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeTagData import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -36,7 +36,7 @@ class ChangeCategoryViewModel @Inject constructor( private val resourceRepo: ResourceRepo, ) : ViewModel() { - lateinit var extra: ChangeCategoryParams + lateinit var extra: ChangeTagData val categoryPreview: LiveData by lazy { return@lazy MutableLiveData().let { initial -> @@ -66,7 +66,7 @@ class ChangeCategoryViewModel @Inject constructor( val deleteIconVisibility: LiveData by lazy { MutableLiveData(categoryId != 0L) } val keyboardVisibility: LiveData by lazy { MutableLiveData(categoryId == 0L) } - private val categoryId: Long get() = (extra as? ChangeCategoryParams.Change)?.id.orZero() + private val categoryId: Long get() = (extra as? ChangeTagData.Change)?.id.orZero() private var initialTypes: List = emptyList() private var newName: String = "" private var newColorId: Int = (0..ColorMapper.colorsNumber).random() diff --git a/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordFragment.kt b/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordFragment.kt index a98f6f47..ea841fe4 100644 --- a/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordFragment.kt +++ b/features/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordFragment.kt @@ -29,7 +29,8 @@ import com.example.util.simpletimetracker.core.sharedViewModel.RemoveRecordViewM import com.example.util.simpletimetracker.domain.extension.orZero import com.example.util.simpletimetracker.feature_change_record.viewData.ChangeRecordViewData import com.example.util.simpletimetracker.feature_change_record.viewModel.ChangeRecordViewModel -import com.example.util.simpletimetracker.navigation.params.ChangeRecordParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordsFromScreen import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager @@ -203,10 +204,8 @@ class ChangeRecordFragment : companion object { private const val ARGS_PARAMS = "args_change_record_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is ChangeRecordParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: ChangeRecordsFromScreen): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data.params) } } } \ No newline at end of file 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 8f83f8d0..0c25af8f 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 @@ -23,10 +23,9 @@ 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.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.screen.ChangeRecordParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -105,7 +104,6 @@ class ChangeRecordViewModel @Inject constructor( val firstDayOfWeek = prefsInteractor.getFirstDayOfWeek() router.navigate( - Screen.DATE_TIME_DIALOG, DateTimeDialogParams( tag = TIME_STARTED_TAG, timestamp = newTimeStarted, @@ -123,7 +121,6 @@ class ChangeRecordViewModel @Inject constructor( val firstDayOfWeek = prefsInteractor.getFirstDayOfWeek() router.navigate( - Screen.DATE_TIME_DIALOG, DateTimeDialogParams( tag = TIME_ENDED_TAG, timestamp = newTimeEnded, diff --git a/features/feature_change_record_tag/src/main/java/com/example/util/simpletimetracker/feature_change_record_tag/view/ChangeRecordTagFragment.kt b/features/feature_change_record_tag/src/main/java/com/example/util/simpletimetracker/feature_change_record_tag/view/ChangeRecordTagFragment.kt index 5c62e8eb..0c5a0795 100644 --- a/features/feature_change_record_tag/src/main/java/com/example/util/simpletimetracker/feature_change_record_tag/view/ChangeRecordTagFragment.kt +++ b/features/feature_change_record_tag/src/main/java/com/example/util/simpletimetracker/feature_change_record_tag/view/ChangeRecordTagFragment.kt @@ -24,7 +24,8 @@ import com.example.util.simpletimetracker.feature_views.extension.visible import com.example.util.simpletimetracker.core.utils.BuildVersions import com.example.util.simpletimetracker.core.utils.setChooserColor import com.example.util.simpletimetracker.feature_change_record_tag.viewModel.ChangeRecordTagViewModel -import com.example.util.simpletimetracker.navigation.params.ChangeCategoryParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordTagParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeTagData import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager @@ -53,8 +54,8 @@ class ChangeRecordTagFragment : BaseFragment() { } // TODO by delegate? - private val params: ChangeCategoryParams by lazy { - arguments?.getParcelable(ARGS_PARAMS) ?: ChangeCategoryParams.New + private val params: ChangeTagData by lazy { + arguments?.getParcelable(ARGS_PARAMS) ?: ChangeTagData.New } override fun initUi(): Unit = with(binding) { @@ -66,7 +67,7 @@ class ChangeRecordTagFragment : BaseFragment() { .inflateTransition(android.R.transition.move) } - val transitionName: String = (params as? ChangeCategoryParams.Change)?.transitionName.orEmpty() + val transitionName: String = (params as? ChangeTagData.Change)?.transitionName.orEmpty() ViewCompat.setTransitionName(previewChangeRecordTag, transitionName) rvChangeRecordTagType.apply { @@ -114,7 +115,7 @@ class ChangeRecordTagFragment : BaseFragment() { etChangeRecordTagName.setSelection(item.name.length) } - private fun setPreview() = (params as? ChangeCategoryParams.Change)?.preview?.run { + private fun setPreview() = (params as? ChangeTagData.Change)?.preview?.run { with(binding.previewChangeRecordTag) { itemName = name itemColor = color @@ -137,10 +138,8 @@ class ChangeRecordTagFragment : BaseFragment() { companion object { private const val ARGS_PARAMS = "args_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is ChangeCategoryParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: ChangeRecordTagParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data.data) } } } \ No newline at end of file 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 a8686a4d..be7124b9 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 @@ -21,7 +21,7 @@ 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.Router -import com.example.util.simpletimetracker.navigation.params.ChangeCategoryParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeTagData import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -38,7 +38,7 @@ class ChangeRecordTagViewModel @Inject constructor( private val resourceRepo: ResourceRepo ) : ViewModel() { - lateinit var extra: ChangeCategoryParams + lateinit var extra: ChangeTagData val preview: LiveData by lazy { return@lazy MutableLiveData().let { initial -> @@ -62,7 +62,7 @@ class ChangeRecordTagViewModel @Inject constructor( val keyboardVisibility: LiveData by lazy { MutableLiveData(recordTagId == 0L) } val typesChooserVisibility: LiveData by lazy { MutableLiveData(recordTagId == 0L) } - private val recordTagId: Long get() = (extra as? ChangeCategoryParams.Change)?.id.orZero() + private val recordTagId: Long get() = (extra as? ChangeTagData.Change)?.id.orZero() private var newName: String = "" private var newTypeId: Long = 0L diff --git a/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/mapper/ChangeRecordTypeMapper.kt b/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/mapper/ChangeRecordTypeMapper.kt index 99266944..9a9f05b0 100644 --- a/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/mapper/ChangeRecordTypeMapper.kt +++ b/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/mapper/ChangeRecordTypeMapper.kt @@ -18,7 +18,7 @@ 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.ChangeRecordTypeIconTypeViewData import com.example.util.simpletimetracker.feature_change_record_type.viewData.ChangeRecordTypeIconViewData -import com.example.util.simpletimetracker.navigation.params.EmojiSelectionDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.EmojiSelectionDialogParams import javax.inject.Inject class ChangeRecordTypeMapper @Inject constructor( diff --git a/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/view/ChangeRecordTypeFragment.kt b/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/view/ChangeRecordTypeFragment.kt index fbc30245..d66d077f 100644 --- a/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/view/ChangeRecordTypeFragment.kt +++ b/features/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/view/ChangeRecordTypeFragment.kt @@ -8,34 +8,26 @@ import androidx.core.widget.doAfterTextChanged import androidx.fragment.app.viewModels import androidx.recyclerview.widget.GridLayoutManager import androidx.transition.TransitionInflater -import com.example.util.simpletimetracker.feature_base_adapter.BaseRecyclerAdapter -import com.example.util.simpletimetracker.feature_base_adapter.category.createCategoryAdapterDelegate -import com.example.util.simpletimetracker.feature_base_adapter.color.createColorAdapterDelegate -import com.example.util.simpletimetracker.feature_base_adapter.divider.createDividerAdapterDelegate -import com.example.util.simpletimetracker.feature_base_adapter.emoji.createEmojiAdapterDelegate -import com.example.util.simpletimetracker.feature_base_adapter.empty.createEmptyAdapterDelegate -import com.example.util.simpletimetracker.feature_base_adapter.info.createInfoAdapterDelegate import com.example.util.simpletimetracker.core.base.BaseFragment import com.example.util.simpletimetracker.core.di.BaseViewModelFactory import com.example.util.simpletimetracker.core.dialog.DurationDialogListener import com.example.util.simpletimetracker.core.dialog.EmojiSelectionDialogListener -import com.example.util.simpletimetracker.feature_views.extension.dpToPx import com.example.util.simpletimetracker.core.extension.hideKeyboard import com.example.util.simpletimetracker.core.extension.observeOnce -import com.example.util.simpletimetracker.feature_views.extension.pxToDp -import com.example.util.simpletimetracker.feature_views.extension.rotateDown -import com.example.util.simpletimetracker.feature_views.extension.rotateUp -import com.example.util.simpletimetracker.feature_views.extension.setOnClick -import com.example.util.simpletimetracker.feature_views.extension.setSpanSizeLookup import com.example.util.simpletimetracker.core.extension.showKeyboard import com.example.util.simpletimetracker.core.extension.toViewData -import com.example.util.simpletimetracker.feature_views.extension.updatePadding -import com.example.util.simpletimetracker.feature_views.extension.visible import com.example.util.simpletimetracker.core.repo.DeviceRepo import com.example.util.simpletimetracker.core.utils.BuildVersions import com.example.util.simpletimetracker.core.utils.setChooserColor -import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData import com.example.util.simpletimetracker.domain.model.IconEmojiType +import com.example.util.simpletimetracker.feature_base_adapter.BaseRecyclerAdapter +import com.example.util.simpletimetracker.feature_base_adapter.category.createCategoryAdapterDelegate +import com.example.util.simpletimetracker.feature_base_adapter.color.createColorAdapterDelegate +import com.example.util.simpletimetracker.feature_base_adapter.divider.createDividerAdapterDelegate +import com.example.util.simpletimetracker.feature_base_adapter.emoji.createEmojiAdapterDelegate +import com.example.util.simpletimetracker.feature_base_adapter.empty.createEmptyAdapterDelegate +import com.example.util.simpletimetracker.feature_base_adapter.info.createInfoAdapterDelegate +import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData import com.example.util.simpletimetracker.feature_change_record_type.R import com.example.util.simpletimetracker.feature_change_record_type.adapter.createChangeRecordTypeIconAdapterDelegate import com.example.util.simpletimetracker.feature_change_record_type.adapter.createChangeRecordTypeIconCategoryAdapterDelegate @@ -43,7 +35,15 @@ import com.example.util.simpletimetracker.feature_change_record_type.adapter.cre import com.example.util.simpletimetracker.feature_change_record_type.viewData.ChangeRecordTypeIconCategoryInfoViewData import com.example.util.simpletimetracker.feature_change_record_type.viewData.ChangeRecordTypeScrollViewData import com.example.util.simpletimetracker.feature_change_record_type.viewModel.ChangeRecordTypeViewModel -import com.example.util.simpletimetracker.navigation.params.ChangeRecordTypeParams +import com.example.util.simpletimetracker.feature_views.extension.dpToPx +import com.example.util.simpletimetracker.feature_views.extension.pxToDp +import com.example.util.simpletimetracker.feature_views.extension.rotateDown +import com.example.util.simpletimetracker.feature_views.extension.rotateUp +import com.example.util.simpletimetracker.feature_views.extension.setOnClick +import com.example.util.simpletimetracker.feature_views.extension.setSpanSizeLookup +import com.example.util.simpletimetracker.feature_views.extension.updatePadding +import com.example.util.simpletimetracker.feature_views.extension.visible +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordTypeParams import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager @@ -276,10 +276,8 @@ class ChangeRecordTypeFragment : private const val ARGS_PARAMS = "args_params" private const val DELETE_BUTTON_SIZE = 72 // TODO get from dimens or viewModel - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is ChangeRecordTypeParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: ChangeRecordTypeParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data) } } } \ No newline at end of file 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 ba68b0bf..c73d41d3 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 @@ -4,8 +4,6 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType -import com.example.util.simpletimetracker.feature_base_adapter.category.CategoryViewData import com.example.util.simpletimetracker.core.extension.set import com.example.util.simpletimetracker.core.interactor.NotificationGoalTimeInteractor import com.example.util.simpletimetracker.core.interactor.NotificationTypeInteractor @@ -16,9 +14,6 @@ import com.example.util.simpletimetracker.core.mapper.IconEmojiMapper import com.example.util.simpletimetracker.core.mapper.RecordTypeViewDataMapper import com.example.util.simpletimetracker.core.repo.ResourceRepo import com.example.util.simpletimetracker.core.view.buttonsRowView.ButtonsRowViewData -import com.example.util.simpletimetracker.feature_base_adapter.color.ColorViewData -import com.example.util.simpletimetracker.feature_base_adapter.emoji.EmojiViewData -import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData import com.example.util.simpletimetracker.domain.extension.flip import com.example.util.simpletimetracker.domain.extension.orTrue import com.example.util.simpletimetracker.domain.extension.orZero @@ -29,6 +24,11 @@ import com.example.util.simpletimetracker.domain.interactor.RecordTypeInteractor import com.example.util.simpletimetracker.domain.interactor.RunningRecordInteractor import com.example.util.simpletimetracker.domain.model.IconType import com.example.util.simpletimetracker.domain.model.RecordType +import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType +import com.example.util.simpletimetracker.feature_base_adapter.category.CategoryViewData +import com.example.util.simpletimetracker.feature_base_adapter.color.ColorViewData +import com.example.util.simpletimetracker.feature_base_adapter.emoji.EmojiViewData +import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData import com.example.util.simpletimetracker.feature_change_record_type.R import com.example.util.simpletimetracker.feature_change_record_type.interactor.ChangeRecordTypeViewDataInteractor import com.example.util.simpletimetracker.feature_change_record_type.mapper.ChangeRecordTypeMapper @@ -38,9 +38,8 @@ import com.example.util.simpletimetracker.feature_change_record_type.viewData.Ch 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.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.screen.ChangeRecordTypeParams +import com.example.util.simpletimetracker.navigation.params.screen.DurationDialogParams import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -238,7 +237,6 @@ class ChangeRecordTypeViewModel @Inject constructor( fun onGoalTimeClick() { router.navigate( - Screen.DURATION_DIALOG, DurationDialogParams( tag = GOAL_TIME_DIALOG_TAG, duration = newGoalTime @@ -323,10 +321,7 @@ class ChangeRecordTypeViewModel @Inject constructor( emojiCodes = item.emojiCodes ) - router.navigate( - Screen.EMOJI_SELECTION_DIALOG, - params - ) + router.navigate(params) } private suspend fun saveRecordType(): Long { diff --git a/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/view/ChangeRunningRecordFragment.kt b/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/view/ChangeRunningRecordFragment.kt index 90de0af4..90d71882 100644 --- a/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/view/ChangeRunningRecordFragment.kt +++ b/features/feature_change_running_record/src/main/java/com/example/util/simpletimetracker/feature_change_running_record/view/ChangeRunningRecordFragment.kt @@ -27,7 +27,7 @@ import com.example.util.simpletimetracker.core.utils.setChooserColor import com.example.util.simpletimetracker.feature_views.TransitionNames import com.example.util.simpletimetracker.feature_change_running_record.viewData.ChangeRunningRecordViewData import com.example.util.simpletimetracker.feature_change_running_record.viewModel.ChangeRunningRecordViewModel -import com.example.util.simpletimetracker.navigation.params.ChangeRunningRecordParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRunningRecordParams import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager @@ -185,10 +185,8 @@ class ChangeRunningRecordFragment : companion object { private const val ARGS_PARAMS = "args_running_record_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is ChangeRunningRecordParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: ChangeRunningRecordParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data) } } } \ No newline at end of file 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 e905b9e8..b64cf8f9 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 @@ -23,10 +23,9 @@ 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.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.screen.ChangeRunningRecordParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType import com.example.util.simpletimetracker.navigation.params.notification.ToastParams import kotlinx.coroutines.Job import kotlinx.coroutines.cancelAndJoin @@ -110,7 +109,6 @@ class ChangeRunningRecordViewModel @Inject constructor( val firstDayOfWeek = prefsInteractor.getFirstDayOfWeek() router.navigate( - Screen.DATE_TIME_DIALOG, DateTimeDialogParams( tag = TIME_STARTED_TAG, timestamp = newTimeStarted, diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/archive/view/ArchiveDialogFragment.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/archive/view/ArchiveDialogFragment.kt index f5ff1e8d..cdb27adb 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/archive/view/ArchiveDialogFragment.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/archive/view/ArchiveDialogFragment.kt @@ -19,7 +19,7 @@ import com.example.util.simpletimetracker.feature_dialogs.archive.adapter.create import com.example.util.simpletimetracker.feature_dialogs.archive.adapter.createArchiveDialogInfoAdapterDelegate import com.example.util.simpletimetracker.feature_dialogs.archive.adapter.createArchiveDialogTitleAdapterDelegate import com.example.util.simpletimetracker.feature_dialogs.archive.viewModel.ArchiveDialogViewModel -import com.example.util.simpletimetracker.navigation.params.ArchiveDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.ArchiveDialogParams import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager @@ -109,10 +109,8 @@ class ArchiveDialogFragment : BaseBottomSheetFragment() { companion object { private const val ARGS_PARAMS = "args_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is ArchiveDialogParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: ArchiveDialogParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data) } } } \ No newline at end of file diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/archive/viewModel/ArchiveDialogViewModel.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/archive/viewModel/ArchiveDialogViewModel.kt index ad6eb706..0b85c752 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/archive/viewModel/ArchiveDialogViewModel.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/archive/viewModel/ArchiveDialogViewModel.kt @@ -7,7 +7,7 @@ import androidx.lifecycle.viewModelScope import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData import com.example.util.simpletimetracker.feature_dialogs.archive.interactor.ArchiveDialogViewDataInteractor -import com.example.util.simpletimetracker.navigation.params.ArchiveDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.ArchiveDialogParams import kotlinx.coroutines.launch import javax.inject.Inject diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/cardOrder/view/CardOrderDialogFragment.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/cardOrder/view/CardOrderDialogFragment.kt index 60d4d453..b8063798 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/cardOrder/view/CardOrderDialogFragment.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/cardOrder/view/CardOrderDialogFragment.kt @@ -16,7 +16,7 @@ import com.example.util.simpletimetracker.core.extension.onItemMoved import com.example.util.simpletimetracker.core.extension.setFullScreen import com.example.util.simpletimetracker.core.extension.setSkipCollapsed import com.example.util.simpletimetracker.feature_dialogs.cardOrder.viewModel.CardOrderViewModel -import com.example.util.simpletimetracker.navigation.params.CardOrderDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.CardOrderDialogParams import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager @@ -102,10 +102,8 @@ class CardOrderDialogFragment : BaseBottomSheetFragment() { private const val ARGS_PARAMS = "args_card_order_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is CardOrderDialogParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: CardOrderDialogParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data) } } } \ No newline at end of file diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/cardOrder/viewModel/CardOrderViewModel.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/cardOrder/viewModel/CardOrderViewModel.kt index 177785b3..f9abae4f 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/cardOrder/viewModel/CardOrderViewModel.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/cardOrder/viewModel/CardOrderViewModel.kt @@ -11,7 +11,7 @@ import com.example.util.simpletimetracker.feature_base_adapter.recordType.Record import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor import com.example.util.simpletimetracker.domain.interactor.RecordTypeInteractor import com.example.util.simpletimetracker.domain.model.CardOrder -import com.example.util.simpletimetracker.navigation.params.CardOrderDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.CardOrderDialogParams import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import javax.inject.Inject diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/csvExportSettings/viewModel/CsvExportSettingsViewModel.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/csvExportSettings/viewModel/CsvExportSettingsViewModel.kt index 2332ad88..2d9c4cb2 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/csvExportSettings/viewModel/CsvExportSettingsViewModel.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/csvExportSettings/viewModel/CsvExportSettingsViewModel.kt @@ -9,10 +9,9 @@ import com.example.util.simpletimetracker.core.mapper.TimeMapper import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor import com.example.util.simpletimetracker.feature_dialogs.csvExportSettings.viewData.CsvExportSettingsViewData 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.DateTimeDialogParams -import com.example.util.simpletimetracker.navigation.params.DateTimeDialogType +import com.example.util.simpletimetracker.navigation.params.screen.CsvExportSettingsParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType import kotlinx.coroutines.launch import java.util.concurrent.TimeUnit import javax.inject.Inject @@ -43,7 +42,6 @@ class CsvExportSettingsViewModel @Inject constructor( val firstDayOfWeek = prefsInteractor.getFirstDayOfWeek() router.navigate( - Screen.DATE_TIME_DIALOG, DateTimeDialogParams( tag = TIME_STARTED_TAG, timestamp = rangeStart, @@ -61,7 +59,6 @@ class CsvExportSettingsViewModel @Inject constructor( val firstDayOfWeek = prefsInteractor.getFirstDayOfWeek() router.navigate( - Screen.DATE_TIME_DIALOG, DateTimeDialogParams( tag = TIME_ENDED_TAG, timestamp = rangeEnd, diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/dateTime/DateTimeDialogFragment.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/dateTime/DateTimeDialogFragment.kt index cf7604ad..c4ceb1e3 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/dateTime/DateTimeDialogFragment.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/dateTime/DateTimeDialogFragment.kt @@ -15,8 +15,8 @@ import com.example.util.simpletimetracker.feature_views.extension.visible import com.example.util.simpletimetracker.core.mapper.TimeMapper import com.example.util.simpletimetracker.feature_dialogs.R import com.example.util.simpletimetracker.feature_dialogs.databinding.DateTimeDialogFragmentBinding -import com.example.util.simpletimetracker.navigation.params.DateTimeDialogParams -import com.example.util.simpletimetracker.navigation.params.DateTimeDialogType +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType import com.google.android.material.tabs.TabLayout import dagger.hilt.android.AndroidEntryPoint import java.util.Calendar @@ -176,10 +176,8 @@ class DateTimeDialogFragment : companion object { private const val ARGS_PARAMS = "params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is DateTimeDialogParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: DateTimeDialogParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data) } } } \ No newline at end of file diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/duration/view/DurationDialogFragment.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/duration/view/DurationDialogFragment.kt index 402dcdd3..47fb4c88 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/duration/view/DurationDialogFragment.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/duration/view/DurationDialogFragment.kt @@ -17,7 +17,7 @@ import com.example.util.simpletimetracker.core.extension.setSkipCollapsed import com.example.util.simpletimetracker.domain.extension.orZero import com.example.util.simpletimetracker.feature_dialogs.duration.extra.DurationPickerExtra import com.example.util.simpletimetracker.feature_dialogs.duration.viewModel.DurationPickerViewModel -import com.example.util.simpletimetracker.navigation.params.DurationDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DurationDialogParams import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject import com.example.util.simpletimetracker.feature_dialogs.databinding.DurationDialogFragmentBinding as Binding @@ -91,13 +91,9 @@ class DurationDialogFragment : BaseBottomSheetFragment() { private const val ARGS_TAG = "tag" private const val ARGS_DURATION = "duration" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is DurationDialogParams -> { - putString(ARGS_TAG, data.tag) - putLong(ARGS_DURATION, data.duration) - } - } + fun createBundle(data: DurationDialogParams): Bundle = Bundle().apply { + putString(ARGS_TAG, data.tag) + putLong(ARGS_DURATION, data.duration) } } } \ No newline at end of file diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/emojiSelection/view/EmojiSelectionDialogFragment.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/emojiSelection/view/EmojiSelectionDialogFragment.kt index 42a0052c..9d5c09d0 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/emojiSelection/view/EmojiSelectionDialogFragment.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/emojiSelection/view/EmojiSelectionDialogFragment.kt @@ -15,7 +15,7 @@ import com.example.util.simpletimetracker.core.dialog.EmojiSelectionDialogListen import com.example.util.simpletimetracker.core.extension.getAllFragments import com.example.util.simpletimetracker.core.extension.setSkipCollapsed import com.example.util.simpletimetracker.feature_dialogs.emojiSelection.viewModel.EmojiSelectionViewModel -import com.example.util.simpletimetracker.navigation.params.EmojiSelectionDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.EmojiSelectionDialogParams import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager @@ -97,10 +97,8 @@ class EmojiSelectionDialogFragment : BaseBottomSheetFragment() { companion object { private const val ARGS_PARAMS = "args_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is EmojiSelectionDialogParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: EmojiSelectionDialogParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data) } } } \ No newline at end of file diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/emojiSelection/viewModel/EmojiSelectionViewModel.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/emojiSelection/viewModel/EmojiSelectionViewModel.kt index 1cc753d3..945c2634 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/emojiSelection/viewModel/EmojiSelectionViewModel.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/emojiSelection/viewModel/EmojiSelectionViewModel.kt @@ -10,7 +10,7 @@ import com.example.util.simpletimetracker.core.extension.set import com.example.util.simpletimetracker.feature_base_adapter.emoji.EmojiViewData import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor import com.example.util.simpletimetracker.feature_dialogs.emojiSelection.mapper.EmojiSelectionMapper -import com.example.util.simpletimetracker.navigation.params.EmojiSelectionDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.EmojiSelectionDialogParams import kotlinx.coroutines.launch import javax.inject.Inject diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordTagSelection/RecordTagSelectionDialogFragment.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordTagSelection/RecordTagSelectionDialogFragment.kt index 6462ba70..fc4e8086 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordTagSelection/RecordTagSelectionDialogFragment.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/recordTagSelection/RecordTagSelectionDialogFragment.kt @@ -10,7 +10,7 @@ import com.example.util.simpletimetracker.core.extension.setSkipCollapsed import com.example.util.simpletimetracker.feature_dialogs.R import com.example.util.simpletimetracker.navigation.Screen import com.example.util.simpletimetracker.navigation.ScreenFactory -import com.example.util.simpletimetracker.navigation.params.RecordTagSelectionParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSelectionParams import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject import com.example.util.simpletimetracker.feature_dialogs.databinding.RecordTagSelectionDialogFragmentBinding as Binding @@ -52,10 +52,8 @@ class RecordTagSelectionDialogFragment : companion object { private const val ARGS_PARAMS = "args_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is RecordTagSelectionParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: RecordTagSelectionParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data) } } } \ No newline at end of file diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/standard/StandardDialogFragment.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/standard/StandardDialogFragment.kt index e8556e66..eb2eab35 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/standard/StandardDialogFragment.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/standard/StandardDialogFragment.kt @@ -9,7 +9,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDialogFragment import com.example.util.simpletimetracker.core.dialog.StandardDialogListener import com.example.util.simpletimetracker.core.extension.getAllFragments -import com.example.util.simpletimetracker.navigation.params.StandardDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.StandardDialogParams class StandardDialogFragment : AppCompatDialogFragment(), @@ -70,10 +70,8 @@ class StandardDialogFragment : companion object { private const val ARGS_PARAMS = "args_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is StandardDialogParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: StandardDialogParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data) } } } \ No newline at end of file diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/interactor/TypesFilterViewDataInteractor.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/interactor/TypesFilterViewDataInteractor.kt index 32db386d..b7d26582 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/interactor/TypesFilterViewDataInteractor.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/interactor/TypesFilterViewDataInteractor.kt @@ -14,7 +14,7 @@ import com.example.util.simpletimetracker.domain.model.RecordType import com.example.util.simpletimetracker.domain.model.RecordTypeCategory import com.example.util.simpletimetracker.feature_dialogs.R import com.example.util.simpletimetracker.feature_dialogs.typesFilter.mapper.TypesFilterMapper -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import javax.inject.Inject class TypesFilterViewDataInteractor @Inject constructor( diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/view/TypesFilterDialogFragment.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/view/TypesFilterDialogFragment.kt index 27753c21..95f89943 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/view/TypesFilterDialogFragment.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/view/TypesFilterDialogFragment.kt @@ -22,8 +22,8 @@ import com.example.util.simpletimetracker.core.extension.setFullScreen import com.example.util.simpletimetracker.feature_views.extension.setOnClick import com.example.util.simpletimetracker.core.extension.setSkipCollapsed import com.example.util.simpletimetracker.feature_dialogs.typesFilter.viewModel.TypesFilterViewModel -import com.example.util.simpletimetracker.navigation.params.TypesFilterDialogParams -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager @@ -108,12 +108,8 @@ class TypesFilterDialogFragment : BaseBottomSheetFragment() { companion object { private const val ARGS_PARAMS = "args_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is TypesFilterDialogParams -> { - putParcelable(ARGS_PARAMS, data.filter) - } - } + fun createBundle(data: TypesFilterDialogParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data.filter) } } } \ No newline at end of file diff --git a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/viewModel/TypesFilterViewModel.kt b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/viewModel/TypesFilterViewModel.kt index e9037bc9..daf003df 100644 --- a/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/viewModel/TypesFilterViewModel.kt +++ b/features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/typesFilter/viewModel/TypesFilterViewModel.kt @@ -20,7 +20,7 @@ import com.example.util.simpletimetracker.domain.model.RecordTag import com.example.util.simpletimetracker.domain.model.RecordType import com.example.util.simpletimetracker.domain.model.RecordTypeCategory import com.example.util.simpletimetracker.feature_dialogs.typesFilter.interactor.TypesFilterViewDataInteractor -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import kotlinx.coroutines.launch import javax.inject.Inject diff --git a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/adapter/RecordsContainerAdapter.kt b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/adapter/RecordsContainerAdapter.kt index f1811c70..ec5f642d 100644 --- a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/adapter/RecordsContainerAdapter.kt +++ b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/adapter/RecordsContainerAdapter.kt @@ -3,7 +3,7 @@ package com.example.util.simpletimetracker.feature_records.adapter import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter import com.example.util.simpletimetracker.feature_records.view.RecordsFragment -import com.example.util.simpletimetracker.navigation.params.RecordsParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordsParams class RecordsContainerAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) { diff --git a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/view/RecordsFragment.kt b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/view/RecordsFragment.kt index 75ceac27..ec3ff5aa 100644 --- a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/view/RecordsFragment.kt +++ b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/view/RecordsFragment.kt @@ -17,7 +17,7 @@ import com.example.util.simpletimetracker.core.sharedViewModel.RemoveRecordViewM import com.example.util.simpletimetracker.domain.extension.orZero import com.example.util.simpletimetracker.feature_records.extra.RecordsExtra import com.example.util.simpletimetracker.feature_records.viewModel.RecordsViewModel -import com.example.util.simpletimetracker.navigation.params.RecordsParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordsParams import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject import com.example.util.simpletimetracker.feature_records.databinding.RecordsFragmentBinding as Binding diff --git a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsContainerViewModel.kt b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsContainerViewModel.kt index 3520a8ce..d17031ef 100644 --- a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsContainerViewModel.kt +++ b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsContainerViewModel.kt @@ -9,10 +9,10 @@ import com.example.util.simpletimetracker.domain.extension.orZero import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor import com.example.util.simpletimetracker.domain.model.RangeLength 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.screen.ChangeRecordFromMainParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType import kotlinx.coroutines.launch import javax.inject.Inject @@ -30,10 +30,8 @@ class RecordsContainerViewModel @Inject constructor( } fun onRecordAddClick() { - router.navigate( - Screen.CHANGE_RECORD_FROM_MAIN, - ChangeRecordParams.New(daysFromToday = position.value.orZero()) - ) + val params = ChangeRecordParams.New(daysFromToday = position.value.orZero()) + router.navigate(ChangeRecordFromMainParams(params)) } fun onPreviousClick() { @@ -50,7 +48,6 @@ class RecordsContainerViewModel @Inject constructor( ) router.navigate( - Screen.DATE_TIME_DIALOG, DateTimeDialogParams( tag = DATE_TAG, type = DateTimeDialogType.DATE, diff --git a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsViewModel.kt b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsViewModel.kt index 0f8688dd..b1dc6353 100644 --- a/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsViewModel.kt +++ b/features/feature_records/src/main/java/com/example/util/simpletimetracker/feature_records/viewModel/RecordsViewModel.kt @@ -4,17 +4,17 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.example.util.simpletimetracker.core.extension.toParams +import com.example.util.simpletimetracker.domain.extension.orZero import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData -import com.example.util.simpletimetracker.core.extension.toParams -import com.example.util.simpletimetracker.feature_views.TransitionNames import com.example.util.simpletimetracker.feature_base_adapter.record.RecordViewData -import com.example.util.simpletimetracker.domain.extension.orZero import com.example.util.simpletimetracker.feature_records.extra.RecordsExtra import com.example.util.simpletimetracker.feature_records.interactor.RecordsViewDataInteractor +import com.example.util.simpletimetracker.feature_views.TransitionNames 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.screen.ChangeRecordFromMainParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -56,8 +56,7 @@ class RecordsViewModel @Inject constructor( ) } router.navigate( - screen = Screen.CHANGE_RECORD_FROM_MAIN, - data = params, + data = ChangeRecordFromMainParams(params), sharedElements = sharedElements ) } diff --git a/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/interactor/RecordsAllViewDataInteractor.kt b/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/interactor/RecordsAllViewDataInteractor.kt index 1fa33aac..e487049f 100644 --- a/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/interactor/RecordsAllViewDataInteractor.kt +++ b/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/interactor/RecordsAllViewDataInteractor.kt @@ -12,7 +12,7 @@ import com.example.util.simpletimetracker.domain.interactor.RecordTypeInteractor import com.example.util.simpletimetracker.feature_records_all.mapper.RecordsAllViewDataMapper import com.example.util.simpletimetracker.feature_records_all.model.RecordsAllSortOrder import com.example.util.simpletimetracker.feature_records_all.viewData.RecordsAllDateViewData -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import java.util.Calendar 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 28e72483..c8712818 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 @@ -17,7 +17,7 @@ import com.example.util.simpletimetracker.feature_records_all.adapter.createReco 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.Router -import com.example.util.simpletimetracker.navigation.params.RecordsAllParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordsAllParams import com.example.util.simpletimetracker.navigation.params.notification.SnackBarParams import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject @@ -115,10 +115,8 @@ class RecordsAllFragment : BaseFragment() { companion object { private const val ARGS_PARAMS = "args_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is RecordsAllParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: RecordsAllParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data) } } } diff --git a/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/viewModel/RecordsAllViewModel.kt b/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/viewModel/RecordsAllViewModel.kt index a6806f9b..5f3f09c6 100644 --- a/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/viewModel/RecordsAllViewModel.kt +++ b/features/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/viewModel/RecordsAllViewModel.kt @@ -4,19 +4,19 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.example.util.simpletimetracker.core.extension.toParams import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData -import com.example.util.simpletimetracker.core.extension.toParams -import com.example.util.simpletimetracker.feature_views.TransitionNames import com.example.util.simpletimetracker.feature_base_adapter.record.RecordViewData import com.example.util.simpletimetracker.feature_records_all.interactor.RecordsAllViewDataInteractor import com.example.util.simpletimetracker.feature_records_all.mapper.RecordsAllViewDataMapper import com.example.util.simpletimetracker.feature_records_all.model.RecordsAllSortOrder import com.example.util.simpletimetracker.feature_records_all.viewData.RecordsAllSortOrderViewData +import com.example.util.simpletimetracker.feature_views.TransitionNames 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.RecordsAllParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordFromRecordsAllParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordsAllParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -65,8 +65,7 @@ class RecordsAllViewModel @Inject constructor( ) ).let { params -> router.navigate( - screen = Screen.CHANGE_RECORD_FROM_RECORDS_ALL, - data = params, + data = ChangeRecordFromRecordsAllParams(params), sharedElements = sharedElements ) } diff --git a/features/feature_running_records/src/main/java/com/example/util/simpletimetracker/feature_running_records/viewModel/RunningRecordsViewModel.kt b/features/feature_running_records/src/main/java/com/example/util/simpletimetracker/feature_running_records/viewModel/RunningRecordsViewModel.kt index ca20a8f7..fc308088 100644 --- a/features/feature_running_records/src/main/java/com/example/util/simpletimetracker/feature_running_records/viewModel/RunningRecordsViewModel.kt +++ b/features/feature_running_records/src/main/java/com/example/util/simpletimetracker/feature_running_records/viewModel/RunningRecordsViewModel.kt @@ -4,22 +4,21 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType -import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData import com.example.util.simpletimetracker.core.extension.toParams import com.example.util.simpletimetracker.core.interactor.AddRunningRecordMediator import com.example.util.simpletimetracker.core.interactor.RemoveRunningRecordMediator -import com.example.util.simpletimetracker.feature_views.TransitionNames -import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData import com.example.util.simpletimetracker.domain.interactor.RunningRecordInteractor +import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType +import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData +import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData import com.example.util.simpletimetracker.feature_running_records.interactor.RunningRecordsViewDataInteractor import com.example.util.simpletimetracker.feature_running_records.viewData.RunningRecordTypeAddViewData import com.example.util.simpletimetracker.feature_running_records.viewData.RunningRecordViewData +import com.example.util.simpletimetracker.feature_views.TransitionNames 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.ChangeRunningRecordParams -import com.example.util.simpletimetracker.navigation.params.RecordTagSelectionParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRecordTypeParams +import com.example.util.simpletimetracker.navigation.params.screen.ChangeRunningRecordParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSelectionParams import kotlinx.coroutines.Job import kotlinx.coroutines.cancelAndJoin import kotlinx.coroutines.delay @@ -53,7 +52,6 @@ class RunningRecordsViewModel @Inject constructor( fun onRecordTypeLongClick(item: RecordTypeViewData, sharedElements: Map) { router.navigate( - screen = Screen.CHANGE_RECORD_TYPE, data = ChangeRecordTypeParams.Change( transitionName = TransitionNames.RECORD_TYPE + item.id, id = item.id, @@ -74,7 +72,6 @@ class RunningRecordsViewModel @Inject constructor( fun onAddRecordTypeClick(item: RunningRecordTypeAddViewData) { router.navigate( - screen = Screen.CHANGE_RECORD_TYPE, data = ChangeRecordTypeParams.New( sizePreview = ChangeRecordTypeParams.SizePreview( width = item.width, @@ -95,7 +92,6 @@ class RunningRecordsViewModel @Inject constructor( fun onRunningRecordLongClick(item: RunningRecordViewData, sharedElements: Map) { router.navigate( - screen = Screen.CHANGE_RECORD_RUNNING, data = ChangeRunningRecordParams( id = item.id, preview = ChangeRunningRecordParams.Preview( @@ -126,10 +122,7 @@ class RunningRecordsViewModel @Inject constructor( } private fun showTagSelection(typeId: Long) { - router.navigate( - screen = Screen.RECORD_TAG_SELECTION_DIALOG, - data = RecordTagSelectionParams(typeId) - ) + router.navigate(RecordTagSelectionParams(typeId)) } private fun updateRunningRecords() = viewModelScope.launch { diff --git a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/view/SettingsFragment.kt b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/view/SettingsFragment.kt index 77bca1ff..13ceca59 100644 --- a/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/view/SettingsFragment.kt +++ b/features/feature_settings/src/main/java/com/example/util/simpletimetracker/feature_settings/view/SettingsFragment.kt @@ -16,7 +16,7 @@ import com.example.util.simpletimetracker.feature_settings.viewData.FirstDayOfWe import com.example.util.simpletimetracker.feature_settings.viewModel.SettingsViewModel import com.example.util.simpletimetracker.feature_views.extension.setOnClick import com.example.util.simpletimetracker.feature_views.extension.visible -import com.example.util.simpletimetracker.navigation.params.CsvExportSettingsParams +import com.example.util.simpletimetracker.navigation.params.screen.CsvExportSettingsParams import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject import com.example.util.simpletimetracker.feature_settings.databinding.SettingsFragmentBinding as Binding 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 5bf14f22..52d301a9 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,9 +15,12 @@ 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.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.screen.ArchiveParams +import com.example.util.simpletimetracker.navigation.params.screen.CardOrderDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.CardSizeDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.CategoriesParams +import com.example.util.simpletimetracker.navigation.params.screen.CsvExportSettingDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DurationDialogParams import com.example.util.simpletimetracker.navigation.params.action.OpenMarketParams import com.example.util.simpletimetracker.navigation.params.action.SendEmailParams import com.example.util.simpletimetracker.navigation.params.notification.ToastParams @@ -161,7 +164,7 @@ class SettingsViewModel @Inject constructor( } fun onExportCsvClick() { - router.navigate(Screen.CSV_EXPORT_SETTINGS_DIALOG) + router.navigate(CsvExportSettingDialogParams) } fun onRateClick() { @@ -234,7 +237,6 @@ class SettingsViewModel @Inject constructor( fun onInactivityReminderClicked() { viewModelScope.launch { router.navigate( - Screen.DURATION_DIALOG, DurationDialogParams( tag = INACTIVITY_DURATION_DIALOG_TAG, duration = prefsInteractor.getInactivityReminderDuration() @@ -281,15 +283,15 @@ class SettingsViewModel @Inject constructor( } fun onChangeCardSizeClick() { - router.navigate(Screen.CARD_SIZE_DIALOG) + router.navigate(CardSizeDialogParams) } fun onEditCategoriesClick() { - router.navigate(Screen.CATEGORIES) + router.navigate(CategoriesParams) } fun onArchiveClick() { - router.navigate(Screen.ARCHIVE) + router.navigate(ArchiveParams) } fun onDurationSet(tag: String?, duration: Long) { @@ -318,7 +320,6 @@ class SettingsViewModel @Inject constructor( private fun openCardOrderDialog(cardOrder: CardOrder) { router.navigate( - Screen.CARD_ORDER_DIALOG, CardOrderDialogParams(cardOrder) ) } diff --git a/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/adapter/StatisticsContainerAdapter.kt b/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/adapter/StatisticsContainerAdapter.kt index f8c0ff03..43e9f964 100644 --- a/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/adapter/StatisticsContainerAdapter.kt +++ b/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/adapter/StatisticsContainerAdapter.kt @@ -3,7 +3,7 @@ package com.example.util.simpletimetracker.feature_statistics.adapter import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter import com.example.util.simpletimetracker.feature_statistics.view.StatisticsFragment -import com.example.util.simpletimetracker.navigation.params.StatisticsParams +import com.example.util.simpletimetracker.navigation.params.screen.StatisticsParams class StatisticsContainerAdapter( fragment: Fragment diff --git a/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/view/StatisticsFragment.kt b/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/view/StatisticsFragment.kt index 4a5a7bb8..5b5a4ff6 100644 --- a/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/view/StatisticsFragment.kt +++ b/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/view/StatisticsFragment.kt @@ -20,7 +20,7 @@ import com.example.util.simpletimetracker.feature_statistics.adapter.createStati import com.example.util.simpletimetracker.feature_statistics.extra.StatisticsExtra import com.example.util.simpletimetracker.feature_statistics.viewModel.StatisticsSettingsViewModel import com.example.util.simpletimetracker.feature_statistics.viewModel.StatisticsViewModel -import com.example.util.simpletimetracker.navigation.params.StatisticsParams +import com.example.util.simpletimetracker.navigation.params.screen.StatisticsParams import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject import com.example.util.simpletimetracker.feature_statistics.databinding.StatisticsFragmentBinding as Binding diff --git a/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsContainerViewModel.kt b/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsContainerViewModel.kt index ffc6e148..10fec97a 100644 --- a/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsContainerViewModel.kt +++ b/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsContainerViewModel.kt @@ -14,9 +14,8 @@ import com.example.util.simpletimetracker.domain.extension.orZero import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor import com.example.util.simpletimetracker.domain.model.RangeLength import com.example.util.simpletimetracker.navigation.Router -import com.example.util.simpletimetracker.navigation.Screen -import com.example.util.simpletimetracker.navigation.params.DateTimeDialogParams -import com.example.util.simpletimetracker.navigation.params.DateTimeDialogType +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType import kotlinx.coroutines.launch import javax.inject.Inject @@ -94,7 +93,6 @@ class StatisticsContainerViewModel @Inject constructor( ) router.navigate( - Screen.DATE_TIME_DIALOG, DateTimeDialogParams( tag = DATE_TAG, type = DateTimeDialogType.DATE, diff --git a/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsViewModel.kt b/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsViewModel.kt index c5c0e90b..7e79747a 100644 --- a/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsViewModel.kt +++ b/features/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsViewModel.kt @@ -4,20 +4,20 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType -import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData -import com.example.util.simpletimetracker.feature_base_adapter.statistics.StatisticsViewData import com.example.util.simpletimetracker.core.extension.toParams -import com.example.util.simpletimetracker.feature_views.TransitionNames import com.example.util.simpletimetracker.domain.extension.orZero import com.example.util.simpletimetracker.domain.model.ChartFilterType import com.example.util.simpletimetracker.domain.model.RangeLength +import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType +import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData +import com.example.util.simpletimetracker.feature_base_adapter.statistics.StatisticsViewData import com.example.util.simpletimetracker.feature_statistics.extra.StatisticsExtra import com.example.util.simpletimetracker.feature_statistics.interactor.StatisticsViewDataInteractor +import com.example.util.simpletimetracker.feature_views.TransitionNames import com.example.util.simpletimetracker.navigation.Router -import com.example.util.simpletimetracker.navigation.Screen -import com.example.util.simpletimetracker.navigation.params.StatisticsDetailParams -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.ChartFilterDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.StatisticsDetailParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -50,7 +50,7 @@ class StatisticsViewModel @Inject constructor( } fun onFilterClick() { - router.navigate(Screen.CHART_FILTER_DIALOG) + router.navigate(ChartFilterDialogParams) } fun onItemClick(item: StatisticsViewData, sharedElements: Map) { @@ -63,7 +63,6 @@ class StatisticsViewModel @Inject constructor( } router.navigate( - screen = Screen.STATISTICS_DETAIL, data = StatisticsDetailParams( transitionName = TransitionNames.STATISTICS_DETAIL + item.id, filter = TypesFilterParams( diff --git a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailChartInteractor.kt b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailChartInteractor.kt index 4ba4ebf7..2556610b 100644 --- a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailChartInteractor.kt +++ b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailChartInteractor.kt @@ -14,7 +14,7 @@ import com.example.util.simpletimetracker.feature_statistics_detail.model.ChartB import com.example.util.simpletimetracker.feature_statistics_detail.model.ChartGrouping import com.example.util.simpletimetracker.feature_statistics_detail.model.ChartLength import com.example.util.simpletimetracker.feature_statistics_detail.viewData.StatisticsDetailChartViewData -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import java.util.Calendar import javax.inject.Inject diff --git a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailPreviewInteractor.kt b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailPreviewInteractor.kt index 97a41bf3..4b67004c 100644 --- a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailPreviewInteractor.kt +++ b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailPreviewInteractor.kt @@ -7,7 +7,7 @@ import com.example.util.simpletimetracker.domain.interactor.RecordTypeInteractor import com.example.util.simpletimetracker.domain.model.ChartFilterType import com.example.util.simpletimetracker.feature_statistics_detail.mapper.StatisticsDetailViewDataMapper import com.example.util.simpletimetracker.feature_statistics_detail.viewData.StatisticsDetailPreviewMoreViewData -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import javax.inject.Inject class StatisticsDetailPreviewInteractor @Inject constructor( diff --git a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailSplitChartInteractor.kt b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailSplitChartInteractor.kt index d84f8480..f12920cb 100644 --- a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailSplitChartInteractor.kt +++ b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailSplitChartInteractor.kt @@ -13,7 +13,7 @@ import com.example.util.simpletimetracker.domain.model.Record import com.example.util.simpletimetracker.feature_statistics_detail.mapper.StatisticsDetailViewDataMapper import com.example.util.simpletimetracker.feature_statistics_detail.model.SplitChartGrouping import com.example.util.simpletimetracker.feature_statistics_detail.viewData.StatisticsDetailChartViewData -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import java.util.Calendar import javax.inject.Inject diff --git a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailStatsInteractor.kt b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailStatsInteractor.kt index 334c9625..b56c66d1 100644 --- a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailStatsInteractor.kt +++ b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/interactor/StatisticsDetailStatsInteractor.kt @@ -10,7 +10,7 @@ import com.example.util.simpletimetracker.domain.interactor.RecordTypeInteractor import com.example.util.simpletimetracker.domain.model.RangeLength import com.example.util.simpletimetracker.feature_statistics_detail.mapper.StatisticsDetailViewDataMapper import com.example.util.simpletimetracker.feature_statistics_detail.viewData.StatisticsDetailStatsViewData -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import javax.inject.Inject class StatisticsDetailStatsInteractor @Inject constructor( diff --git a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/view/StatisticsDetailFragment.kt b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/view/StatisticsDetailFragment.kt index 52e457b8..46db5fd1 100644 --- a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/view/StatisticsDetailFragment.kt +++ b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/view/StatisticsDetailFragment.kt @@ -27,8 +27,8 @@ import com.example.util.simpletimetracker.feature_statistics_detail.viewData.Sta import com.example.util.simpletimetracker.feature_statistics_detail.viewData.StatisticsDetailPreviewViewData import com.example.util.simpletimetracker.feature_statistics_detail.viewData.StatisticsDetailStatsViewData import com.example.util.simpletimetracker.feature_statistics_detail.viewModel.StatisticsDetailViewModel -import com.example.util.simpletimetracker.navigation.params.StatisticsDetailParams -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.StatisticsDetailParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager @@ -218,10 +218,8 @@ class StatisticsDetailFragment : companion object { private const val ARGS_PARAMS = "args_params" - fun createBundle(data: Any?): Bundle = Bundle().apply { - when (data) { - is StatisticsDetailParams -> putParcelable(ARGS_PARAMS, data) - } + fun createBundle(data: StatisticsDetailParams): Bundle = Bundle().apply { + putParcelable(ARGS_PARAMS, data) } } } diff --git a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/viewModel/StatisticsDetailViewModel.kt b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/viewModel/StatisticsDetailViewModel.kt index 0f7e116a..a1e40dfe 100644 --- a/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/viewModel/StatisticsDetailViewModel.kt +++ b/features/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/viewModel/StatisticsDetailViewModel.kt @@ -29,13 +29,12 @@ import com.example.util.simpletimetracker.feature_statistics_detail.viewData.Sta import com.example.util.simpletimetracker.feature_statistics_detail.viewData.StatisticsDetailSplitGroupingViewData import com.example.util.simpletimetracker.feature_statistics_detail.viewData.StatisticsDetailStatsViewData import com.example.util.simpletimetracker.navigation.Router -import com.example.util.simpletimetracker.navigation.Screen -import com.example.util.simpletimetracker.navigation.params.DateTimeDialogParams -import com.example.util.simpletimetracker.navigation.params.DateTimeDialogType -import com.example.util.simpletimetracker.navigation.params.RecordsAllParams -import com.example.util.simpletimetracker.navigation.params.StatisticsDetailParams -import com.example.util.simpletimetracker.navigation.params.TypesFilterDialogParams -import com.example.util.simpletimetracker.navigation.params.TypesFilterParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.DateTimeDialogType +import com.example.util.simpletimetracker.navigation.params.screen.RecordsAllParams +import com.example.util.simpletimetracker.navigation.params.screen.StatisticsDetailParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterDialogParams +import com.example.util.simpletimetracker.navigation.params.screen.TypesFilterParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -105,10 +104,7 @@ class StatisticsDetailViewModel @Inject constructor( } fun onFilterClick() { - router.navigate( - Screen.TYPES_FILTER_DIALOG, - TypesFilterDialogParams(typesFilter) - ) + router.navigate(TypesFilterDialogParams(typesFilter)) } fun onTypesFilterSelected(newFilter: TypesFilterParams) { @@ -148,7 +144,6 @@ class StatisticsDetailViewModel @Inject constructor( val range = timeMapper.getRangeStartAndEnd(rangeLength, rangePosition, firstDayOfWeek) router.navigate( - Screen.RECORDS_ALL, RecordsAllParams( filter = typesFilter, rangeStart = range.first, @@ -207,7 +202,6 @@ class StatisticsDetailViewModel @Inject constructor( ) router.navigate( - Screen.DATE_TIME_DIALOG, DateTimeDialogParams( tag = DATE_TAG, type = DateTimeDialogType.DATE, diff --git a/features/feature_tag_selection/src/main/java/com/example/util/simpletimetracker/feature_tag_selection/view/RecordTagSelectionFragment.kt b/features/feature_tag_selection/src/main/java/com/example/util/simpletimetracker/feature_tag_selection/view/RecordTagSelectionFragment.kt index ada32ed9..07e56c1f 100644 --- a/features/feature_tag_selection/src/main/java/com/example/util/simpletimetracker/feature_tag_selection/view/RecordTagSelectionFragment.kt +++ b/features/feature_tag_selection/src/main/java/com/example/util/simpletimetracker/feature_tag_selection/view/RecordTagSelectionFragment.kt @@ -15,7 +15,7 @@ import com.example.util.simpletimetracker.core.di.BaseViewModelFactory import com.example.util.simpletimetracker.core.dialog.OnTagSelectedListener import com.example.util.simpletimetracker.core.extension.getAllFragments import com.example.util.simpletimetracker.feature_tag_selection.viewModel.RecordTagSelectionViewModel -import com.example.util.simpletimetracker.navigation.params.RecordTagSelectionParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSelectionParams import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexboxLayoutManager diff --git a/features/feature_tag_selection/src/main/java/com/example/util/simpletimetracker/feature_tag_selection/viewModel/RecordTagSelectionViewModel.kt b/features/feature_tag_selection/src/main/java/com/example/util/simpletimetracker/feature_tag_selection/viewModel/RecordTagSelectionViewModel.kt index f9977681..fcbd10aa 100644 --- a/features/feature_tag_selection/src/main/java/com/example/util/simpletimetracker/feature_tag_selection/viewModel/RecordTagSelectionViewModel.kt +++ b/features/feature_tag_selection/src/main/java/com/example/util/simpletimetracker/feature_tag_selection/viewModel/RecordTagSelectionViewModel.kt @@ -10,7 +10,7 @@ import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderView import com.example.util.simpletimetracker.core.extension.set import com.example.util.simpletimetracker.core.interactor.AddRunningRecordMediator import com.example.util.simpletimetracker.feature_tag_selection.interactor.RecordTagSelectionViewDataInteractor -import com.example.util.simpletimetracker.navigation.params.RecordTagSelectionParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSelectionParams import kotlinx.coroutines.launch import javax.inject.Inject diff --git a/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/universal/activity/viewModel/WidgetUniversalViewModel.kt b/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/universal/activity/viewModel/WidgetUniversalViewModel.kt index 29c1116b..b12a9a7a 100644 --- a/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/universal/activity/viewModel/WidgetUniversalViewModel.kt +++ b/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/universal/activity/viewModel/WidgetUniversalViewModel.kt @@ -4,19 +4,18 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope -import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType -import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData import com.example.util.simpletimetracker.core.interactor.AddRunningRecordMediator import com.example.util.simpletimetracker.core.interactor.RemoveRunningRecordMediator import com.example.util.simpletimetracker.core.mapper.RecordTypeViewDataMapper -import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor import com.example.util.simpletimetracker.domain.interactor.RecordTypeInteractor import com.example.util.simpletimetracker.domain.interactor.RunningRecordInteractor +import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType +import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData +import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData import com.example.util.simpletimetracker.feature_widget.universal.mapper.WidgetUniversalViewDataMapper import com.example.util.simpletimetracker.navigation.Router -import com.example.util.simpletimetracker.navigation.Screen -import com.example.util.simpletimetracker.navigation.params.RecordTagSelectionParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSelectionParams import kotlinx.coroutines.launch import javax.inject.Inject @@ -65,10 +64,7 @@ class WidgetUniversalViewModel @Inject constructor( } private fun showTagSelection(typeId: Long) { - router.navigate( - screen = Screen.RECORD_TAG_SELECTION_DIALOG, - data = RecordTagSelectionParams(typeId) - ) + router.navigate(RecordTagSelectionParams(typeId)) } private fun updateRecordTypesViewData() = viewModelScope.launch { diff --git a/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/widget/WidgetProvider.kt b/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/widget/WidgetProvider.kt index 495f520d..d62847ac 100644 --- a/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/widget/WidgetProvider.kt +++ b/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/widget/WidgetProvider.kt @@ -32,7 +32,7 @@ import com.example.util.simpletimetracker.domain.interactor.RunningRecordInterac import com.example.util.simpletimetracker.domain.model.RecordType import com.example.util.simpletimetracker.domain.model.RunningRecord import com.example.util.simpletimetracker.feature_widget.R -import com.example.util.simpletimetracker.navigation.params.RecordTagSelectionParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSelectionParams import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/widget/WidgetTagSelectionActivity.kt b/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/widget/WidgetTagSelectionActivity.kt index c4ee46bf..22c3ad79 100644 --- a/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/widget/WidgetTagSelectionActivity.kt +++ b/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/widget/WidgetTagSelectionActivity.kt @@ -10,7 +10,7 @@ import com.example.util.simpletimetracker.core.manager.ThemeManager import com.example.util.simpletimetracker.feature_widget.R import com.example.util.simpletimetracker.navigation.Screen import com.example.util.simpletimetracker.navigation.ScreenFactory -import com.example.util.simpletimetracker.navigation.params.RecordTagSelectionParams +import com.example.util.simpletimetracker.navigation.params.screen.RecordTagSelectionParams import dagger.hilt.android.AndroidEntryPoint import javax.inject.Inject diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/NavigationData.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/NavigationData.kt new file mode 100644 index 00000000..60431ebc --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/NavigationData.kt @@ -0,0 +1,8 @@ +package com.example.util.simpletimetracker.navigation + +import com.example.util.simpletimetracker.navigation.bundleCreator.BundleCreator + +data class NavigationData( + val navId: Int, + val bundleCreator: BundleCreator, +) \ 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 dab68679..94d6aa4b 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 @@ -5,6 +5,7 @@ import android.content.Intent import androidx.activity.ComponentActivity import com.example.util.simpletimetracker.navigation.params.action.ActionParams import com.example.util.simpletimetracker.navigation.params.notification.NotificationParams +import com.example.util.simpletimetracker.navigation.params.screen.ScreenParams interface Router { @@ -13,8 +14,7 @@ interface Router { fun bind(activity: Activity) fun navigate( - screen: Screen, - data: Any? = null, + data: ScreenParams, sharedElements: Map? = null ) diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/Screen.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/Screen.kt index 6ec772ff..6404f586 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/Screen.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/Screen.kt @@ -1,27 +1,6 @@ package com.example.util.simpletimetracker.navigation +@Deprecated("remove and use data class") enum class Screen { - CHANGE_RECORD_TYPE, - CHANGE_RECORD_RUNNING, - CHANGE_RECORD_FROM_MAIN, - CHANGE_RECORD_FROM_RECORDS_ALL, - STATISTICS_DETAIL, - RECORDS_ALL, - CATEGORIES, - CHANGE_CATEGORY, - CHANGE_RECORD_TAG, - ARCHIVE, RECORD_TAG_SELECTION, - - STANDARD_DIALOG, - DATE_TIME_DIALOG, - DURATION_DIALOG, - CHART_FILTER_DIALOG, - TYPES_FILTER_DIALOG, - CARD_SIZE_DIALOG, - CARD_ORDER_DIALOG, - EMOJI_SELECTION_DIALOG, - ARCHIVE_DIALOG, - RECORD_TAG_SELECTION_DIALOG, - CSV_EXPORT_SETTINGS_DIALOG, } \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/ScreenResolver.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/ScreenResolver.kt index 9ee94fda..2bf2911e 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/ScreenResolver.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/ScreenResolver.kt @@ -1,13 +1,13 @@ package com.example.util.simpletimetracker.navigation import androidx.navigation.NavController +import com.example.util.simpletimetracker.navigation.params.screen.ScreenParams interface ScreenResolver { fun navigate( navController: NavController?, - screen: Screen, - data: Any?, + data: ScreenParams, sharedElements: Map? ) } \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/bundleCreator/BundleCreator.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/bundleCreator/BundleCreator.kt new file mode 100644 index 00000000..c8d158f5 --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/bundleCreator/BundleCreator.kt @@ -0,0 +1,15 @@ +package com.example.util.simpletimetracker.navigation.bundleCreator + +import android.os.Bundle + +abstract class BundleCreator { + + abstract fun createBundle(data: Any): Bundle? + + companion object { + + fun empty() = object : BundleCreator() { + override fun createBundle(data: Any): Bundle? = null + } + } +} \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/bundleCreator/BundleCreatorDelegate.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/bundleCreator/BundleCreatorDelegate.kt new file mode 100644 index 00000000..106ff1f6 --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/bundleCreator/BundleCreatorDelegate.kt @@ -0,0 +1,14 @@ +package com.example.util.simpletimetracker.navigation.bundleCreator + +import android.os.Bundle +import com.example.util.simpletimetracker.navigation.params.screen.ScreenParams + +inline fun bundleCreatorDelegate( + crossinline bundleCreator: ((T) -> Bundle?), +) = object : BundleCreator() { + + @Suppress("UNCHECKED_CAST") + override fun createBundle(data: Any): Bundle? { + return bundleCreator(data as T) + } +} \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/NavigationData.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/NavigationData.kt deleted file mode 100644 index 0111e8fa..00000000 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/NavigationData.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.example.util.simpletimetracker.navigation.params - -import android.os.Bundle - -data class NavigationData( - val navId: Int, - val bundleProvider: ((Any?) -> Bundle)?, -) \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordsParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordsParams.kt deleted file mode 100644 index d4a414a4..00000000 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordsParams.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.example.util.simpletimetracker.navigation.params - -data class RecordsParams( - val shift: Int = 0 -) \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/StatisticsParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/StatisticsParams.kt deleted file mode 100644 index 22cc52ab..00000000 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/StatisticsParams.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.example.util.simpletimetracker.navigation.params - -data class StatisticsParams( - val shift: Int = 0 -) \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/TypesFilterDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/TypesFilterDialogParams.kt deleted file mode 100644 index 7667d17b..00000000 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/TypesFilterDialogParams.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.example.util.simpletimetracker.navigation.params - -data class TypesFilterDialogParams( - val filter: TypesFilterParams -) \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ArchiveDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ArchiveDialogParams.kt similarity index 63% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ArchiveDialogParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ArchiveDialogParams.kt index 0ba8cd1d..fa090d32 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ArchiveDialogParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ArchiveDialogParams.kt @@ -1,9 +1,9 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import kotlinx.parcelize.Parcelize -sealed class ArchiveDialogParams : Parcelable { +sealed class ArchiveDialogParams : Parcelable, ScreenParams { @Parcelize data class Activity(val id: Long) : ArchiveDialogParams() diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ArchiveParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ArchiveParams.kt new file mode 100644 index 00000000..f571d5c0 --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ArchiveParams.kt @@ -0,0 +1,3 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +object ArchiveParams: ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/CardOrderDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CardOrderDialogParams.kt similarity index 70% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/CardOrderDialogParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CardOrderDialogParams.kt index 36cfd041..45590e02 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/CardOrderDialogParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CardOrderDialogParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import com.example.util.simpletimetracker.domain.model.CardOrder @@ -7,4 +7,4 @@ import kotlinx.parcelize.Parcelize @Parcelize data class CardOrderDialogParams( val initialOrder: CardOrder = CardOrder.MANUAL -) : Parcelable \ No newline at end of file +) : Parcelable, ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CardSizeDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CardSizeDialogParams.kt new file mode 100644 index 00000000..a397ade9 --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CardSizeDialogParams.kt @@ -0,0 +1,3 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +object CardSizeDialogParams: ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CategoriesParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CategoriesParams.kt new file mode 100644 index 00000000..c4f9952f --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CategoriesParams.kt @@ -0,0 +1,3 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +object CategoriesParams: ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeCategoryParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeCategoryParams.kt new file mode 100644 index 00000000..dfecdbe2 --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeCategoryParams.kt @@ -0,0 +1,5 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +data class ChangeCategoryParams( + val data: ChangeTagData, +) : ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordFromMainParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordFromMainParams.kt new file mode 100644 index 00000000..f3e7d5ab --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordFromMainParams.kt @@ -0,0 +1,5 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +data class ChangeRecordFromMainParams( + override val params: ChangeRecordParams, +) : ChangeRecordsFromScreen \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordFromRecordsAllParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordFromRecordsAllParams.kt new file mode 100644 index 00000000..2c596278 --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordFromRecordsAllParams.kt @@ -0,0 +1,5 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +data class ChangeRecordFromRecordsAllParams( + override val params: ChangeRecordParams, +) : ChangeRecordsFromScreen \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeRecordParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordParams.kt similarity index 94% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeRecordParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordParams.kt index 577c7cae..e4d72ef0 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeRecordParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import androidx.annotation.ColorInt diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordTagParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordTagParams.kt new file mode 100644 index 00000000..82f4bf0d --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordTagParams.kt @@ -0,0 +1,5 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +data class ChangeRecordTagParams( + val data: ChangeTagData, +) : ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeRecordTypeParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordTypeParams.kt similarity index 86% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeRecordTypeParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordTypeParams.kt index db58bbf2..2d641d75 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeRecordTypeParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordTypeParams.kt @@ -1,10 +1,10 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import androidx.annotation.ColorInt import kotlinx.parcelize.Parcelize -sealed class ChangeRecordTypeParams : Parcelable { +sealed class ChangeRecordTypeParams : ScreenParams, Parcelable { abstract val sizePreview: SizePreview @Parcelize diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordsFromScreen.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordsFromScreen.kt new file mode 100644 index 00000000..e4dbb8a9 --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRecordsFromScreen.kt @@ -0,0 +1,6 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +interface ChangeRecordsFromScreen : ScreenParams { + + val params: ChangeRecordParams +} \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeRunningRecordParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRunningRecordParams.kt similarity index 83% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeRunningRecordParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRunningRecordParams.kt index 56c6134c..bcd6b739 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeRunningRecordParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeRunningRecordParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import androidx.annotation.ColorInt @@ -8,7 +8,7 @@ import kotlinx.parcelize.Parcelize data class ChangeRunningRecordParams( val id: Long = 0, val preview: Preview? = null -) : Parcelable { +) : Parcelable, ScreenParams { @Parcelize data class Preview( diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeCategoryParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeTagData.kt similarity index 70% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeCategoryParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeTagData.kt index b2a2932d..34928453 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/ChangeCategoryParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChangeTagData.kt @@ -1,16 +1,16 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import androidx.annotation.ColorInt import kotlinx.parcelize.Parcelize -sealed class ChangeCategoryParams : Parcelable { +sealed class ChangeTagData : Parcelable { @Parcelize data class Change( val transitionName: String, val id: Long, val preview: Preview? = null - ) : ChangeCategoryParams() { + ) : ChangeTagData() { @Parcelize data class Preview( @@ -21,5 +21,5 @@ sealed class ChangeCategoryParams : Parcelable { } @Parcelize - object New : ChangeCategoryParams() + object New : ChangeTagData() } diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChartFilterDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChartFilterDialogParams.kt new file mode 100644 index 00000000..f6269dc9 --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/ChartFilterDialogParams.kt @@ -0,0 +1,3 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +object ChartFilterDialogParams: ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CsvExportSettingDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CsvExportSettingDialogParams.kt new file mode 100644 index 00000000..da1c9ea9 --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CsvExportSettingDialogParams.kt @@ -0,0 +1,3 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +object CsvExportSettingDialogParams: ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/CsvExportSettingsParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CsvExportSettingsParams.kt similarity index 80% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/CsvExportSettingsParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CsvExportSettingsParams.kt index dc4c22a1..436271de 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/CsvExportSettingsParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/CsvExportSettingsParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import kotlinx.parcelize.Parcelize diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/DateTimeDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/DateTimeDialogParams.kt similarity index 80% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/DateTimeDialogParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/DateTimeDialogParams.kt index 8083272f..5919d42a 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/DateTimeDialogParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/DateTimeDialogParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import com.example.util.simpletimetracker.domain.model.DayOfWeek @@ -11,4 +11,4 @@ data class DateTimeDialogParams( val type: DateTimeDialogType = DateTimeDialogType.DATETIME(), val timestamp: Long = 0, val firstDayOfWeek: DayOfWeek = DayOfWeek.MONDAY, -) : Parcelable \ No newline at end of file +) : Parcelable, ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/DateTimeDialogType.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/DateTimeDialogType.kt similarity index 82% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/DateTimeDialogType.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/DateTimeDialogType.kt index e9538cb9..4393321a 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/DateTimeDialogType.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/DateTimeDialogType.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import kotlinx.parcelize.Parcelize diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/DurationDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/DurationDialogParams.kt similarity index 50% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/DurationDialogParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/DurationDialogParams.kt index 53f57854..a997d828 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/DurationDialogParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/DurationDialogParams.kt @@ -1,6 +1,6 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen data class DurationDialogParams( val tag: String? = null, val duration: Long -) \ No newline at end of file +) : ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/EmojiSelectionDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/EmojiSelectionDialogParams.kt similarity index 73% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/EmojiSelectionDialogParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/EmojiSelectionDialogParams.kt index 780b4f35..2b84b34a 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/EmojiSelectionDialogParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/EmojiSelectionDialogParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.graphics.Color import android.os.Parcelable @@ -9,4 +9,4 @@ import kotlinx.parcelize.Parcelize data class EmojiSelectionDialogParams( @ColorInt val color: Int = Color.BLACK, val emojiCodes: List = emptyList() -) : Parcelable \ No newline at end of file +) : Parcelable, ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordTagSelectionParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordTagSelectionParams.kt similarity index 59% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordTagSelectionParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordTagSelectionParams.kt index f8e8c535..4112046c 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordTagSelectionParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordTagSelectionParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import kotlinx.parcelize.Parcelize @@ -6,4 +6,4 @@ import kotlinx.parcelize.Parcelize @Parcelize data class RecordTagSelectionParams( val typeId: Long = 0L -) : Parcelable +) : Parcelable, ScreenParams diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordTypeIconParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordTypeIconParams.kt similarity index 82% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordTypeIconParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordTypeIconParams.kt index 6f7b728c..a712f977 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordTypeIconParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordTypeIconParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import androidx.annotation.DrawableRes diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordsAllParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordsAllParams.kt similarity index 69% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordsAllParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordsAllParams.kt index 7a2aaf51..44ba2528 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/RecordsAllParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordsAllParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import kotlinx.parcelize.Parcelize @@ -8,4 +8,4 @@ data class RecordsAllParams( val filter: TypesFilterParams = TypesFilterParams(), val rangeStart: Long = 0L, val rangeEnd: Long = 0L -) : Parcelable \ No newline at end of file +) : Parcelable, ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordsParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordsParams.kt new file mode 100644 index 00000000..30a23a82 --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/RecordsParams.kt @@ -0,0 +1,5 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +data class RecordsParams( + val shift: Int = 0 +) \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/StandardDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/StandardDialogParams.kt similarity index 75% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/StandardDialogParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/StandardDialogParams.kt index c81e7c13..4d36fa90 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/StandardDialogParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/StandardDialogParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import kotlinx.parcelize.Parcelize @@ -11,4 +11,4 @@ data class StandardDialogParams( val message: String = "", val btnPositive: String = "", val btnNegative: String = "" -) : Parcelable \ No newline at end of file +) : Parcelable, ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/StatisticsDetailParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/StatisticsDetailParams.kt similarity index 81% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/StatisticsDetailParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/StatisticsDetailParams.kt index 90178e1a..13f83724 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/StatisticsDetailParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/StatisticsDetailParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import androidx.annotation.ColorInt @@ -9,7 +9,7 @@ data class StatisticsDetailParams( val transitionName: String = "", val filter: TypesFilterParams = TypesFilterParams(), val preview: Preview? = null -) : Parcelable { +) : Parcelable, ScreenParams { @Parcelize data class Preview( diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/StatisticsParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/StatisticsParams.kt new file mode 100644 index 00000000..f337da8f --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/StatisticsParams.kt @@ -0,0 +1,5 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +data class StatisticsParams( + val shift: Int = 0 +) \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/TypesFilterDialogParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/TypesFilterDialogParams.kt new file mode 100644 index 00000000..f285880c --- /dev/null +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/TypesFilterDialogParams.kt @@ -0,0 +1,5 @@ +package com.example.util.simpletimetracker.navigation.params.screen + +data class TypesFilterDialogParams( + val filter: TypesFilterParams +) : ScreenParams \ No newline at end of file diff --git a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/TypesFilterParams.kt b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/TypesFilterParams.kt similarity index 90% rename from navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/TypesFilterParams.kt rename to navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/TypesFilterParams.kt index 62094779..40ef1790 100644 --- a/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/TypesFilterParams.kt +++ b/navigation/src/main/java/com/example/util/simpletimetracker/navigation/params/screen/TypesFilterParams.kt @@ -1,4 +1,4 @@ -package com.example.util.simpletimetracker.navigation.params +package com.example.util.simpletimetracker.navigation.params.screen import android.os.Parcelable import com.example.util.simpletimetracker.domain.model.ChartFilterType