Skip to content

Instantly share code, notes, and snippets.

@CodeBoy722
Created May 12, 2019 14:31
Show Gist options
  • Save CodeBoy722/2be03404b50bce6987f8a569d3d0b623 to your computer and use it in GitHub Desktop.
Save CodeBoy722/2be03404b50bce6987f8a569d3d0b623 to your computer and use it in GitHub Desktop.
private ArrayList<imageFolder> getPicturePaths(){
ArrayList<imageFolder> picFolders = new ArrayList<>();
ArrayList<String> picPaths = new ArrayList<>();
Uri allImagesuri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
String[] projection = { MediaStore.Images.ImageColumns.DATA ,MediaStore.Images.Media.DISPLAY_NAME,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,MediaStore.Images.Media.BUCKET_ID};
Cursor cursor = this.getContentResolver().query(allImagesuri, projection, null, null, null);
try {
if (cursor != null) {
cursor.moveToFirst();
}
do{
imageFolder folds = new imageFolder();
String name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DISPLAY_NAME));
String folder = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME));
String datapath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
//String folderpaths = datapath.replace(name,"");
String folderpaths = datapath.substring(0, datapath.lastIndexOf(folder+"/"));
folderpaths = folderpaths+folder+"/";
if (!picPaths.contains(folderpaths)) {
picPaths.add(folderpaths);
folds.setPath(folderpaths);
folds.setFolderName(folder);
folds.setFirstPic(datapath);//if the folder has only one picture this line helps to set it as first so as to avoid blank image in itemview
folds.addpics();
picFolders.add(folds);
}else{
for(int i = 0;i<picFolders.size();i++){
if(picFolders.get(i).getPath().equals(folderpaths)){
picFolders.get(i).setFirstPic(datapath);
picFolders.get(i).addpics();
}
}
}
}while(cursor.moveToNext());
cursor.close();
} catch (Exception e) {
e.printStackTrace();
}
for(int i = 0;i < picFolders.size();i++){
Log.d("picture folders",picFolders.get(i).getFolderName()+" and path = "+picFolders.get(i).getPath()+" "+picFolders.get(i).getNumberOfPics());
}
return picFolders;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment