ソースを参照

visibilityAnimator refactor

Daniel Zlotin 8 年 前
コミット
878c0009d6

+ 3
- 4
android/app/src/main/java/com/reactnativenavigation/animation/VisibilityAnimator.java ファイルの表示

8
 
8
 
9
 import com.reactnativenavigation.views.ScrollDirectionListener;
9
 import com.reactnativenavigation.views.ScrollDirectionListener;
10
 
10
 
11
-// TODO find a better name for this class
12
 public class VisibilityAnimator {
11
 public class VisibilityAnimator {
13
 
12
 
14
     public enum HideDirection {
13
     public enum HideDirection {
42
     }
41
     }
43
 
42
 
44
     public void setVisible(boolean visible, boolean animate) {
43
     public void setVisible(boolean visible, boolean animate) {
45
-        if (isShowing() && !visible) {
46
-            hide(animate);
47
-        } else if (isHiding() && visible) {
44
+        if (visible && isHiding()) {
48
             show(animate);
45
             show(animate);
46
+        } else if (!visible && isShowing()) {
47
+            hide(animate);
49
         }
48
         }
50
     }
49
     }
51
 
50
 

+ 1
- 1
android/app/src/main/java/com/reactnativenavigation/bridge/NavigationReactModule.java ファイルの表示

59
 
59
 
60
     @ReactMethod
60
     @ReactMethod
61
     public void setTopBarVisible(String screenInstanceID, boolean hidden, boolean animated) {
61
     public void setTopBarVisible(String screenInstanceID, boolean hidden, boolean animated) {
62
-        NavigationCommandsHandler.toggleTopBarVisible(screenInstanceID, hidden, animated);
62
+        NavigationCommandsHandler.setTopBarVisible(screenInstanceID, hidden, animated);
63
     }
63
     }
64
 
64
 
65
     @ReactMethod
65
     @ReactMethod

+ 1
- 1
android/app/src/main/java/com/reactnativenavigation/controllers/NavigationCommandsHandler.java ファイルの表示

90
         });
90
         });
91
     }
91
     }
92
 
92
 
93
-    public static void toggleTopBarVisible(final String screenInstanceID, final boolean hidden, final boolean animated) {
93
+    public static void setTopBarVisible(final String screenInstanceID, final boolean hidden, final boolean animated) {
94
         final NavigationActivity currentActivity = NavigationActivity.currentActivity;
94
         final NavigationActivity currentActivity = NavigationActivity.currentActivity;
95
         if (currentActivity == null) {
95
         if (currentActivity == null) {
96
             return;
96
             return;

+ 3
- 6
android/app/src/main/java/com/reactnativenavigation/layouts/ScreenStack.java ファイルの表示

6
 
6
 
7
 import com.reactnativenavigation.params.ScreenParams;
7
 import com.reactnativenavigation.params.ScreenParams;
8
 
8
 
9
-import java.util.Iterator;
10
 import java.util.Stack;
9
 import java.util.Stack;
11
 
10
 
12
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
11
 import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
98
             return null;
97
             return null;
99
         }
98
         }
100
 
99
 
101
-        Iterator<Screen> iterator = stack.iterator();
102
-        while (iterator.hasNext()) {
103
-            Screen next = iterator.next();
104
-            if (next.getScreenInstanceId().equals(screenInstanceId)) {
105
-                return next;
100
+        for (Screen screen : stack) {
101
+            if (screen.getScreenInstanceId().equals(screenInstanceId)) {
102
+                return screen;
106
             }
103
             }
107
         }
104
         }
108
 
105
 

+ 1
- 1
android/app/src/main/java/com/reactnativenavigation/views/ScrollViewAttacher.java ファイルの表示

22
         }
22
         }
23
     }
23
     }
24
 
24
 
25
-    public void detach() {
25
+    private void detach() {
26
         if (scrollView != null) {
26
         if (scrollView != null) {
27
             scrollView.getViewTreeObserver().removeOnScrollChangedListener(scrollDirectionListener);
27
             scrollView.getViewTreeObserver().removeOnScrollChangedListener(scrollDirectionListener);
28
             scrollDirectionListener = null;
28
             scrollDirectionListener = null;