@lodev09/react-native-true-sheet 3.5.1-beta.2 → 3.5.1-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetView.kt +1 -0
- package/android/src/main/java/com/lodev09/truesheet/TrueSheetViewController.kt +120 -59
- package/android/src/main/java/com/lodev09/truesheet/core/RNScreensFragmentObserver.kt +29 -6
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetAnimator.kt +9 -10
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetDialogFragment.kt +8 -11
- package/android/src/main/java/com/lodev09/truesheet/core/TrueSheetKeyboardObserver.kt +21 -11
- package/lib/module/TrueSheet.js +1 -14
- package/lib/module/TrueSheet.js.map +1 -1
- package/lib/typescript/src/TrueSheet.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/TrueSheet.tsx +1 -14
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
package com.lodev09.truesheet
|
|
2
2
|
|
|
3
3
|
import android.annotation.SuppressLint
|
|
4
|
-
import android.
|
|
4
|
+
import android.os.Build
|
|
5
5
|
import android.view.MotionEvent
|
|
6
6
|
import android.view.View
|
|
7
7
|
import android.view.WindowManager
|
|
@@ -10,6 +10,7 @@ import android.widget.FrameLayout
|
|
|
10
10
|
import androidx.appcompat.app.AppCompatActivity
|
|
11
11
|
import androidx.core.view.isNotEmpty
|
|
12
12
|
import androidx.core.view.isVisible
|
|
13
|
+
import androidx.core.view.postDelayed
|
|
13
14
|
import com.facebook.react.R
|
|
14
15
|
import com.facebook.react.uimanager.JSPointerDispatcher
|
|
15
16
|
import com.facebook.react.uimanager.JSTouchDispatcher
|
|
@@ -119,7 +120,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
119
120
|
private var interactionState: InteractionState = InteractionState.Idle
|
|
120
121
|
private var isDismissing = false
|
|
121
122
|
private var wasHiddenByModal = false
|
|
122
|
-
private var shouldAnimatePresent =
|
|
123
|
+
private var shouldAnimatePresent = false
|
|
124
|
+
private var wasPresentingWithAnimation = false
|
|
125
|
+
private var isPresentingWithoutAnimation = false
|
|
123
126
|
|
|
124
127
|
private var lastStateWidth: Int = 0
|
|
125
128
|
private var lastStateHeight: Int = 0
|
|
@@ -257,6 +260,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
257
260
|
return TrueSheetDialogObserver.isTopmostSheet(hostView)
|
|
258
261
|
}
|
|
259
262
|
|
|
263
|
+
private val dimViews: List<TrueSheetDimView>
|
|
264
|
+
get() = listOfNotNull(dimView, parentDimView)
|
|
265
|
+
|
|
260
266
|
// =============================================================================
|
|
261
267
|
// MARK: - Initialization
|
|
262
268
|
// =============================================================================
|
|
@@ -273,21 +279,27 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
273
279
|
if (dialogFragment != null) return
|
|
274
280
|
|
|
275
281
|
dialogFragment = TrueSheetDialogFragment.newInstance().apply {
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
this
|
|
279
|
-
this.sheetCornerRadius = this@TrueSheetViewController.sheetCornerRadius
|
|
280
|
-
this.sheetBackgroundColor = this@TrueSheetViewController.sheetBackgroundColor
|
|
281
|
-
this.edgeToEdgeFullScreen = this@TrueSheetViewController.edgeToEdgeFullScreen
|
|
282
|
-
this.grabberEnabled = this@TrueSheetViewController.grabber
|
|
283
|
-
this.grabberOptions = this@TrueSheetViewController.grabberOptions
|
|
284
|
-
this.dismissible = this@TrueSheetViewController.dismissible
|
|
285
|
-
this.draggable = this@TrueSheetViewController.draggable
|
|
282
|
+
delegate = this@TrueSheetViewController
|
|
283
|
+
contentView = this@TrueSheetViewController
|
|
284
|
+
syncFragmentProperties(this)
|
|
286
285
|
}
|
|
287
286
|
|
|
288
287
|
setupModalObserver()
|
|
289
288
|
}
|
|
290
289
|
|
|
290
|
+
private fun syncFragmentProperties(fragment: TrueSheetDialogFragment) {
|
|
291
|
+
fragment.apply {
|
|
292
|
+
reactContext = this@TrueSheetViewController.reactContext
|
|
293
|
+
sheetCornerRadius = this@TrueSheetViewController.sheetCornerRadius
|
|
294
|
+
sheetBackgroundColor = this@TrueSheetViewController.sheetBackgroundColor
|
|
295
|
+
edgeToEdgeFullScreen = this@TrueSheetViewController.edgeToEdgeFullScreen
|
|
296
|
+
grabberEnabled = this@TrueSheetViewController.grabber
|
|
297
|
+
grabberOptions = this@TrueSheetViewController.grabberOptions
|
|
298
|
+
dismissible = this@TrueSheetViewController.dismissible
|
|
299
|
+
draggable = this@TrueSheetViewController.draggable
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
291
303
|
private fun cleanupDialog() {
|
|
292
304
|
cleanupKeyboardObserver()
|
|
293
305
|
cleanupModalObserver()
|
|
@@ -312,6 +324,13 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
312
324
|
// MARK: - TrueSheetDialogFragmentDelegate
|
|
313
325
|
// =============================================================================
|
|
314
326
|
|
|
327
|
+
override fun onDialogCreated() {
|
|
328
|
+
bottomSheetView?.visibility = INVISIBLE
|
|
329
|
+
|
|
330
|
+
// Ensure sheet starts off-screen to prevent flicker
|
|
331
|
+
bottomSheetView?.y = realScreenHeight.toFloat()
|
|
332
|
+
}
|
|
333
|
+
|
|
315
334
|
override fun onDialogShow() {
|
|
316
335
|
bottomSheetView?.visibility = VISIBLE
|
|
317
336
|
|
|
@@ -325,21 +344,26 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
325
344
|
setupKeyboardObserver()
|
|
326
345
|
|
|
327
346
|
if (shouldAnimatePresent) {
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
toTop =
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
347
|
+
wasPresentingWithAnimation = true
|
|
348
|
+
post {
|
|
349
|
+
val toTop = getExpectedSheetTop(currentDetentIndex)
|
|
350
|
+
sheetAnimator.animatePresent(
|
|
351
|
+
toTop = toTop,
|
|
352
|
+
onUpdate = { effectiveTop -> updateSheetVisuals(effectiveTop) },
|
|
353
|
+
onStart = { wasPresentingWithAnimation = false },
|
|
354
|
+
onEnd = { finishPresent() }
|
|
355
|
+
)
|
|
356
|
+
}
|
|
338
357
|
} else {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
358
|
+
isPresentingWithoutAnimation = true
|
|
359
|
+
|
|
360
|
+
post {
|
|
361
|
+
val toTop = getExpectedSheetTop(currentDetentIndex)
|
|
362
|
+
bottomSheetView?.y = toTop.toFloat()
|
|
363
|
+
|
|
364
|
+
updateSheetVisuals(toTop)
|
|
365
|
+
finishPresent()
|
|
366
|
+
}
|
|
343
367
|
}
|
|
344
368
|
}
|
|
345
369
|
|
|
@@ -378,6 +402,18 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
378
402
|
// Skip if our custom animator is handling the animation
|
|
379
403
|
if (sheetAnimator.isAnimating) return
|
|
380
404
|
|
|
405
|
+
// Keep it off screen to prevent flicker
|
|
406
|
+
if (wasPresentingWithAnimation) {
|
|
407
|
+
sheetView.y = realScreenHeight.toFloat()
|
|
408
|
+
return
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
// When presenting without animation, keep the sheet at the target position
|
|
412
|
+
if (isPresentingWithoutAnimation) {
|
|
413
|
+
sheetView.y = getExpectedSheetTop(currentDetentIndex).toFloat()
|
|
414
|
+
return
|
|
415
|
+
}
|
|
416
|
+
|
|
381
417
|
val behavior = behavior ?: return
|
|
382
418
|
|
|
383
419
|
when (behavior.state) {
|
|
@@ -389,21 +425,37 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
389
425
|
|
|
390
426
|
emitChangePositionDelegate(sheetView.top)
|
|
391
427
|
|
|
392
|
-
|
|
428
|
+
// On older APIs, use onSlide for footer positioning during keyboard transitions
|
|
429
|
+
val useLegacyKeyboardHandling = Build.VERSION.SDK_INT < Build.VERSION_CODES.R
|
|
430
|
+
if (!isKeyboardTransitioning || useLegacyKeyboardHandling) {
|
|
393
431
|
positionFooter(slideOffset)
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
if (!isKeyboardTransitioning) {
|
|
394
435
|
updateDimAmount(sheetView.top)
|
|
395
436
|
}
|
|
396
437
|
}
|
|
397
438
|
|
|
398
439
|
override fun onBackPressed() {
|
|
399
440
|
delegate?.viewControllerDidBackPress()
|
|
441
|
+
if (dismissible) {
|
|
442
|
+
dismiss(animated = true)
|
|
443
|
+
}
|
|
400
444
|
}
|
|
401
445
|
|
|
402
446
|
private fun handleStateSettled(sheetView: View, newState: Int) {
|
|
403
447
|
if (interactionState is InteractionState.Reconfiguring) return
|
|
404
448
|
|
|
449
|
+
// Reset non-animated presentation flag once behavior has settled at the target
|
|
450
|
+
if (isPresentingWithoutAnimation) {
|
|
451
|
+
val targetTop = getExpectedSheetTop(currentDetentIndex)
|
|
452
|
+
sheetView.y = targetTop.toFloat()
|
|
453
|
+
|
|
454
|
+
isPresentingWithoutAnimation = false
|
|
455
|
+
}
|
|
456
|
+
|
|
405
457
|
val index = detentCalculator.getDetentIndexForState(newState) ?: return
|
|
406
|
-
val position =
|
|
458
|
+
val position = getPositionDpForView(sheetView)
|
|
407
459
|
val detentInfo = DetentInfo(index, position)
|
|
408
460
|
|
|
409
461
|
when (interactionState) {
|
|
@@ -474,13 +526,11 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
474
526
|
wasHiddenByModal = true
|
|
475
527
|
|
|
476
528
|
// Prepare for fast fade out
|
|
477
|
-
|
|
478
|
-
parentDimView?.alpha = 0f
|
|
529
|
+
dimViews.forEach { it.alpha = 0f }
|
|
479
530
|
|
|
480
531
|
dialog?.window?.setWindowAnimations(com.lodev09.truesheet.R.style.TrueSheetFastFadeOut)
|
|
481
532
|
dialog?.window?.decorView?.visibility = GONE
|
|
482
|
-
|
|
483
|
-
parentDimView?.visibility = INVISIBLE
|
|
533
|
+
dimViews.forEach { it.visibility = INVISIBLE }
|
|
484
534
|
|
|
485
535
|
parentSheetView?.viewController?.hideForModal()
|
|
486
536
|
}
|
|
@@ -490,12 +540,22 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
490
540
|
|
|
491
541
|
dialog?.window?.setWindowAnimations(0)
|
|
492
542
|
dialog?.window?.decorView?.visibility = VISIBLE
|
|
493
|
-
|
|
494
|
-
parentDimView?.visibility = VISIBLE
|
|
543
|
+
dimViews.forEach { it.visibility = VISIBLE }
|
|
495
544
|
|
|
496
545
|
updateDimAmount(animated = true)
|
|
497
546
|
}
|
|
498
547
|
|
|
548
|
+
/**
|
|
549
|
+
* Re-applies hidden state after returning from background.
|
|
550
|
+
* Android may restore dialog visibility on activity resume, so we need to hide it again.
|
|
551
|
+
*/
|
|
552
|
+
fun reapplyHiddenState() {
|
|
553
|
+
if (!wasHiddenByModal) return
|
|
554
|
+
|
|
555
|
+
dialog?.window?.decorView?.visibility = GONE
|
|
556
|
+
dimViews.forEach { it.visibility = INVISIBLE }
|
|
557
|
+
}
|
|
558
|
+
|
|
499
559
|
// =============================================================================
|
|
500
560
|
// MARK: - Presentation
|
|
501
561
|
// =============================================================================
|
|
@@ -526,7 +586,6 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
526
586
|
|
|
527
587
|
// Execute pending transactions to ensure fragment is added
|
|
528
588
|
activity.supportFragmentManager.executePendingTransactions()
|
|
529
|
-
bottomSheetView?.visibility = INVISIBLE
|
|
530
589
|
}
|
|
531
590
|
}
|
|
532
591
|
|
|
@@ -538,11 +597,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
538
597
|
|
|
539
598
|
if (animated) {
|
|
540
599
|
sheetAnimator.animateDismiss(
|
|
541
|
-
onUpdate = { effectiveTop ->
|
|
542
|
-
emitChangePositionDelegate(effectiveTop)
|
|
543
|
-
positionFooter()
|
|
544
|
-
updateDimAmount(effectiveTop)
|
|
545
|
-
},
|
|
600
|
+
onUpdate = { effectiveTop -> updateSheetVisuals(effectiveTop) },
|
|
546
601
|
onEnd = { dialogFragment?.dismiss() }
|
|
547
602
|
)
|
|
548
603
|
} else {
|
|
@@ -629,26 +684,20 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
629
684
|
}
|
|
630
685
|
|
|
631
686
|
// =============================================================================
|
|
632
|
-
// MARK: - Grabber
|
|
687
|
+
// MARK: - Grabber & Background
|
|
633
688
|
// =============================================================================
|
|
634
689
|
|
|
635
690
|
fun setupGrabber() {
|
|
636
|
-
dialogFragment?.
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
setupGrabber()
|
|
691
|
+
dialogFragment?.let {
|
|
692
|
+
syncFragmentProperties(it)
|
|
693
|
+
it.setupGrabber()
|
|
640
694
|
}
|
|
641
695
|
}
|
|
642
696
|
|
|
643
|
-
// =============================================================================
|
|
644
|
-
// MARK: - Background & Dimming
|
|
645
|
-
// =============================================================================
|
|
646
|
-
|
|
647
697
|
fun setupBackground() {
|
|
648
|
-
dialogFragment?.
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
setupBackground()
|
|
698
|
+
dialogFragment?.let {
|
|
699
|
+
syncFragmentProperties(it)
|
|
700
|
+
it.setupBackground()
|
|
652
701
|
}
|
|
653
702
|
}
|
|
654
703
|
|
|
@@ -713,11 +762,9 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
713
762
|
dimmedDetentIndex,
|
|
714
763
|
detentCalculator::getSheetTopForDetentIndex
|
|
715
764
|
) ?: 0f
|
|
716
|
-
|
|
717
|
-
parentDimView?.animate()?.alpha(targetAlpha)?.setDuration(200)?.start()
|
|
765
|
+
dimViews.forEach { it.animate().alpha(targetAlpha).setDuration(200).start() }
|
|
718
766
|
} else {
|
|
719
|
-
|
|
720
|
-
parentDimView?.interpolateAlpha(top, dimmedDetentIndex, detentCalculator::getSheetTopForDetentIndex)
|
|
767
|
+
dimViews.forEach { it.interpolateAlpha(top, dimmedDetentIndex, detentCalculator::getSheetTopForDetentIndex) }
|
|
721
768
|
}
|
|
722
769
|
}
|
|
723
770
|
|
|
@@ -757,6 +804,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
757
804
|
|
|
758
805
|
fun setupKeyboardObserver() {
|
|
759
806
|
val bottomSheet = bottomSheetView ?: return
|
|
807
|
+
cleanupKeyboardObserver()
|
|
760
808
|
keyboardObserver = TrueSheetKeyboardObserver(bottomSheet, reactContext).apply {
|
|
761
809
|
delegate = object : TrueSheetKeyboardObserverDelegate {
|
|
762
810
|
override fun keyboardWillShow(height: Int) {
|
|
@@ -799,8 +847,11 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
799
847
|
// MARK: - Drag Handling
|
|
800
848
|
// =============================================================================
|
|
801
849
|
|
|
850
|
+
private fun getPositionDpForView(sheetView: View): Float =
|
|
851
|
+
detentCalculator.getPositionDp(detentCalculator.getVisibleSheetHeight(sheetView.top))
|
|
852
|
+
|
|
802
853
|
private fun handleDragBegin(sheetView: View) {
|
|
803
|
-
val position =
|
|
854
|
+
val position = getPositionDpForView(sheetView)
|
|
804
855
|
val detent = detentCalculator.getDetentValueForIndex(currentDetentIndex)
|
|
805
856
|
delegate?.viewControllerDidDragBegin(currentDetentIndex, position, detent)
|
|
806
857
|
interactionState = InteractionState.Dragging(startTop = sheetView.top)
|
|
@@ -808,7 +859,7 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
808
859
|
|
|
809
860
|
private fun handleDragChange(sheetView: View) {
|
|
810
861
|
if (interactionState !is InteractionState.Dragging) return
|
|
811
|
-
val position =
|
|
862
|
+
val position = getPositionDpForView(sheetView)
|
|
812
863
|
val detent = detentCalculator.getDetentValueForIndex(currentDetentIndex)
|
|
813
864
|
delegate?.viewControllerDidDragChange(currentDetentIndex, position, detent)
|
|
814
865
|
}
|
|
@@ -854,6 +905,16 @@ class TrueSheetViewController(private val reactContext: ThemedReactContext) :
|
|
|
854
905
|
delegate?.viewControllerDidChangePosition(interpolatedIndex, position, detent, realtime)
|
|
855
906
|
}
|
|
856
907
|
|
|
908
|
+
/**
|
|
909
|
+
* Updates position emission, footer, and dim amount together.
|
|
910
|
+
* This pattern is commonly used during animations and state changes.
|
|
911
|
+
*/
|
|
912
|
+
private fun updateSheetVisuals(effectiveTop: Int, slideOffset: Float? = null) {
|
|
913
|
+
emitChangePositionDelegate(effectiveTop)
|
|
914
|
+
positionFooter(slideOffset)
|
|
915
|
+
updateDimAmount(effectiveTop)
|
|
916
|
+
}
|
|
917
|
+
|
|
857
918
|
// =============================================================================
|
|
858
919
|
// MARK: - Detent Helpers
|
|
859
920
|
// =============================================================================
|
|
@@ -4,6 +4,8 @@ import android.content.Context
|
|
|
4
4
|
import androidx.appcompat.app.AppCompatActivity
|
|
5
5
|
import androidx.fragment.app.Fragment
|
|
6
6
|
import androidx.fragment.app.FragmentManager
|
|
7
|
+
import androidx.lifecycle.DefaultLifecycleObserver
|
|
8
|
+
import androidx.lifecycle.LifecycleOwner
|
|
7
9
|
import com.facebook.react.bridge.ReactContext
|
|
8
10
|
|
|
9
11
|
private const val RN_SCREENS_PACKAGE = "com.swmansion.rnscreens"
|
|
@@ -19,7 +21,9 @@ class RNScreensFragmentObserver(
|
|
|
19
21
|
private val onModalDidDismiss: () -> Unit
|
|
20
22
|
) {
|
|
21
23
|
private var fragmentLifecycleCallback: FragmentManager.FragmentLifecycleCallbacks? = null
|
|
24
|
+
private var activityLifecycleObserver: DefaultLifecycleObserver? = null
|
|
22
25
|
private val activeModalFragments: MutableSet<Fragment> = mutableSetOf()
|
|
26
|
+
private var isActivityInForeground = true
|
|
23
27
|
|
|
24
28
|
/**
|
|
25
29
|
* Start observing fragment lifecycle events.
|
|
@@ -28,10 +32,25 @@ class RNScreensFragmentObserver(
|
|
|
28
32
|
val activity = reactContext.currentActivity as? AppCompatActivity ?: return
|
|
29
33
|
val fragmentManager = activity.supportFragmentManager
|
|
30
34
|
|
|
35
|
+
// Track activity foreground state to ignore fragment lifecycle events during background/foreground transitions
|
|
36
|
+
activityLifecycleObserver = object : DefaultLifecycleObserver {
|
|
37
|
+
override fun onResume(owner: LifecycleOwner) {
|
|
38
|
+
isActivityInForeground = true
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
override fun onPause(owner: LifecycleOwner) {
|
|
42
|
+
isActivityInForeground = false
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
activity.lifecycle.addObserver(activityLifecycleObserver!!)
|
|
46
|
+
|
|
31
47
|
fragmentLifecycleCallback = object : FragmentManager.FragmentLifecycleCallbacks() {
|
|
32
48
|
override fun onFragmentAttached(fm: FragmentManager, f: Fragment, context: Context) {
|
|
33
49
|
super.onFragmentAttached(fm, f, context)
|
|
34
50
|
|
|
51
|
+
// Ignore if app is resuming from background
|
|
52
|
+
if (!isActivityInForeground) return
|
|
53
|
+
|
|
35
54
|
if (isModalFragment(f) && !activeModalFragments.contains(f)) {
|
|
36
55
|
activeModalFragments.add(f)
|
|
37
56
|
|
|
@@ -44,11 +63,8 @@ class RNScreensFragmentObserver(
|
|
|
44
63
|
override fun onFragmentStopped(fm: FragmentManager, f: Fragment) {
|
|
45
64
|
super.onFragmentStopped(fm, f)
|
|
46
65
|
|
|
47
|
-
// Ignore if app is
|
|
48
|
-
|
|
49
|
-
if (!activity.lifecycle.currentState.isAtLeast(androidx.lifecycle.Lifecycle.State.RESUMED)) {
|
|
50
|
-
return
|
|
51
|
-
}
|
|
66
|
+
// Ignore if app is going to background (fragments stop with activity)
|
|
67
|
+
if (!isActivityInForeground) return
|
|
52
68
|
|
|
53
69
|
if (activeModalFragments.contains(f)) {
|
|
54
70
|
if (activeModalFragments.size == 1) {
|
|
@@ -77,11 +93,18 @@ class RNScreensFragmentObserver(
|
|
|
77
93
|
* Stop observing and cleanup.
|
|
78
94
|
*/
|
|
79
95
|
fun stop() {
|
|
96
|
+
val activity = reactContext.currentActivity as? AppCompatActivity
|
|
97
|
+
|
|
80
98
|
fragmentLifecycleCallback?.let { callback ->
|
|
81
|
-
val activity = reactContext.currentActivity as? AppCompatActivity
|
|
82
99
|
activity?.supportFragmentManager?.unregisterFragmentLifecycleCallbacks(callback)
|
|
83
100
|
}
|
|
84
101
|
fragmentLifecycleCallback = null
|
|
102
|
+
|
|
103
|
+
activityLifecycleObserver?.let { observer ->
|
|
104
|
+
activity?.lifecycle?.removeObserver(observer)
|
|
105
|
+
}
|
|
106
|
+
activityLifecycleObserver = null
|
|
107
|
+
|
|
85
108
|
activeModalFragments.clear()
|
|
86
109
|
}
|
|
87
110
|
|
|
@@ -4,6 +4,7 @@ import android.animation.Animator
|
|
|
4
4
|
import android.animation.AnimatorListenerAdapter
|
|
5
5
|
import android.animation.ValueAnimator
|
|
6
6
|
import android.util.Log
|
|
7
|
+
import android.view.View
|
|
7
8
|
import android.view.animation.AccelerateInterpolator
|
|
8
9
|
import android.view.animation.DecelerateInterpolator
|
|
9
10
|
import android.widget.FrameLayout
|
|
@@ -38,7 +39,7 @@ class TrueSheetAnimator(private val provider: TrueSheetAnimatorProvider) {
|
|
|
38
39
|
* @param onUpdate Called on each animation frame with the effective top position
|
|
39
40
|
* @param onEnd Called when animation completes or is cancelled
|
|
40
41
|
*/
|
|
41
|
-
fun animatePresent(toTop: Int, onUpdate: (effectiveTop: Int) -> Unit, onEnd: () -> Unit) {
|
|
42
|
+
fun animatePresent(toTop: Int, onStart: () -> Unit, onUpdate: (effectiveTop: Int) -> Unit, onEnd: () -> Unit) {
|
|
42
43
|
val bottomSheet = provider.bottomSheetView ?: run {
|
|
43
44
|
onEnd()
|
|
44
45
|
return
|
|
@@ -54,20 +55,19 @@ class TrueSheetAnimator(private val provider: TrueSheetAnimatorProvider) {
|
|
|
54
55
|
|
|
55
56
|
addUpdateListener { animator ->
|
|
56
57
|
val fraction = animator.animatedValue as Float
|
|
57
|
-
// Calculate effective top based on animation progress
|
|
58
58
|
val effectiveTop = fromTop - (distance * fraction).toInt()
|
|
59
|
-
|
|
60
|
-
bottomSheet.translationY = (effectiveTop - bottomSheet.top).toFloat()
|
|
59
|
+
bottomSheet.y = effectiveTop.toFloat()
|
|
61
60
|
onUpdate(effectiveTop)
|
|
62
61
|
}
|
|
63
62
|
|
|
64
63
|
addListener(object : AnimatorListenerAdapter() {
|
|
65
64
|
override fun onAnimationStart(animation: Animator) {
|
|
65
|
+
onStart()
|
|
66
66
|
isAnimating = true
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
override fun onAnimationEnd(animation: Animator) {
|
|
70
|
-
bottomSheet.
|
|
70
|
+
bottomSheet.y = toTop.toFloat()
|
|
71
71
|
presentAnimator = null
|
|
72
72
|
isAnimating = false
|
|
73
73
|
onEnd()
|
|
@@ -95,8 +95,8 @@ class TrueSheetAnimator(private val provider: TrueSheetAnimatorProvider) {
|
|
|
95
95
|
return
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
val fromTop = bottomSheet.
|
|
99
|
-
val
|
|
98
|
+
val fromTop = bottomSheet.y.toInt()
|
|
99
|
+
val toTop = provider.realScreenHeight
|
|
100
100
|
|
|
101
101
|
dismissAnimator?.cancel()
|
|
102
102
|
dismissAnimator = ValueAnimator.ofFloat(0f, 1f).apply {
|
|
@@ -105,9 +105,8 @@ class TrueSheetAnimator(private val provider: TrueSheetAnimatorProvider) {
|
|
|
105
105
|
|
|
106
106
|
addUpdateListener { animator ->
|
|
107
107
|
val fraction = animator.animatedValue as Float
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
val effectiveTop = bottomSheet.top + bottomSheet.translationY.toInt()
|
|
108
|
+
val effectiveTop = fromTop + ((toTop - fromTop) * fraction).toInt()
|
|
109
|
+
bottomSheet.y = effectiveTop.toFloat()
|
|
111
110
|
onUpdate(effectiveTop)
|
|
112
111
|
}
|
|
113
112
|
|
|
@@ -5,6 +5,7 @@ import android.graphics.Color
|
|
|
5
5
|
import android.graphics.drawable.ShapeDrawable
|
|
6
6
|
import android.graphics.drawable.shapes.RoundRectShape
|
|
7
7
|
import android.os.Bundle
|
|
8
|
+
import android.util.Log
|
|
8
9
|
import android.util.TypedValue
|
|
9
10
|
import android.view.LayoutInflater
|
|
10
11
|
import android.view.View
|
|
@@ -26,6 +27,7 @@ import com.lodev09.truesheet.utils.ScreenUtils
|
|
|
26
27
|
// =============================================================================
|
|
27
28
|
|
|
28
29
|
interface TrueSheetDialogFragmentDelegate {
|
|
30
|
+
fun onDialogCreated()
|
|
29
31
|
fun onDialogShow()
|
|
30
32
|
fun onDialogDismiss()
|
|
31
33
|
fun onDialogCancel()
|
|
@@ -122,13 +124,6 @@ class TrueSheetDialogFragment : BottomSheetDialogFragment() {
|
|
|
122
124
|
// MARK: - Lifecycle
|
|
123
125
|
// =============================================================================
|
|
124
126
|
|
|
125
|
-
override fun onCreate(savedInstanceState: Bundle?) {
|
|
126
|
-
super.onCreate(savedInstanceState)
|
|
127
|
-
// Prevent dialog from being recreated on configuration change
|
|
128
|
-
// The controller manages state separately
|
|
129
|
-
retainInstance = true
|
|
130
|
-
}
|
|
131
|
-
|
|
132
127
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
|
133
128
|
val ctx = reactContext ?: requireContext()
|
|
134
129
|
|
|
@@ -153,6 +148,7 @@ class TrueSheetDialogFragment : BottomSheetDialogFragment() {
|
|
|
153
148
|
setupGrabber()
|
|
154
149
|
// Re-apply dismissible after show since behavior may reset it
|
|
155
150
|
dialog.behavior.isHideable = dismissible
|
|
151
|
+
|
|
156
152
|
delegate?.onDialogShow()
|
|
157
153
|
}
|
|
158
154
|
|
|
@@ -162,15 +158,12 @@ class TrueSheetDialogFragment : BottomSheetDialogFragment() {
|
|
|
162
158
|
dialog.behavior.isDraggable = draggable
|
|
163
159
|
dialog.behavior.maxWidth = DEFAULT_MAX_WIDTH.dpToPx().toInt()
|
|
164
160
|
|
|
165
|
-
// Handle back press
|
|
161
|
+
// Handle back press - delegate to controller for animated dismiss
|
|
166
162
|
dialog.onBackPressedDispatcher.addCallback(
|
|
167
163
|
this,
|
|
168
164
|
object : OnBackPressedCallback(true) {
|
|
169
165
|
override fun handleOnBackPressed() {
|
|
170
166
|
delegate?.onBackPressed()
|
|
171
|
-
if (dismissible) {
|
|
172
|
-
dismiss()
|
|
173
|
-
}
|
|
174
167
|
}
|
|
175
168
|
}
|
|
176
169
|
)
|
|
@@ -180,6 +173,10 @@ class TrueSheetDialogFragment : BottomSheetDialogFragment() {
|
|
|
180
173
|
|
|
181
174
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? = contentView
|
|
182
175
|
|
|
176
|
+
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
177
|
+
delegate?.onDialogCreated()
|
|
178
|
+
}
|
|
179
|
+
|
|
183
180
|
override fun onCancel(dialog: android.content.DialogInterface) {
|
|
184
181
|
super.onCancel(dialog)
|
|
185
182
|
delegate?.onDialogCancel()
|
|
@@ -111,6 +111,9 @@ class TrueSheetKeyboardObserver(private val targetView: View, private val reactC
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
private fun setupLegacyListener() {
|
|
114
|
+
// Ensure we don't add duplicate listeners
|
|
115
|
+
if (globalLayoutListener != null) return
|
|
116
|
+
|
|
114
117
|
val rootView = reactContext.currentActivity?.window?.decorView?.rootView ?: return
|
|
115
118
|
activityRootView = rootView
|
|
116
119
|
|
|
@@ -122,19 +125,26 @@ class TrueSheetKeyboardObserver(private val targetView: View, private val reactC
|
|
|
122
125
|
val keyboardHeight = screenHeight - rect.bottom
|
|
123
126
|
|
|
124
127
|
val newHeight = if (keyboardHeight > screenHeight * 0.15) keyboardHeight else 0
|
|
128
|
+
|
|
129
|
+
// Skip if already at this height
|
|
130
|
+
if (targetHeight == newHeight) return@OnGlobalLayoutListener
|
|
131
|
+
|
|
125
132
|
val previousHeight = currentHeight
|
|
133
|
+
targetHeight = newHeight
|
|
134
|
+
isHiding = newHeight < previousHeight
|
|
126
135
|
|
|
127
|
-
if (
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
if (newHeight > previousHeight) {
|
|
137
|
+
delegate?.keyboardWillShow(newHeight)
|
|
138
|
+
} else if (isHiding) {
|
|
139
|
+
delegate?.keyboardWillHide()
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// On legacy API, keyboard has already animated - just update immediately
|
|
143
|
+
updateHeight(previousHeight, newHeight, 1f)
|
|
144
|
+
|
|
145
|
+
if (isHiding && newHeight == 0) {
|
|
146
|
+
delegate?.keyboardDidHide()
|
|
147
|
+
isHiding = false
|
|
138
148
|
}
|
|
139
149
|
}
|
|
140
150
|
|
package/lib/module/TrueSheet.js
CHANGED
|
@@ -7,15 +7,12 @@ import TrueSheetContentViewNativeComponent from './fabric/TrueSheetContentViewNa
|
|
|
7
7
|
import TrueSheetHeaderViewNativeComponent from './fabric/TrueSheetHeaderViewNativeComponent';
|
|
8
8
|
import TrueSheetFooterViewNativeComponent from './fabric/TrueSheetFooterViewNativeComponent';
|
|
9
9
|
import TrueSheetModule from "./specs/NativeTrueSheetModule.js";
|
|
10
|
-
import { Platform, StyleSheet, findNodeHandle,
|
|
10
|
+
import { Platform, StyleSheet, findNodeHandle, processColor } from 'react-native';
|
|
11
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
12
|
const LINKING_ERROR = `The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
13
13
|
ios: "- You have run 'pod install'\n",
|
|
14
14
|
default: ''
|
|
15
15
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n' + '- You are using the new architecture (Fabric)\n';
|
|
16
|
-
|
|
17
|
-
// Material Design 3 minimum touch target
|
|
18
|
-
const ANDROID_HITBOX_HEIGHT = 48;
|
|
19
16
|
if (!TrueSheetModule) {
|
|
20
17
|
throw new Error(LINKING_ERROR);
|
|
21
18
|
}
|
|
@@ -344,9 +341,6 @@ export class TrueSheet extends PureComponent {
|
|
|
344
341
|
}), footer && /*#__PURE__*/_jsx(TrueSheetFooterViewNativeComponent, {
|
|
345
342
|
style: styles.footer,
|
|
346
343
|
children: /*#__PURE__*/isValidElement(footer) ? footer : /*#__PURE__*/createElement(footer)
|
|
347
|
-
}), Platform.OS === 'android' && grabber && draggable && /*#__PURE__*/_jsx(View, {
|
|
348
|
-
collapsable: false,
|
|
349
|
-
style: styles.grabberHitbox
|
|
350
344
|
})]
|
|
351
345
|
})
|
|
352
346
|
});
|
|
@@ -379,13 +373,6 @@ const styles = StyleSheet.create({
|
|
|
379
373
|
position: 'absolute',
|
|
380
374
|
left: 0,
|
|
381
375
|
right: 0
|
|
382
|
-
},
|
|
383
|
-
grabberHitbox: {
|
|
384
|
-
position: 'absolute',
|
|
385
|
-
top: 0,
|
|
386
|
-
left: 0,
|
|
387
|
-
right: 0,
|
|
388
|
-
height: ANDROID_HITBOX_HEIGHT
|
|
389
376
|
}
|
|
390
377
|
});
|
|
391
378
|
//# sourceMappingURL=TrueSheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","StyleSheet","findNodeHandle","View","processColor","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","ANDROID_HITBOX_HEIGHT","Error","TrueSheet","displayName","instances","presentationResolver","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","onBackPress","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","grabberOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","blurTint","blurOptions","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","insetAdjustment","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableAndroidContent","ref","sheetView","color","OS","collapsable","grabberHitbox","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis","height"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["PureComponent","createRef","isValidElement","createElement","TrueSheetViewNativeComponent","TrueSheetContainerViewNativeComponent","TrueSheetContentViewNativeComponent","TrueSheetHeaderViewNativeComponent","TrueSheetFooterViewNativeComponent","TrueSheetModule","Platform","StyleSheet","findNodeHandle","processColor","jsx","_jsx","jsxs","_jsxs","LINKING_ERROR","select","ios","default","Error","TrueSheet","displayName","instances","presentationResolver","constructor","props","nativeRef","validateDetents","shouldRenderImmediately","initialDetentIndex","undefined","state","shouldRenderNativeView","onMount","bind","onWillDismiss","onDidDismiss","onWillPresent","onDidPresent","onDetentChange","onDragBegin","onDragChange","onDragEnd","onPositionChange","onWillFocus","onDidFocus","onWillBlur","onDidBlur","onBackPress","detents","length","console","warn","forEach","detent","index","detentsLength","Math","min","getInstance","name","instance","handle","nodeHandle","current","present","animated","dismiss","resize","registerInstance","unregisterInstance","event","setState","Promise","resolve","presentByRef","dismissByRef","componentDidMount","componentDidUpdate","prevProps","componentWillUnmount","render","backgroundColor","dismissible","draggable","grabber","grabberOptions","dimmed","initialDetentAnimated","dimmedDetentIndex","blurTint","blurOptions","cornerRadius","maxHeight","edgeToEdgeFullScreen","scrollable","pageSizing","children","style","header","footer","insetAdjustment","rest","resolvedDetents","slice","map","containerStyle","android","styles","scrollableAndroidContainer","contentStyle","scrollableAndroidContent","ref","sheetView","color","create","zIndex","position","top","left","right","bottom","flexGrow","flexBasis"],"sourceRoot":"../../src","sources":["TrueSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrueSheet.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EAgBb,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"TrueSheet.d.ts","sourceRoot":"","sources":["../../../src/TrueSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EAGb,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EAgBb,MAAM,mBAAmB,CAAC;AAwB3B,UAAU,cAAc;IACtB,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,SACX,SAAQ,aAAa,CAAC,cAAc,EAAE,cAAc,CACpD,YAAW,YAAY;IAEvB,WAAW,SAAe;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IAExD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAEtE;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA6B;gBAE7C,KAAK,EAAE,cAAc;IAgCjC,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,MAAM,CAAC,WAAW;IAU1B,OAAO,KAAK,MAAM,GAOjB;IAED;;;;;;;OAOG;WACiB,OAAO,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAU,EACjB,QAAQ,GAAE,OAAc,GACvB,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;;OAMG;WACiB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IASlF;;;;;;OAMG;WACiB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAStE,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,OAAO;IAUf,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAIN,OAAO,CAAC,KAAK,GAAE,MAAU,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBnE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpC,OAAO,CAAC,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IASnD,oBAAoB,IAAI,IAAI;IAO5B,MAAM,IAAI,SAAS;CAiHpB"}
|
package/package.json
CHANGED
package/src/TrueSheet.tsx
CHANGED
|
@@ -35,7 +35,7 @@ import TrueSheetFooterViewNativeComponent from './fabric/TrueSheetFooterViewNati
|
|
|
35
35
|
|
|
36
36
|
import TrueSheetModule from './specs/NativeTrueSheetModule';
|
|
37
37
|
|
|
38
|
-
import { Platform, StyleSheet, findNodeHandle,
|
|
38
|
+
import { Platform, StyleSheet, findNodeHandle, processColor } from 'react-native';
|
|
39
39
|
|
|
40
40
|
const LINKING_ERROR =
|
|
41
41
|
`The package '@lodev09/react-native-true-sheet' doesn't seem to be linked. Make sure: \n\n` +
|
|
@@ -44,9 +44,6 @@ const LINKING_ERROR =
|
|
|
44
44
|
'- You are not using Expo Go\n' +
|
|
45
45
|
'- You are using the new architecture (Fabric)\n';
|
|
46
46
|
|
|
47
|
-
// Material Design 3 minimum touch target
|
|
48
|
-
const ANDROID_HITBOX_HEIGHT = 48;
|
|
49
|
-
|
|
50
47
|
if (!TrueSheetModule) {
|
|
51
48
|
throw new Error(LINKING_ERROR);
|
|
52
49
|
}
|
|
@@ -448,9 +445,6 @@ export class TrueSheet
|
|
|
448
445
|
{isValidElement(footer) ? footer : createElement(footer)}
|
|
449
446
|
</TrueSheetFooterViewNativeComponent>
|
|
450
447
|
)}
|
|
451
|
-
{Platform.OS === 'android' && grabber && draggable && (
|
|
452
|
-
<View collapsable={false} style={styles.grabberHitbox} />
|
|
453
|
-
)}
|
|
454
448
|
</TrueSheetContainerViewNativeComponent>
|
|
455
449
|
)}
|
|
456
450
|
</TrueSheetViewNativeComponent>
|
|
@@ -485,11 +479,4 @@ const styles = StyleSheet.create({
|
|
|
485
479
|
left: 0,
|
|
486
480
|
right: 0,
|
|
487
481
|
},
|
|
488
|
-
grabberHitbox: {
|
|
489
|
-
position: 'absolute',
|
|
490
|
-
top: 0,
|
|
491
|
-
left: 0,
|
|
492
|
-
right: 0,
|
|
493
|
-
height: ANDROID_HITBOX_HEIGHT,
|
|
494
|
-
},
|
|
495
482
|
});
|