Merge pull request #47 from gevorg94/selected-overlay

pass overlayColor to selected image [android]
This commit is contained in:
Ran 2017-06-30 13:16:57 +03:00 committed by GitHub
commit 4f2b05d763
4 changed files with 23 additions and 2 deletions

View File

@ -88,7 +88,7 @@ public class GalleryAdapter extends RecyclerView.Adapter<GalleryAdapter.AbsViewH
final SelectableImage selectableImageView = (SelectableImage) this.itemView;
selectableImageView.setUnsupportedUIParams(overlayColor, unsupportedFinalImage, unsupportedText, unsupportedTextColor);
selectableImageView.setDrawables(selectedDrawable, unselectedDrawable);
selectableImageView.setDrawables(selectedDrawable, unselectedDrawable, selectionOverlayColor);
selectableImageView.bind(executor, selected, forceBind, image.id, isSupported);
selectableImageView.setOnClickListener(this);
}
@ -162,6 +162,7 @@ public class GalleryAdapter extends RecyclerView.Adapter<GalleryAdapter.AbsViewH
}
private String overlayColor;
private Integer selectionOverlayColor;
private Drawable unsupportedFinalImage;
private String unsupportedText;
private String unsupportedTextColor;
@ -222,6 +223,10 @@ public class GalleryAdapter extends RecyclerView.Adapter<GalleryAdapter.AbsViewH
this.selectedDrawableSize = selectedDrawableSize;
}
public void setSelectionOverlayColor(Integer overlayColor) {
this.selectionOverlayColor = overlayColor;
}
public void setSupportedFileTypes(ArrayList<String> supportedFileTypes) {
this.supportedFileTypes = supportedFileTypes;

View File

@ -35,6 +35,7 @@ public class GalleryViewManager extends SimpleViewManager<GalleryView> {
private final String SELECTION_POSITION_KEY = "imagePosition";
private final String SELECTION_SIZE_KEY = "imageSizeAndroid";
private final String SELECTION_ENABLED_KEY = "enable";
private final String SELECTION_OVERLAY_KEY = "overlayColor";
/**
* A handler is required in order to sync configurations made to the adapter - some must run off the UI thread (e.g. drawables
@ -142,6 +143,7 @@ public class GalleryViewManager extends SimpleViewManager<GalleryView> {
final Integer position = getIntSafe(selectionProps, SELECTION_POSITION_KEY);
final String size = getStringSafe(selectionProps, SELECTION_SIZE_KEY);
final Boolean enabled = getBooleanSafe(selectionProps, SELECTION_ENABLED_KEY);
final Integer selectionOverlayColor = getIntSafe(selectionProps, SELECTION_OVERLAY_KEY);
dispatchOnConfigJobQueue(new Runnable() {
@Override
public void run() {
@ -167,6 +169,7 @@ public class GalleryViewManager extends SimpleViewManager<GalleryView> {
}
viewAdapter.setShouldEnabledSelection(enabled != null ? enabled : true);
viewAdapter.setSelectionOverlayColor(selectionOverlayColor);
}
});
}

View File

@ -9,6 +9,7 @@ import android.graphics.drawable.Drawable;
import android.provider.MediaStore;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
@ -33,6 +34,7 @@ public class SelectableImage extends FrameLayout {
private final ImageView imageView;
private final ImageView selectedView;
private final View selectedOverlay;
private int id = -1;
private Runnable currentLoader;
private Drawable selectedDrawable;
@ -40,6 +42,7 @@ public class SelectableImage extends FrameLayout {
private LinearLayout unsupportedLayout;
private ImageView unsupportedImage;
private TextView unsupportedTextView;
private int selectedOverlayColor = Color.parseColor("#80FFFFFF");
private boolean selected;
private int inSampleSize;
@ -50,6 +53,9 @@ public class SelectableImage extends FrameLayout {
imageView = new ImageView(context);
addView(imageView, MATCH_PARENT, MATCH_PARENT);
selectedOverlay = new View(context);
addView(selectedOverlay, MATCH_PARENT, MATCH_PARENT);
selectedView = new ImageView(context);
addView(selectedView, createSelectedImageParams(selectedImageGravity, selectedImageSize));
@ -152,11 +158,13 @@ public class SelectableImage extends FrameLayout {
public void setSelected(boolean selected) {
this.selected = selected;
selectedView.setImageDrawable(selected ? selectedDrawable : unselectedDrawable);
selectedOverlay.setBackgroundColor(selected ? this.selectedOverlayColor : Color.TRANSPARENT);
}
public void setDrawables(Drawable selectedDrawable, Drawable unselectedDrawable) {
public void setDrawables(Drawable selectedDrawable, Drawable unselectedDrawable, Integer overlayColor) {
this.selectedDrawable = selectedDrawable;
this.unselectedDrawable = unselectedDrawable;
this.selectedOverlayColor = overlayColor != null ? overlayColor : Color.parseColor("#80FFFFFF");
}

View File

@ -73,6 +73,11 @@ export default class CameraKitGalleryView extends Component {
_.update(transformedProps, 'selection.imagePosition', (position) => positionCode);
}
const selectionOverlayColor = _.get(transformedProps, 'selection.overlayColor');
if (selectionOverlayColor) {
_.update(transformedProps, 'selection.overlayColor', (color) => processColor(selectionOverlayColor));
}
return <GalleryView {...transformedProps} onTapImage={this.onTapImage}/>
}