Sfoglia il codice sorgente

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 anni fa
parent
commit
9e3715e523

+ 4
- 2
android/app/src/main/java/com/reactnativenavigation/views/SnackbarAndFabContainer.java Vedi File

@@ -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 Vedi File

@@ -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
     }