2121import ir .smartdevelopers .smartfilebrowser .customClasses .FileUtil ;
2222import ir .smartdevelopers .smartfilebrowser .customClasses .OnItemChooseListener ;
2323import ir .smartdevelopers .smartfilebrowser .customClasses .OnItemClickListener ;
24+ import ir .smartdevelopers .smartfilebrowser .customClasses .OnItemLongClickListener ;
2425import ir .smartdevelopers .smartfilebrowser .customClasses .OnItemSelectListener ;
2526import ir .smartdevelopers .smartfilebrowser .customClasses .SFBCountingCheckBox ;
2627import ir .smartdevelopers .smartfilebrowser .models .FileModel ;
@@ -33,6 +34,7 @@ public class GalleryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
3334 private boolean mCanSelectMultiple =true ;
3435 private OnItemSelectListener <FileModel > mOnItemSelectListener ;
3536 private OnItemClickListener <GalleryModel > mOnItemClickListener ;
37+ private OnItemLongClickListener <GalleryModel > mOnItemLongClickListener ;
3638 private OnItemChooseListener mOnItemChooseListener ;
3739
3840 public GalleryAdapter (List <File > selectedFiles ) {
@@ -164,6 +166,10 @@ public GalleryModel getItem(int editedImagePosition) {
164166 return mGalleryModels .get (editedImagePosition );
165167 }
166168
169+ public void setOnItemLongClickListener (OnItemLongClickListener <GalleryModel > onItemLongClickListener ) {
170+ mOnItemLongClickListener = onItemLongClickListener ;
171+ }
172+
167173 class CameraViewHolder extends RecyclerView .ViewHolder {
168174 AppCompatImageView mImageView ;
169175 public CameraViewHolder (@ NonNull View itemView ) {
@@ -198,15 +204,31 @@ public GalleryViewHolder(@NonNull View itemView) {
198204 }
199205 mImageView .setOnClickListener (v ->{
200206 if (mCanSelectMultiple ){
201- if (mOnItemClickListener != null ) {
202- mOnItemClickListener .onItemClicked (mGalleryModels .get (getAdapterPosition ()),getAdapterPosition ());
207+ if (mGalleryModels .get (getAdapterPosition ()).getType ()==GalleryModel .TYPE_CAMERA ){
208+ if (mOnItemClickListener != null ) {
209+ mOnItemClickListener .onItemClicked (mGalleryModels .get (getAdapterPosition ()),getAdapterPosition ());
210+ }
211+ }else {
212+ setImageSelected (mGalleryModels .get (getAdapterPosition ()), !mGalleryModels .get (getAdapterPosition ()).isSelected ());
203213 }
214+
215+
204216 }else {
205217 if (mOnItemChooseListener != null ) {
206218 mOnItemChooseListener .onChoose (mGalleryModels .get (getAdapterPosition ()));
207219 }
208220 }
209221 });
222+ mImageView .setOnLongClickListener (new View .OnLongClickListener () {
223+ @ Override
224+ public boolean onLongClick (View v ) {
225+ if (mOnItemLongClickListener != null ) {
226+ mOnItemLongClickListener .onLongClicked (mGalleryModels .get (getAdapterPosition ()),getAdapterPosition ());
227+ return true ;
228+ }
229+ return false ;
230+ }
231+ });
210232
211233 }
212234 void bindView (GalleryModel model ){
@@ -268,6 +290,7 @@ private void setImageSelected(GalleryModel model, boolean selected) {
268290 model .setNumber (mSelectedFiles .size ());
269291 notifyItemChanged (pos ,"checked_changed" );
270292 }else {
293+ notifyItemChanged (pos ,"checked_changed" );
271294 if (model .getNumber ()<previousSize ){
272295
273296 int selectionCount =mGalleryModels .size ();
0 commit comments