Browse Source

fix lightbox not unmount bug when back pressed for android (#1636)

simin.chen 7 years ago
parent
commit
15d0451582

+ 9
- 1
android/app/src/main/java/com/reactnativenavigation/views/LightBox.java View File

@@ -29,14 +29,16 @@ public class LightBox extends Dialog implements DialogInterface.OnDismissListene
29 29
     private Runnable onDismissListener;
30 30
     private ContentView content;
31 31
     private RelativeLayout lightBox;
32
+    private boolean cancelable;
32 33
 
33 34
     public LightBox(AppCompatActivity activity, Runnable onDismissListener, LightBoxParams params) {
34 35
         super(activity, R.style.LightBox);
35 36
         this.onDismissListener = onDismissListener;
37
+        this.cancelable =!params.overrideBackPress; 
36 38
         setOnDismissListener(this);
37 39
         requestWindowFeature(Window.FEATURE_NO_TITLE);
38 40
         createContent(activity, params);
39
-        setCancelable(!params.overrideBackPress);
41
+        setCancelable(cancelable);
40 42
         getWindow().setWindowAnimations(android.R.style.Animation);
41 43
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
42 44
             getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
@@ -92,6 +94,12 @@ public class LightBox extends Dialog implements DialogInterface.OnDismissListene
92 94
         animateHide();
93 95
     }
94 96
 
97
+    @Override public void onBackPressed() {
98
+        if (cancelable) {
99
+            hide();
100
+        }
101
+    }
102
+
95 103
     @Override
96 104
     public void onDismiss(DialogInterface dialogInterface) {
97 105
         onDismissListener.run();