Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. private ArrayList<imageFolder> getPicturePaths(){
  2. ArrayList<imageFolder> picFolders = new ArrayList<>();
  3. ArrayList<String> picPaths = new ArrayList<>();
  4. Uri allImagesuri = android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
  5. String[] projection = { MediaStore.Images.ImageColumns.DATA ,MediaStore.Images.Media.DISPLAY_NAME,
  6. MediaStore.Images.Media.BUCKET_DISPLAY_NAME,MediaStore.Images.Media.BUCKET_ID};
  7. Cursor cursor = this.getContentResolver().query(allImagesuri, projection, null, null, null);
  8. try {
  9. if (cursor != null) {
  10. cursor.moveToFirst();
  11. }
  12. do{
  13. imageFolder folds = new imageFolder();
  14. String name = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DISPLAY_NAME));
  15. String folder = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.BUCKET_DISPLAY_NAME));
  16. String datapath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
  17.  
  18. //String folderpaths = datapath.replace(name,"");
  19. String folderpaths = datapath.substring(0, datapath.lastIndexOf(folder+"/"));
  20. folderpaths = folderpaths+folder+"/";
  21. if (!picPaths.contains(folderpaths)) {
  22. picPaths.add(folderpaths);
  23.  
  24. folds.setPath(folderpaths);
  25. folds.setFolderName(folder);
  26. 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
  27. folds.addpics();
  28. picFolders.add(folds);
  29. }else{
  30. for(int i = 0;i<picFolders.size();i++){
  31. if(picFolders.get(i).getPath().equals(folderpaths)){
  32. picFolders.get(i).setFirstPic(datapath);
  33. picFolders.get(i).addpics();
  34. }
  35. }
  36. }
  37. }while(cursor.moveToNext());
  38. cursor.close();
  39. } catch (Exception e) {
  40. e.printStackTrace();
  41. }
  42. for(int i = 0;i < picFolders.size();i++){
  43. Log.d("picture folders",picFolders.get(i).getFolderName()+" and path = "+picFolders.get(i).getPath()+" "+picFolders.get(i).getNumberOfPics());
  44. }
  45. return picFolders;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement