Ver código fonte

Handle disabled buttons

The "disabled" property of RightButtons was not handled.
Guy Carmeli 8 anos atrás
pai
commit
c8bc26a8a4

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

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

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

30
     }
30
     }
31
     
31
     
32
     protected Boolean getBoolean(ReadableMap map, String key) {
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 arquivo

234
                     }
234
                     }
235
                     item.setIcon(icon);
235
                     item.setIcon(icon);
236
                 }
236
                 }
237
+
238
+                if (button.disabled) {
239
+                    item.setEnabled(false);
240
+                }
237
             }
241
             }
238
 
242
 
239
             RnnToolBar toolBar = mToolbarWR.get();
243
             RnnToolBar toolBar = mToolbarWR.get();