Explorar el Código

Handle disabled buttons

The "disabled" property of RightButtons was not handled.
Guy Carmeli hace 8 años
padre
commit
c8bc26a8a4

+ 3
- 7
android/app/src/main/java/com/reactnativenavigation/core/objects/Button.java Ver fichero

@@ -1,20 +1,13 @@
1 1
 package com.reactnativenavigation.core.objects;
2 2
 
3 3
 import android.content.Context;
4
-import android.graphics.Bitmap;
5
-import android.graphics.BitmapFactory;
6
-import android.graphics.drawable.BitmapDrawable;
7 4
 import android.graphics.drawable.Drawable;
8
-import android.net.Uri;
9 5
 import android.view.MenuItem;
10 6
 
11 7
 import com.facebook.react.bridge.ReadableMap;
12
-import com.reactnativenavigation.BuildConfig;
13 8
 import com.reactnativenavigation.utils.IconUtils;
14
-import com.reactnativenavigation.utils.ResourceDrawableIdHelper;
15 9
 
16 10
 import java.io.Serializable;
17
-import java.net.URL;
18 11
 import java.util.HashMap;
19 12
 import java.util.Map;
20 13
 import java.util.concurrent.atomic.AtomicInteger;
@@ -28,10 +21,12 @@ public class Button extends JsonObject implements Serializable {
28 21
     private static final String KEY_ID = "id";
29 22
     private static final String KEY_TITLE = "title";
30 23
     private static final String KEY_ICON = "icon";
24
+    private static final String KEY_DISABLED = "disabled";
31 25
 
32 26
     public String id;
33 27
     public String title;
34 28
     private String mIconSource;
29
+    public boolean disabled;
35 30
 
36 31
     private static final AtomicInteger sAtomicIdGenerator = new AtomicInteger();
37 32
     private static final Map<String, Integer> sStringToNumericId = new HashMap<>();
@@ -40,6 +35,7 @@ public class Button extends JsonObject implements Serializable {
40 35
         id = getString(button, KEY_ID);
41 36
         title = getString(button, KEY_TITLE, "");
42 37
         mIconSource = getString(button, KEY_ICON);
38
+        disabled = getBoolean(button, KEY_DISABLED);
43 39
     }
44 40
 
45 41
     public boolean hasIcon() {

+ 1
- 1
android/app/src/main/java/com/reactnativenavigation/core/objects/JsonObject.java Ver fichero

@@ -30,6 +30,6 @@ public class JsonObject {
30 30
     }
31 31
     
32 32
     protected Boolean getBoolean(ReadableMap map, String key) {
33
-        return map.hasKey(key) ? map.getBoolean(key) : null;
33
+        return map.hasKey(key) && map.getBoolean(key);
34 34
     }
35 35
 }

+ 4
- 0
android/app/src/main/java/com/reactnativenavigation/views/RnnToolBar.java Ver fichero

@@ -234,6 +234,10 @@ public class RnnToolBar extends Toolbar {
234 234
                     }
235 235
                     item.setIcon(icon);
236 236
                 }
237
+
238
+                if (button.disabled) {
239
+                    item.setEnabled(false);
240
+                }
237 241
             }
238 242
 
239 243
             RnnToolBar toolBar = mToolbarWR.get();