Skip to content

Commit 93df26e

Browse files
committed
change image selection to select image by clickin on it and edit image by long click on it
1 parent 259038a commit 93df26e

File tree

3 files changed

+45
-3
lines changed

3 files changed

+45
-3
lines changed

SmartFileBrowser/src/main/java/ir/smartdevelopers/smartfilebrowser/acitivties/FileBrowserMainActivity.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import iamutkarshtiwari.github.io.ananas.editimage.ImageEditorIntentBuilder;
4444
import ir.smartdevelopers.smartfilebrowser.R;
4545
import ir.smartdevelopers.smartfilebrowser.adapters.AlbumAdapter;
46+
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemLongClickListener;
4647
import ir.smartdevelopers.smartfilebrowser.models.FileModel;
4748
import ir.smartdevelopers.smartfilebrowser.customClasses.FileUtil;
4849
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemChooseListener;
@@ -85,6 +86,7 @@ public class FileBrowserMainActivity extends AppCompatActivity {
8586
private OnItemChooseListener mOnItemChooseListener;
8687
// private OnItemSelectListener<GalleryModel> mOnGalleryItemSelectListener;
8788
private OnItemClickListener<GalleryModel> mOnGalleryItemClickListener;
89+
private OnItemLongClickListener<GalleryModel> mOnGalleryItemLongClickListener;
8890

8991
private SearchView.OnVisibilityChangeListener mOnVisibilityChangeListener;
9092
private SelectionFileViewModel mSelectionFileViewModel;
@@ -342,13 +344,22 @@ public void onItemClicked(GalleryModel model, int position) {
342344
if (!mCanSelectMultipleInGallery) {
343345
sendBackResult(model);
344346
} else {
345-
//Todo manage on item click for user
346347
if (model.getType()==FileUtil.TYPE_IMAGE){
347348
openImageEditor(model,position);
348349
}
349350
}
350351
}
351352
};
353+
mOnGalleryItemLongClickListener=new OnItemLongClickListener<GalleryModel>() {
354+
@Override
355+
public void onLongClicked(GalleryModel model, int position) {
356+
357+
if (model.getType()==FileUtil.TYPE_IMAGE){
358+
openImageEditor(model,position);
359+
}
360+
361+
}
362+
};
352363
mOnVisibilityChangeListener = new SearchView.OnVisibilityChangeListener() {
353364
@Override
354365
public void onVisibilityChanged(boolean isShowing) {
@@ -1073,6 +1084,10 @@ public OnItemChooseListener getOnItemChooseListener() {
10731084
return mOnItemChooseListener;
10741085
}
10751086

1087+
public OnItemLongClickListener<GalleryModel> getOnGalleryItemLongClickListener() {
1088+
return mOnGalleryItemLongClickListener;
1089+
}
1090+
10761091
public enum PageType {
10771092
TYPE_GALLERY, TYPE_FILE_BROWSER, TYPE_PDF, TYPE_AUDIO, TYPE_VIDEO
10781093
}

SmartFileBrowser/src/main/java/ir/smartdevelopers/smartfilebrowser/adapters/GalleryAdapter.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import ir.smartdevelopers.smartfilebrowser.customClasses.FileUtil;
2222
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemChooseListener;
2323
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemClickListener;
24+
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemLongClickListener;
2425
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemSelectListener;
2526
import ir.smartdevelopers.smartfilebrowser.customClasses.SFBCountingCheckBox;
2627
import 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();

SmartFileBrowser/src/main/java/ir/smartdevelopers/smartfilebrowser/fragments/GalleryFragment.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import ir.smartdevelopers.smartfilebrowser.customClasses.GalleyItemDecoration;
3636
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemChooseListener;
3737
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemClickListener;
38+
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemLongClickListener;
3839
import ir.smartdevelopers.smartfilebrowser.customClasses.OnItemSelectListener;
3940
import ir.smartdevelopers.smartfilebrowser.models.AlbumModel;
4041
import ir.smartdevelopers.smartfilebrowser.models.FileModel;
@@ -52,6 +53,7 @@ public class GalleryFragment extends Fragment {
5253
private SelectionFileViewModel mSelectionFileViewModel;
5354
private GridLayoutManager mGridLayoutManager;
5455
private OnItemClickListener<GalleryModel> mGalleryModelItemClickListener;
56+
private OnItemLongClickListener<GalleryModel> mGalleryModelItemLongClickListener;
5557
private OnItemClickListener<GalleryModel> mOnGalleryItemClickListener_m;
5658
private OnItemChooseListener mOnItemChooseListener;
5759
private OnItemSelectListener<FileModel> mOnItemSelectListener;
@@ -80,6 +82,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup c
8082
if (activity!=null){
8183
mOnItemSelectListener=activity.getOnFileItemSelectListener();
8284
mOnGalleryItemClickListener_m=activity.getOnGalleryItemClickListener();
85+
mGalleryModelItemLongClickListener=activity.getOnGalleryItemLongClickListener();
8386
mOnItemChooseListener=activity.getOnItemChooseListener();
8487
}
8588
Bundle bundle=getArguments();
@@ -116,6 +119,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
116119
mGalleryAdapter.setCanSelectMultiple(mCanSelectMultipleInGallery);
117120
mGalleryAdapter.setOnItemClickListener(mGalleryModelItemClickListener);
118121
mGalleryAdapter.setOnItemSelectListener(mOnItemSelectListener);
122+
mGalleryAdapter.setOnItemLongClickListener(mGalleryModelItemLongClickListener);
119123
mGalleryAdapter.setOnItemChooseListener(mOnItemChooseListener);
120124
mGalleryRecyclerView.setAdapter(mGalleryAdapter);
121125

0 commit comments

Comments
 (0)