From 3d7b0fde40595bc708dbce3407a455b65e7c98dc Mon Sep 17 00:00:00 2001 From: Yedidya Kennard Date: Tue, 9 Aug 2016 18:04:10 +0300 Subject: [PATCH] Moved getting icon for selected and unselected to background thread --- .../RNCameraKit/gallery/GalleryAdapter.java | 1 - .../gallery/GalleryViewManager.java | 35 +++++++++++++++---- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/android/src/main/java/com/wix/RNCameraKit/gallery/GalleryAdapter.java b/android/src/main/java/com/wix/RNCameraKit/gallery/GalleryAdapter.java index 1e890a4..d7e5e7c 100644 --- a/android/src/main/java/com/wix/RNCameraKit/gallery/GalleryAdapter.java +++ b/android/src/main/java/com/wix/RNCameraKit/gallery/GalleryAdapter.java @@ -126,7 +126,6 @@ public class GalleryAdapter extends RecyclerView.Adapter { public static final int COMMAND_REFRESH_GALLERY = 1; + private ThemedReactContext reactContext; @Override public String getName() { @@ -32,6 +34,7 @@ public class GalleryViewManager extends SimpleViewManager { @Override protected GalleryView createViewInstance(ThemedReactContext reactContext) { + this.reactContext = reactContext; return new GalleryView(reactContext); } @@ -65,15 +68,35 @@ public class GalleryViewManager extends SimpleViewManager { } @ReactProp(name = "selectedImageIcon") - public void setSelectedImage(GalleryView view, String imageSource) { - Drawable drawable = ResourceDrawableIdHelper.getIcon(view.getContext(), imageSource); - view.setSelectedDrawable(drawable); + public void setSelectedImage(final GalleryView view, final String imageSource) { + new Thread(new Runnable() { + @Override + public void run() { + final Drawable drawable = ResourceDrawableIdHelper.getIcon(view.getContext(), imageSource); + reactContext.runOnUiQueueThread(new Runnable() { + @Override + public void run() { + view.setSelectedDrawable(drawable); + } + }); + } + }).start(); } @ReactProp(name = "unSelectedImageIcon") - public void setUnelectedImage(GalleryView view, String imageSource) { - Drawable drawable = ResourceDrawableIdHelper.getIcon(view.getContext(), imageSource); - view.setUnselectedDrawable(drawable); + public void setUnselectedImage(final GalleryView view, final String imageSource) { + new Thread(new Runnable() { + @Override + public void run() { + final Drawable drawable = ResourceDrawableIdHelper.getIcon(view.getContext(), imageSource); + reactContext.runOnUiQueueThread(new Runnable() { + @Override + public void run() { + view.setUnselectedDrawable(drawable); + } + }); + } + }).start(); } @Nullable