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