Browse Source

Send accept and cancel LeftButton events

Guy Carmeli 8 years ago
parent
commit
a2740d2a14

+ 2
- 1
android/app/src/main/java/com/reactnativenavigation/bridge/NavigationReactEventEmitter.java View File

9
 
9
 
10
     private static final String KEY_EVENT_ID = "id";
10
     private static final String KEY_EVENT_ID = "id";
11
     private static final String KEY_EVENT_TYPE = "type";
11
     private static final String KEY_EVENT_TYPE = "type";
12
+    private static final String KEY_NAVIGATOR_EVENT_ID = "navigatorEventID";
12
     private static final String EVENT_TYPE = "NavBarButtonPress";
13
     private static final String EVENT_TYPE = "NavBarButtonPress";
13
     private RCTDeviceEventEmitter eventEmitter;
14
     private RCTDeviceEventEmitter eventEmitter;
14
 
15
 
20
         WritableMap params = Arguments.createMap();
21
         WritableMap params = Arguments.createMap();
21
         params.putString(KEY_EVENT_TYPE, EVENT_TYPE);
22
         params.putString(KEY_EVENT_TYPE, EVENT_TYPE);
22
         params.putString(KEY_EVENT_ID, eventId);
23
         params.putString(KEY_EVENT_ID, eventId);
23
-        params.putString("navigatorEventID", navigatorEventId);
24
+        params.putString(KEY_NAVIGATOR_EVENT_ID, navigatorEventId);
24
         eventEmitter.emit(navigatorEventId, params);
25
         eventEmitter.emit(navigatorEventId, params);
25
     }
26
     }
26
 }
27
 }

+ 20
- 5
android/app/src/main/java/com/reactnativenavigation/views/LeftButton.java View File

5
 import android.view.View;
5
 import android.view.View;
6
 
6
 
7
 import com.balysv.materialmenu.MaterialMenuDrawable;
7
 import com.balysv.materialmenu.MaterialMenuDrawable;
8
+import com.reactnativenavigation.NavigationApplication;
8
 import com.reactnativenavigation.params.TitleBarButtonParams;
9
 import com.reactnativenavigation.params.TitleBarButtonParams;
9
 import com.reactnativenavigation.params.TitleBarLeftButtonParams;
10
 import com.reactnativenavigation.params.TitleBarLeftButtonParams;
10
 
11
 
32
         setInitialState();
33
         setInitialState();
33
     }
34
     }
34
 
35
 
35
-    private void setInitialState() {
36
-        if (params != null) {
37
-            setIconState(params.iconState);
38
-        } else {
39
-            setVisible(false);
36
+    public void setIconState(TitleBarLeftButtonParams params) {
37
+        this.params = params;
38
+        if (params.color.hasColor()) {
39
+            setColor(params.color.getColor());
40
         }
40
         }
41
+        animateIconState(params.iconState);
41
     }
42
     }
42
 
43
 
43
     @Override
44
     @Override
44
     public void onClick(View v) {
45
     public void onClick(View v) {
45
         if (isBackButton()) {
46
         if (isBackButton()) {
46
             titleBarBackButtonListener.onTitleBarBackPress();
47
             titleBarBackButtonListener.onTitleBarBackPress();
48
+        } else {
49
+            sendClickEvent();
50
+        }
51
+    }
52
+
53
+    private void setInitialState() {
54
+        if (params != null) {
55
+            setIconState(params.iconState);
56
+        } else {
57
+            setVisible(false);
47
         }
58
         }
48
     }
59
     }
49
 
60
 
50
     private boolean isBackButton() {
61
     private boolean isBackButton() {
51
         return getIconState() == IconState.ARROW;
62
         return getIconState() == IconState.ARROW;
52
     }
63
     }
64
+
65
+    private void sendClickEvent() {
66
+        NavigationApplication.instance.sendEvent(params.eventId, navigatorEventId);
67
+    }
53
 }
68
 }

+ 1
- 1
android/app/src/main/java/com/reactnativenavigation/views/TitleBar.java View File

48
         if (leftButton == null) {
48
         if (leftButton == null) {
49
             createAndSetLeftButton(leftButtonParams, titleBarBackButtonListener, navigatorEventId);
49
             createAndSetLeftButton(leftButtonParams, titleBarBackButtonListener, navigatorEventId);
50
         } else {
50
         } else {
51
-            leftButton.animateIconState(leftButtonParams.iconState);
51
+            leftButton.setIconState(leftButtonParams);
52
         }
52
         }
53
     }
53
     }
54
 
54