Skip to content

Commit 2d39ea1

Browse files
committed
Add logging setup
1 parent 7bcbbc9 commit 2d39ea1

4 files changed

Lines changed: 20 additions & 2 deletions

File tree

android/src/main/java/com/swmansion/rnscreens/Screen.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,18 +133,22 @@ class Screen(
133133
) {
134134
val height = bottom - top
135135

136+
Log.i("HT", "Screen [$id] onContentWrapperLayout - $height")
137+
136138
if (usesFormSheetPresentation()) {
137139
if (isSheetFitToContents()) {
138140
sheetBehavior?.useSingleDetent(height)
139141
}
140142

141143
if (!BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
142144
// On old architecture we delay enter transition in order to wait for initial frame.
145+
Log.i("HT", "Screen [$id] onContentWrapperLayout - request transition trigger")
143146
shouldTriggerPostponedTransitionAfterLayout = true
144147
val parent = parentAsViewGroup()
145148
if (parent != null && !parent.isInLayout) {
146149
// There are reported cases (irreproducible) when Screen is not laid out after
147150
// maxHeight is set on behaviour.
151+
Log.i("HT", "Screen [$id] onContentWrapperLayout - request parent layout")
148152
parent.requestLayout()
149153
}
150154
}
@@ -172,6 +176,7 @@ class Screen(
172176
r: Int,
173177
b: Int,
174178
) {
179+
Log.i("HT", "Screen [$id] received layout ${b - t}")
175180
// In case of form sheet we get layout notification a bit later, in `onBottomSheetBehaviorDidLayout`
176181
// after the attached behaviour laid out this view.
177182
if (changed && isNativeStackScreen && !usesFormSheetPresentation()) {
@@ -194,6 +199,7 @@ class Screen(
194199
}
195200

196201
footer?.onParentLayout(coordinatorLayoutDidChange, left, top, right, bottom, container!!.height)
202+
Log.i("HT", "Screen [$id] behavior layout")
197203

198204
if (!BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
199205
// When using form sheet presentation we want to delay enter transition **on Paper** in order
@@ -207,6 +213,7 @@ class Screen(
207213
if (shouldTriggerPostponedTransitionAfterLayout) {
208214
shouldTriggerPostponedTransitionAfterLayout = false
209215
// This will trigger enter transition only if one was requested by ScreenStack
216+
Log.i("HT", "Screen [$id] triggering postponed transition")
210217
fragment?.startPostponedEnterTransition()
211218
}
212219
}

android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,14 +228,18 @@ class ScreenStack(
228228
dismissedWrappers.contains(
229229
wrapper,
230230
)
231-
}.forEach { wrapper -> transaction.remove(wrapper.fragment) }
231+
}.forEach { wrapper ->
232+
Log.i("HT", "ScreenStack remove 1 ${wrapper.fragment.id}")
233+
transaction.remove(wrapper.fragment) }
232234

233235
// Remove all screens underneath visibleBottom && these marked for preload, but keep newTop.
234236
screenWrappers
235237
.asSequence()
236238
.takeWhile { it !== visibleBottom }
237239
.filter { (it !== newTop && !dismissedWrappers.contains(it)) || it.screen.activityState === Screen.ActivityState.INACTIVE }
238-
.forEach { wrapper -> transaction.remove(wrapper.fragment) }
240+
.forEach { wrapper ->
241+
Log.i("HT", "ScreenStack remove 2 ${wrapper.fragment.id}")
242+
transaction.remove(wrapper.fragment) }
239243

240244
// attach screens that just became visible
241245
if (visibleBottom != null && !visibleBottom.fragment.isAdded) {
@@ -245,14 +249,17 @@ class ScreenStack(
245249
.dropWhile { it !== visibleBottom } // ignore all screens beneath the visible bottom
246250
.forEach { wrapper ->
247251
// TODO: It should be enough to dispatch this on commit action once.
252+
Log.i("HT", "ScreenStack add 1 ${wrapper.fragment.id}")
248253
transaction.add(id, wrapper.fragment).runOnCommit {
249254
top?.screen?.bringToFront()
250255
}
251256
}
252257
} else if (newTop != null && !newTop.fragment.isAdded) {
253258
if (newTop.screen.requiresEnterTransitionPostponing()) {
259+
Log.i("HT", "ScreenStack postponeEnterTransition of ${newTop.screen.id}")
254260
newTop.fragment.postponeEnterTransition()
255261
}
262+
Log.i("HT", "ScreenStack add 2 ${newTop.screen.id}")
256263
transaction.add(id, newTop.fragment)
257264
}
258265

android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import android.annotation.SuppressLint
77
import android.graphics.Color
88
import android.graphics.drawable.ColorDrawable
99
import android.os.Bundle
10+
import android.util.Log
1011
import android.view.LayoutInflater
1112
import android.view.Menu
1213
import android.view.MenuInflater
@@ -285,6 +286,7 @@ class ScreenStackFragment :
285286
ValueAnimator.ofObject(evaluator, screen.height.toFloat(), 0f).apply {
286287
addUpdateListener { anim ->
287288
val animatedValue = anim.animatedValue as? Float
289+
Log.i("HT", "transitionProgress $animatedValue")
288290
animatedValue?.let { screen.translationY = it }
289291
}
290292
}

android/src/main/java/com/swmansion/rnscreens/events/ScreenAnimationDelegate.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class ScreenAnimationDelegate(
3030
override fun onAnimationStart(animation: Animator) {
3131
if (currentState === LifecycleState.INITIALIZED) {
3232
progressState()
33+
Log.i("HT", "AnimationDelegate onAnimationStart")
3334

3435
// These callbacks do not work as expected from this call site, TODO: investigate it.
3536
// To fix it quickly we emit required events manually
@@ -53,6 +54,7 @@ class ScreenAnimationDelegate(
5354
if (currentState === LifecycleState.START_DISPATCHED) {
5455
progressState()
5556
animation.removeListener(this)
57+
Log.i("HT", "AnimationDelegate onAnimationEnd")
5658

5759
// wrapper.onViewAnimationEnd()
5860

0 commit comments

Comments
 (0)