You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`OverlayDialogHolder` now can provide an `onBackPressed: () -> Unit` function to be called in place of `Dialog.onBackPressed`, and we provide a default implementation that hooks in `OnBackPressedDispatcher`. This works for all kinds of dialogs, not just modal ones, and replaces `ModalScreenOverlayBackButtonHelper`. The other method that was on `ModalScreenOverlayBackButtonHelper`, which put the no-op `backPressedHandler` on the content view to ensure those on layer layers would not fire, is now built into the default implementation of `ScreenOverlayDialogFactory.buildDialogWithContent`, which is designed to be customized anyway.
Also locks down `AlertOverlayDialogFactory`, but moves all the interesting parts into a public function. Should be easier and safer for re-use.
Copy file name to clipboardExpand all lines: workflow-ui/core-android/api/core-android.api
+10-26Lines changed: 10 additions & 26 deletions
Original file line number
Diff line number
Diff line change
@@ -429,16 +429,19 @@ public final class com/squareup/workflow1/ui/container/AlertDialogThemeResId : c
429
429
public synthetic fun getDefault ()Ljava/lang/Object;
430
430
}
431
431
432
-
public class com/squareup/workflow1/ui/container/AlertOverlayDialogFactory : com/squareup/workflow1/ui/container/OverlayDialogFactory {
432
+
public final class com/squareup/workflow1/ui/container/AlertOverlayDialogFactory : com/squareup/workflow1/ui/container/OverlayDialogFactory {
433
433
public fun <init> ()V
434
434
public fun buildDialog (Lcom/squareup/workflow1/ui/container/AlertOverlay;Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/content/Context;)Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;
435
435
public synthetic fun buildDialog (Lcom/squareup/workflow1/ui/container/Overlay;Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/content/Context;)Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;
436
436
public fun getType ()Lkotlin/reflect/KClass;
437
437
}
438
438
439
+
public final class com/squareup/workflow1/ui/container/AlertOverlayDialogFactoryKt {
440
+
public static final fun toDialogHolder (Landroid/app/AlertDialog;Lcom/squareup/workflow1/ui/ViewEnvironment;)Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;
441
+
}
442
+
439
443
public final class com/squareup/workflow1/ui/container/AndroidDialogBoundsKt {
440
444
public static final fun maintainBounds (Landroid/app/Dialog;Lcom/squareup/workflow1/ui/ViewEnvironment;Lkotlin/jvm/functions/Function1;)V
441
-
public static final fun maintainBounds (Landroid/app/Dialog;Lkotlinx/coroutines/flow/StateFlow;Lkotlin/jvm/functions/Function1;)V
442
445
public static final fun setBounds (Landroid/app/Dialog;Landroid/graphics/Rect;)V
443
446
}
444
447
@@ -612,26 +615,6 @@ public final class com/squareup/workflow1/ui/container/LayeredDialogSessions$Sav
612
615
public synthetic fun newArray (I)[Ljava/lang/Object;
613
616
}
614
617
615
-
public abstract interface class com/squareup/workflow1/ui/container/ModalScreenOverlayBackButtonHelper {
616
-
public static final field Companion Lcom/squareup/workflow1/ui/container/ModalScreenOverlayBackButtonHelper$Companion;
617
-
public abstract fun onBackPressed (Landroid/view/View;)Z
618
-
public abstract fun onContentViewUpdate (Landroid/view/View;)V
619
-
}
620
-
621
-
public final class com/squareup/workflow1/ui/container/ModalScreenOverlayBackButtonHelper$Companion : com/squareup/workflow1/ui/ViewEnvironmentKey {
622
-
public fun getDefault ()Lcom/squareup/workflow1/ui/container/ModalScreenOverlayBackButtonHelper;
623
-
public synthetic fun getDefault ()Ljava/lang/Object;
624
-
}
625
-
626
-
public final class com/squareup/workflow1/ui/container/ModalScreenOverlayBackButtonHelper$DefaultImpls {
627
-
public static fun onBackPressed (Lcom/squareup/workflow1/ui/container/ModalScreenOverlayBackButtonHelper;Landroid/view/View;)Z
628
-
public static fun onContentViewUpdate (Lcom/squareup/workflow1/ui/container/ModalScreenOverlayBackButtonHelper;Landroid/view/View;)V
629
-
}
630
-
631
-
public final class com/squareup/workflow1/ui/container/ModalScreenOverlayBackButtonHelperKt {
632
-
public static final fun plus (Lcom/squareup/workflow1/ui/ViewEnvironment;Lcom/squareup/workflow1/ui/container/ModalScreenOverlayBackButtonHelper;)Lcom/squareup/workflow1/ui/ViewEnvironment;
633
-
}
634
-
635
618
public final class com/squareup/workflow1/ui/container/OverlayArea {
636
619
public static final field Companion Lcom/squareup/workflow1/ui/container/OverlayArea$Companion;
637
620
public fun <init> (Lkotlinx/coroutines/flow/StateFlow;)V
@@ -673,6 +656,7 @@ public abstract interface class com/squareup/workflow1/ui/container/OverlayDialo
673
656
public static final field Companion Lcom/squareup/workflow1/ui/container/OverlayDialogHolder$Companion;
674
657
public abstract fun getDialog ()Landroid/app/Dialog;
675
658
public abstract fun getEnvironment ()Lcom/squareup/workflow1/ui/ViewEnvironment;
659
+
public abstract fun getOnBackPressed ()Lkotlin/jvm/functions/Function0;
676
660
public abstract fun getOnUpdateBounds ()Lkotlin/jvm/functions/Function1;
677
661
public abstract fun getRunner ()Lkotlin/jvm/functions/Function2;
678
662
}
@@ -691,24 +675,24 @@ public final class com/squareup/workflow1/ui/container/OverlayDialogHolder$Compa
691
675
}
692
676
693
677
public final class com/squareup/workflow1/ui/container/OverlayDialogHolderKt {
694
-
public static final fun OverlayDialogHolder (Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/app/Dialog;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;
695
-
public static synthetic fun OverlayDialogHolder$default (Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/app/Dialog;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;
678
+
public static final fun OverlayDialogHolder (Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/app/Dialog;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;)Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;
679
+
public static synthetic fun OverlayDialogHolder$default (Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/app/Dialog;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;
696
680
public static final fun canShow (Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;Lcom/squareup/workflow1/ui/container/Overlay;)Z
697
681
public static final fun getShowing (Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;)Lcom/squareup/workflow1/ui/container/Overlay;
698
682
public static final fun show (Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;Lcom/squareup/workflow1/ui/container/Overlay;Lcom/squareup/workflow1/ui/ViewEnvironment;)V
699
683
}
700
684
701
685
public final class com/squareup/workflow1/ui/container/RealOverlayDialogHolder : com/squareup/workflow1/ui/container/OverlayDialogHolder {
702
-
public fun <init> (Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/app/Dialog;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)V
686
+
public fun <init> (Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/app/Dialog;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;)V
703
687
public fun getDialog ()Landroid/app/Dialog;
704
688
public fun getEnvironment ()Lcom/squareup/workflow1/ui/ViewEnvironment;
689
+
public fun getOnBackPressed ()Lkotlin/jvm/functions/Function0;
705
690
public fun getOnUpdateBounds ()Lkotlin/jvm/functions/Function1;
706
691
public fun getRunner ()Lkotlin/jvm/functions/Function2;
707
692
}
708
693
709
694
public class com/squareup/workflow1/ui/container/ScreenOverlayDialogFactory : com/squareup/workflow1/ui/container/OverlayDialogFactory {
710
695
public fun <init> (Lkotlin/reflect/KClass;)V
711
-
public fun buildContent (Lcom/squareup/workflow1/ui/ScreenViewFactory;Lcom/squareup/workflow1/ui/Screen;Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/content/Context;)Lcom/squareup/workflow1/ui/ScreenViewHolder;
712
696
public synthetic fun buildDialog (Lcom/squareup/workflow1/ui/container/Overlay;Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/content/Context;)Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;
713
697
public final fun buildDialog (Lcom/squareup/workflow1/ui/container/ScreenOverlay;Lcom/squareup/workflow1/ui/ViewEnvironment;Landroid/content/Context;)Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;
714
698
public fun buildDialogWithContent (Lcom/squareup/workflow1/ui/container/ScreenOverlay;Lcom/squareup/workflow1/ui/ViewEnvironment;Lcom/squareup/workflow1/ui/ScreenViewHolder;)Lcom/squareup/workflow1/ui/container/OverlayDialogHolder;
Copy file name to clipboardExpand all lines: workflow-ui/core-android/src/androidTest/java/com/squareup/workflow1/ui/container/DialogIntegrationTest.kt
+5-13Lines changed: 5 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,6 @@
1
1
packagecom.squareup.workflow1.ui.container
2
2
3
3
importandroid.app.Dialog
4
-
importandroid.content.Context
5
4
importandroid.view.View
6
5
importandroid.widget.EditText
7
6
importandroidx.activity.ComponentActivity
@@ -55,24 +54,17 @@ internal class DialogIntegrationTest {
0 commit comments