diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 31e40438..ba85ce2d 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -12,46 +12,22 @@ tools:layout="@layout/main_fragment"> + app:destination="@id/changeRecordTypeFragment"/> + app:destination="@id/changeRecordFragment"/> + app:destination="@id/changeRunningRecordFragment"/> + app:destination="@id/statisticsDetailFragment"/> + app:destination="@id/categoriesFragment"/> + app:destination="@id/archiveFragment"/> + app:destination="@id/recordsAllFragment"/> + app:destination="@id/changeRecordFragment"/> + app:destination="@id/changeCategoryFragment"/> + app:destination="@id/changeRecordTagFragment"/> + + + + + \ No newline at end of file diff --git a/core/src/main/res/anim/copy_fragment_open_enter.xml b/core/src/main/res/anim/copy_fragment_open_enter.xml new file mode 100644 index 00000000..4202d1e5 --- /dev/null +++ b/core/src/main/res/anim/copy_fragment_open_enter.xml @@ -0,0 +1,42 @@ + + + + + + \ No newline at end of file diff --git a/feature_categories/src/main/java/com/example/util/simpletimetracker/feature_categories/view/CategoriesFragment.kt b/feature_categories/src/main/java/com/example/util/simpletimetracker/feature_categories/view/CategoriesFragment.kt index efbdf0f0..04eecf99 100644 --- a/feature_categories/src/main/java/com/example/util/simpletimetracker/feature_categories/view/CategoriesFragment.kt +++ b/feature_categories/src/main/java/com/example/util/simpletimetracker/feature_categories/view/CategoriesFragment.kt @@ -46,7 +46,7 @@ class CategoriesFragment : BaseFragment(R.layout.categories_fragment) { } override fun initUi() { - parentFragment?.postponeEnterTransition() + postponeEnterTransition() rvCategoriesList.apply { layoutManager = FlexboxLayoutManager(requireContext()).apply { @@ -58,7 +58,7 @@ class CategoriesFragment : BaseFragment(R.layout.categories_fragment) { setHasFixedSize(true) viewTreeObserver.addOnPreDrawListener { - parentFragment?.startPostponedEnterTransition() + startPostponedEnterTransition() true } } diff --git a/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordFragment.kt b/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordFragment.kt index 64de4366..94178d3a 100644 --- a/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordFragment.kt +++ b/feature_change_record/src/main/java/com/example/util/simpletimetracker/feature_change_record/view/ChangeRecordFragment.kt @@ -80,7 +80,7 @@ class ChangeRecordFragment : BaseFragment(R.layout.change_record_fragment), override fun initUi() { setPreview() - if (BuildVersions.isLollipopOrHigher()) { + if (BuildVersions.isLollipopOrHigher() && extra !is ChangeRecordParams.New) { sharedElementEnterTransition = TransitionInflater.from(context) .inflateTransition(android.R.transition.move) } diff --git a/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/view/ChangeRecordTypeFragment.kt b/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/view/ChangeRecordTypeFragment.kt index f37b8de0..b1f3f13f 100644 --- a/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/view/ChangeRecordTypeFragment.kt +++ b/feature_change_record_type/src/main/java/com/example/util/simpletimetracker/feature_change_record_type/view/ChangeRecordTypeFragment.kt @@ -108,7 +108,7 @@ class ChangeRecordTypeFragment : BaseFragment(R.layout.change_record_type_fragme override fun initUi() { setPreview() - if (BuildVersions.isLollipopOrHigher()) { + if (BuildVersions.isLollipopOrHigher() && params !is ChangeRecordTypeParams.New) { sharedElementEnterTransition = TransitionInflater.from(context) .inflateTransition(android.R.transition.move) } diff --git a/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/view/RecordsAllFragment.kt b/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/view/RecordsAllFragment.kt index 92b5ff75..9e6e96a5 100644 --- a/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/view/RecordsAllFragment.kt +++ b/feature_records_all/src/main/java/com/example/util/simpletimetracker/feature_records_all/view/RecordsAllFragment.kt @@ -61,14 +61,14 @@ class RecordsAllFragment : BaseFragment(R.layout.records_all_fragment) { } override fun initUi() { - parentFragment?.postponeEnterTransition() + postponeEnterTransition() rvRecordsAllList.apply { layoutManager = LinearLayoutManager(context) adapter = recordsAdapter viewTreeObserver.addOnPreDrawListener { - parentFragment?.startPostponedEnterTransition() + startPostponedEnterTransition() true } } diff --git a/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/view/StatisticsFragment.kt b/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/view/StatisticsFragment.kt index 7b39808a..f51b8775 100644 --- a/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/view/StatisticsFragment.kt +++ b/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/view/StatisticsFragment.kt @@ -8,12 +8,12 @@ import androidx.recyclerview.widget.LinearLayoutManager import com.example.util.simpletimetracker.core.adapter.BaseRecyclerAdapter import com.example.util.simpletimetracker.core.adapter.hint.createHintAdapterDelegate import com.example.util.simpletimetracker.core.adapter.loader.createLoaderAdapterDelegate +import com.example.util.simpletimetracker.core.adapter.statistics.createStatisticsAdapterDelegate import com.example.util.simpletimetracker.core.base.BaseFragment import com.example.util.simpletimetracker.core.di.BaseViewModelFactory import com.example.util.simpletimetracker.core.dialog.ChartFilterDialogListener import com.example.util.simpletimetracker.domain.extension.orZero import com.example.util.simpletimetracker.feature_statistics.R -import com.example.util.simpletimetracker.core.adapter.statistics.createStatisticsAdapterDelegate import com.example.util.simpletimetracker.feature_statistics.adapter.createStatisticsChartAdapterDelegate import com.example.util.simpletimetracker.feature_statistics.adapter.createStatisticsEmptyAdapterDelegate import com.example.util.simpletimetracker.feature_statistics.adapter.createStatisticsInfoAdapterDelegate @@ -22,7 +22,7 @@ import com.example.util.simpletimetracker.feature_statistics.extra.StatisticsExt 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 kotlinx.android.synthetic.main.statistics_fragment.rvStatisticsList +import kotlinx.android.synthetic.main.statistics_fragment.* import javax.inject.Inject class StatisticsFragment : BaseFragment(R.layout.statistics_fragment), @@ -63,9 +63,16 @@ class StatisticsFragment : BaseFragment(R.layout.statistics_fragment), } override fun initUi() { + parentFragment?.postponeEnterTransition() + rvStatisticsList.apply { layoutManager = LinearLayoutManager(context) adapter = statisticsAdapter + + viewTreeObserver.addOnPreDrawListener { + parentFragment?.startPostponedEnterTransition() + true + } } } diff --git a/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsViewModel.kt b/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsViewModel.kt index 6458f5de..55b6ed7e 100644 --- a/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsViewModel.kt +++ b/feature_statistics/src/main/java/com/example/util/simpletimetracker/feature_statistics/viewModel/StatisticsViewModel.kt @@ -6,13 +6,14 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.example.util.simpletimetracker.core.adapter.ViewHolderType import com.example.util.simpletimetracker.core.adapter.loader.LoaderViewData +import com.example.util.simpletimetracker.core.adapter.statistics.StatisticsViewData import com.example.util.simpletimetracker.core.extension.toParams +import com.example.util.simpletimetracker.core.view.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_statistics.extra.StatisticsExtra import com.example.util.simpletimetracker.feature_statistics.interactor.StatisticsViewDataInteractor -import com.example.util.simpletimetracker.core.adapter.statistics.StatisticsViewData import com.example.util.simpletimetracker.navigation.Router import com.example.util.simpletimetracker.navigation.Screen import com.example.util.simpletimetracker.navigation.params.StatisticsDetailParams @@ -64,6 +65,7 @@ class StatisticsViewModel @Inject constructor( router.navigate( screen = Screen.STATISTICS_DETAIL, data = StatisticsDetailParams( + transitionName = TransitionNames.STATISTICS_DETAIL + item.id, filter = TypesFilterParams( selectedIds = listOf(item.id), filterType = filterType diff --git a/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/view/StatisticsDetailFragment.kt b/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/view/StatisticsDetailFragment.kt index 50282c90..a37148b5 100644 --- a/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/view/StatisticsDetailFragment.kt +++ b/feature_statistics_detail/src/main/java/com/example/util/simpletimetracker/feature_statistics_detail/view/StatisticsDetailFragment.kt @@ -78,10 +78,7 @@ class StatisticsDetailFragment : BaseFragment(R.layout.statistics_detail_fragmen .inflateTransition(android.R.transition.move) } - ViewCompat.setTransitionName( - layoutStatisticsDetailItem, - TransitionNames.STATISTICS_DETAIL + params.filter.selectedIds.first() - ) + ViewCompat.setTransitionName(layoutStatisticsDetailItem, params.transitionName) rvStatisticsDetailPreviewItems.apply { layoutManager = FlexboxLayoutManager(requireContext()).apply { 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/StatisticsDetailParams.kt index 65f4e793..daf9f481 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/StatisticsDetailParams.kt @@ -6,6 +6,7 @@ import kotlinx.android.parcel.Parcelize @Parcelize data class StatisticsDetailParams( + val transitionName: String = "", val filter: TypesFilterParams = TypesFilterParams(), val preview: Preview? = null ) : Parcelable {