diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ff4a0e3e7..93a9b442c 100755 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -42,6 +42,7 @@ android:name=".MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" + android:requestLegacyExternalStorage="true" android:label="@string/app_name" android:largeHeap="true" android:supportsRtl="true" diff --git a/app/src/main/java/org/fossasia/phimpme/base/ThemedActivity.java b/app/src/main/java/org/fossasia/phimpme/base/ThemedActivity.java index be01738b0..19ee2de1d 100644 --- a/app/src/main/java/org/fossasia/phimpme/base/ThemedActivity.java +++ b/app/src/main/java/org/fossasia/phimpme/base/ThemedActivity.java @@ -18,7 +18,6 @@ import androidx.core.content.ContextCompat; import androidx.core.graphics.drawable.DrawableCompat; import com.mikepenz.iconics.IconicsDrawable; -import com.mikepenz.iconics.context.IconicsContextWrapper; import com.mikepenz.iconics.typeface.IIcon; import java.util.ArrayList; import org.fossasia.phimpme.R; @@ -62,12 +61,6 @@ public void updateTheme() { } } - @Override - protected void attachBaseContext(Context newBase) { - // NOTE: icons stuff - super.attachBaseContext(IconicsContextWrapper.wrap(newBase)); - } - @TargetApi(Build.VERSION_CODES.LOLLIPOP) public void setNavBarColor() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { diff --git a/app/src/main/java/org/fossasia/phimpme/gallery/data/providers/MediaStoreProvider.java b/app/src/main/java/org/fossasia/phimpme/gallery/data/providers/MediaStoreProvider.java index 12a49d605..17d8d9288 100644 --- a/app/src/main/java/org/fossasia/phimpme/gallery/data/providers/MediaStoreProvider.java +++ b/app/src/main/java/org/fossasia/phimpme/gallery/data/providers/MediaStoreProvider.java @@ -85,14 +85,10 @@ public static ArrayList getAlbums(Context context) { MediaStore.Files.FileColumns.PARENT, MediaStore.Images.Media.BUCKET_DISPLAY_NAME }; - String selection, selectionArgs[]; - - selection = - MediaStore.Files.FileColumns.MEDIA_TYPE - + "=? ) GROUP BY ( " - + MediaStore.Files.FileColumns.PARENT - + " "; - selectionArgs = new String[] {String.valueOf(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE)}; + String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "=? "; + String[] selectionArgs = + new String[] {String.valueOf(MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE)}; + String sortOrder = MediaStore.Files.FileColumns.PARENT; Cursor cur = context @@ -102,23 +98,26 @@ public static ArrayList getAlbums(Context context) { projection, selection, selectionArgs, - null); + sortOrder); if (cur != null) { if (cur.moveToFirst()) { int idColumn = cur.getColumnIndex(MediaStore.Files.FileColumns.PARENT); int nameColumn = cur.getColumnIndex(MediaStore.Images.Media.BUCKET_DISPLAY_NAME); + HashSet idSet = new HashSet<>(); do { Media media = getLastMedia(context, cur.getLong(idColumn)); if (media != null && media.getPath() != null) { String path = StringUtils.getBucketPathByImagePath(media.getPath()); boolean excluded = isExcluded(path, context); - if (!excluded) { + long curIdColumn = cur.getLong(idColumn); + if (!excluded && !idSet.contains(curIdColumn)) { + idSet.add(curIdColumn); Album album = new Album( context, path, - cur.getLong(idColumn), + curIdColumn, cur.getString(nameColumn), getAlbumCount(context, cur.getLong(idColumn))); if (album.addMedia(getLastMedia(context, album.getId()))) list.add(album);