Quellcode durchsuchen

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 vor 9 Jahren
Ursprung
Commit
9e3715e523

+ 4
- 2
android/app/src/main/java/com/reactnativenavigation/views/SnackbarAndFabContainer.java Datei anzeigen

36
     }
36
     }
37
 
37
 
38
     @Override
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
     public void destroy() {
45
     public void destroy() {

+ 2
- 2
android/app/src/main/java/com/reactnativenavigation/views/Snakbar.java Datei anzeigen

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