Skip to content

Commit c30bbad

Browse files
committed
Polish ComparisonFragment
1 parent f1a3a85 commit c30bbad

File tree

1 file changed

+27
-24
lines changed

1 file changed

+27
-24
lines changed

app/src/main/kotlin/com/w2sv/autocrop/ui/screen/comparison/ComparisonFragment.kt

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -37,39 +37,33 @@ class ComparisonFragment : ViewBoundAppFragment<ComparisonBinding>(ComparisonBin
3737

3838
private val viewModel by cropSessionInjectedViewModel<ComparisonViewModel, ComparisonViewModel.Factory>()
3939
private val navArgs by navArgs<ComparisonFragmentArgs>()
40-
private var enterTransitionCompleted = false
4140

4241
override fun onAttach(context: Context) {
4342
super.onAttach(context)
4443
hideSystemBars()
4544

46-
sharedElementEnterTransition = TransitionInflater.from(context)
45+
sharedElementEnterTransition = cropEnterTransition(context)
46+
registerOnBackPressedHandler(::onBack)
47+
}
48+
49+
private fun cropEnterTransition(context: Context) =
50+
TransitionInflater
51+
.from(context)
4752
.inflateTransition(android.R.transition.move)
4853
?.setDuration(500)
4954
?.setInterpolator(DecelerateInterpolator(1.5f))
50-
?.addListener(
51-
object : TransitionListenerAdapter() {
52-
override fun onTransitionEnd(transition: Transition) {
53-
super.onTransitionEnd(transition)
54-
55-
if (!enterTransitionCompleted) {
56-
enterTransitionCompleted = true
57-
lifecycleScope.launchDelayed(200) {
58-
viewModel.emitFadeOutTextArgs(
59-
FadeOutTextView.Args(
60-
textRes = com.w2sv.core.common.R.string.comparison_instruction,
61-
iconRes = R.drawable.ic_info_24,
62-
displayDuration = 4_000
63-
)
64-
)
65-
}
66-
}
67-
}
55+
?.onTransitionEnd {
56+
// Show instructions after short delay
57+
lifecycleScope.launchDelayed(200) {
58+
viewModel.emitFadeOutTextArgs(
59+
FadeOutTextView.Args(
60+
textRes = com.w2sv.core.common.R.string.comparison_instruction,
61+
iconRes = R.drawable.ic_info_24,
62+
displayDuration = 3_000
63+
)
64+
)
6865
}
69-
)
70-
71-
registerOnBackPressedHandler(::onBack)
72-
}
66+
}
7367

7468
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
7569
postponeEnterTransition(view)
@@ -153,3 +147,12 @@ class ComparisonFragment : ViewBoundAppFragment<ComparisonBinding>(ComparisonBin
153147
navController.popBackStack()
154148
}
155149
}
150+
151+
private fun Transition.onTransitionEnd(callback: () -> Unit): Transition =
152+
addListener(
153+
object : TransitionListenerAdapter() {
154+
override fun onTransitionEnd(transition: Transition) {
155+
callback()
156+
}
157+
}
158+
)

0 commit comments

Comments
 (0)