Browse Source

Pass collapsingToolBarComponent param from Java

Guy Carmeli 8 years ago
parent
commit
4a9bd78bad

+ 5
- 0
android/app/src/main/java/com/reactnativenavigation/params/CollapsingTopBarParams.java View File

6
 
6
 
7
 public class CollapsingTopBarParams {
7
 public class CollapsingTopBarParams {
8
     public @Nullable String imageUri;
8
     public @Nullable String imageUri;
9
+    public @Nullable String reactViewId;
9
     public StyleParams.Color scrimColor;
10
     public StyleParams.Color scrimColor;
10
     public CollapseBehaviour collapseBehaviour;
11
     public CollapseBehaviour collapseBehaviour;
11
 
12
 
12
     public boolean hasBackgroundImage() {
13
     public boolean hasBackgroundImage() {
13
         return imageUri != null;
14
         return imageUri != null;
14
     }
15
     }
16
+
17
+    public boolean hasReactView() {
18
+        return reactViewId != null;
19
+    }
15
 }
20
 }

+ 15
- 5
android/app/src/main/java/com/reactnativenavigation/params/parsers/CollapsingTopBarParamsParser.java View File

22
     }
22
     }
23
 
23
 
24
     public CollapsingTopBarParams parse() {
24
     public CollapsingTopBarParams parse() {
25
-        if (!hasBackgroundImage() && !titleBarHideOnScroll) {
25
+        if (!validateParams()) {
26
             return null;
26
             return null;
27
         }
27
         }
28
-
29
         CollapsingTopBarParams result = new CollapsingTopBarParams();
28
         CollapsingTopBarParams result = new CollapsingTopBarParams();
30
-        if (hasBackgroundImage()) {
31
-            result.imageUri = params.getString("collapsingToolBarImage");
32
-        }
29
+        result.imageUri = params.getString("collapsingToolBarImage", null);
30
+        result.reactViewId = params.getString("collapsingToolBarComponent", null);
33
         result.scrimColor = getColor(params, "collapsingToolBarCollapsedColor", new StyleParams.Color(Color.WHITE));
31
         result.scrimColor = getColor(params, "collapsingToolBarCollapsedColor", new StyleParams.Color(Color.WHITE));
34
         result.collapseBehaviour = getCollapseBehaviour();
32
         result.collapseBehaviour = getCollapseBehaviour();
35
         return result;
33
         return result;
36
     }
34
     }
37
 
35
 
36
+    private boolean validateParams() {
37
+        return titleBarHideOnScroll || hasImageOrReactView();
38
+    }
39
+
40
+    private boolean hasImageOrReactView() {
41
+        return hasBackgroundImage() || hasReactView();
42
+    }
43
+
38
     private CollapseBehaviour getCollapseBehaviour() {
44
     private CollapseBehaviour getCollapseBehaviour() {
39
         if (hasBackgroundImage()) {
45
         if (hasBackgroundImage()) {
40
             return new CollapseTopBarBehaviour();
46
             return new CollapseTopBarBehaviour();
48
     private boolean hasBackgroundImage() {
54
     private boolean hasBackgroundImage() {
49
         return params.containsKey("collapsingToolBarImage");
55
         return params.containsKey("collapsingToolBarImage");
50
     }
56
     }
57
+
58
+    private boolean hasReactView() {
59
+        return params.containsKey("collapsingToolBarComponent");
60
+    }
51
 }
61
 }

+ 1
- 0
src/deprecated/platformSpecificDeprecated.android.js View File

126
     topBarTranslucent: originalStyleObject.navBarTranslucent,
126
     topBarTranslucent: originalStyleObject.navBarTranslucent,
127
     topBarElevationShadowEnabled: originalStyleObject.topBarElevationShadowEnabled,
127
     topBarElevationShadowEnabled: originalStyleObject.topBarElevationShadowEnabled,
128
     collapsingToolBarImage: originalStyleObject.collapsingToolBarImage,
128
     collapsingToolBarImage: originalStyleObject.collapsingToolBarImage,
129
+    collapsingToolBarComponent: originalStyleObject.collapsingToolBarComponent,
129
     collapsingToolBarCollapsedColor: processColor(originalStyleObject.collapsingToolBarCollapsedColor),
130
     collapsingToolBarCollapsedColor: processColor(originalStyleObject.collapsingToolBarCollapsedColor),
130
     titleBarHidden: originalStyleObject.navBarHidden,
131
     titleBarHidden: originalStyleObject.navBarHidden,
131
     titleBarHideOnScroll: originalStyleObject.navBarHideOnScroll,
132
     titleBarHideOnScroll: originalStyleObject.navBarHideOnScroll,