@@ -40,8 +40,6 @@ class SessionDetailActivity :
40
40
@Inject lateinit var viewModelFactory: ViewModelProvider .Factory
41
41
@Inject lateinit var drawerMenu: DrawerMenu
42
42
43
- private var backPressed = false
44
-
45
43
private val binding: ActivitySessionDetailBinding by lazy {
46
44
DataBindingUtil
47
45
.setContentView<ActivitySessionDetailBinding >(
@@ -62,23 +60,6 @@ class SessionDetailActivity :
62
60
intent.getStringExtra(EXTRA_SESSION_ID )
63
61
}
64
62
65
- @TargetApi(Build .VERSION_CODES .LOLLIPOP )
66
- private val sharedElementCallback = object : SharedElementCallback () {
67
- override fun onMapSharedElements (
68
- names : MutableList <String >? ,
69
- sharedElements : MutableMap <String , View >? ) {
70
- super .onMapSharedElements(names, sharedElements)
71
-
72
- if (backPressed) {
73
- val currentFragment = pagerAdapter.findFragmentByPosition(
74
- binding.detailSessionsPager,
75
- binding.detailSessionsPager.currentItem)
76
- sharedElements?.clear()
77
- currentFragment.hideButton()
78
- }
79
- }
80
- }
81
-
82
63
override fun onCreate (savedInstanceState : Bundle ? ) {
83
64
super .onCreate(savedInstanceState)
84
65
supportPostponeEnterTransition()
@@ -93,9 +74,8 @@ class SessionDetailActivity :
93
74
sessions = result.data
94
75
bindSessions(sessions)
95
76
if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .LOLLIPOP ) {
96
- setEnterSharedElementCallback(sharedElementCallback )
77
+ removeSharedElements( )
97
78
}
98
-
99
79
}
100
80
is Result .Failure -> {
101
81
Timber .e(result.e)
@@ -121,11 +101,26 @@ class SessionDetailActivity :
121
101
}
122
102
}
123
103
104
+ @TargetApi(Build .VERSION_CODES .LOLLIPOP )
105
+ private fun removeSharedElements () {
106
+ setEnterSharedElementCallback(object : SharedElementCallback () {
107
+ override fun onMapSharedElements (
108
+ names : MutableList <String >? ,
109
+ sharedElements : MutableMap <String , View >? ) {
110
+ super .onMapSharedElements(names, sharedElements)
111
+
112
+ val currentFragment = pagerAdapter.findFragmentByPosition(
113
+ binding.detailSessionsPager,
114
+ binding.detailSessionsPager.currentItem)
115
+ sharedElements?.clear()
116
+ currentFragment.hideButton()
117
+ }
118
+ })
119
+ }
124
120
125
121
override fun supportFragmentInjector (): AndroidInjector <Fragment > = dispatchingAndroidInjector
126
122
127
123
override fun onBackPressed () {
128
- backPressed = true
129
124
if (drawerMenu.closeDrawerIfNeeded()) {
130
125
super .onBackPressed()
131
126
}
@@ -158,7 +153,6 @@ class SessionDetailActivity :
158
153
fun findFragmentByPosition (viewPager : ViewPager , position : Int ): SessionDetailFragment {
159
154
return instantiateItem(viewPager, position) as SessionDetailFragment
160
155
}
161
-
162
156
}
163
157
164
158
companion object {
@@ -170,9 +164,11 @@ class SessionDetailActivity :
170
164
}
171
165
172
166
fun start (activity : Activity , session : Session , sharedElement : Pair <View , String >) {
173
- val options = ActivityOptionsCompat .makeSceneTransitionAnimation(activity, sharedElement)
174
- activity.startActivity(createIntent(activity, session.id, sharedElement),
175
- options.toBundle())
167
+ val options = ActivityOptionsCompat .makeSceneTransitionAnimation(
168
+ activity,
169
+ sharedElement)
170
+ val intent = createIntent(activity, session.id, sharedElement)
171
+ activity.startActivity(intent, options.toBundle())
176
172
}
177
173
178
174
fun createIntent (context : Context , sessionId : String ): Intent {
@@ -189,6 +185,5 @@ class SessionDetailActivity :
189
185
putExtra(EXTRA_TRANSITION_NAME , sharedElement.second)
190
186
}
191
187
}
192
-
193
188
}
194
189
}
0 commit comments