Ver código fonte

Fix Snackbar not dismissing bug

When Snackbar was displayed while another Snackbar was displayed,
the last ref to the current Snackbar was removed and it didn't get removed
when onScreenChange was called.
Guy Carmeli 8 anos atrás
pai
commit
9e3715e523

+ 4
- 2
android/app/src/main/java/com/reactnativenavigation/views/SnackbarAndFabContainer.java Ver arquivo

@@ -36,8 +36,10 @@ public class SnackbarAndFabContainer extends CoordinatorLayout implements Snakba
36 36
     }
37 37
 
38 38
     @Override
39
-    public void onDismiss() {
40
-        snakbar = null;
39
+    public void onDismiss(Snakbar snakbar) {
40
+        if (this.snakbar == snakbar) {
41
+            this.snakbar = null;
42
+        }
41 43
     }
42 44
 
43 45
     public void destroy() {

+ 2
- 2
android/app/src/main/java/com/reactnativenavigation/views/Snakbar.java Ver arquivo

@@ -13,7 +13,7 @@ public class Snakbar {
13 13
     private Snackbar snackbar;
14 14
 
15 15
     public interface OnDismissListener {
16
-        void onDismiss();
16
+        void onDismiss(Snakbar snakbar);
17 17
     }
18 18
 
19 19
     public void show() {
@@ -68,7 +68,7 @@ public class Snakbar {
68 68
 
69 69
             @Override
70 70
             public void onViewDetachedFromWindow(View v) {
71
-                parent.onDismiss();
71
+                parent.onDismiss(Snakbar.this);
72 72
             }
73 73
         });
74 74
     }