Moved getting icon for selected and unselected to background thread

This commit is contained in:
Yedidya Kennard 2016-08-09 18:04:10 +03:00
parent 0273672e71
commit 3d7b0fde40
2 changed files with 29 additions and 7 deletions

View File

@ -126,7 +126,6 @@ public class GalleryAdapter extends RecyclerView.Adapter<GalleryAdapter.StupidHo
@Override
public void run() {
notifyDataSetChanged();
}
});
}

View File

@ -5,6 +5,7 @@ import android.graphics.drawable.Drawable;
import android.util.Log;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
@ -24,6 +25,7 @@ import javax.annotation.Nullable;
public class GalleryViewManager extends SimpleViewManager<GalleryView> {
public static final int COMMAND_REFRESH_GALLERY = 1;
private ThemedReactContext reactContext;
@Override
public String getName() {
@ -32,6 +34,7 @@ public class GalleryViewManager extends SimpleViewManager<GalleryView> {
@Override
protected GalleryView createViewInstance(ThemedReactContext reactContext) {
this.reactContext = reactContext;
return new GalleryView(reactContext);
}
@ -65,15 +68,35 @@ public class GalleryViewManager extends SimpleViewManager<GalleryView> {
}
@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