diff --git a/res/drawable-hdpi/ic_folder_white_48dp.png b/res/drawable-hdpi/ic_folder_white_48dp.png
deleted file mode 100644
index b93d5a1e4a..0000000000
Binary files a/res/drawable-hdpi/ic_folder_white_48dp.png and /dev/null differ
diff --git a/res/drawable-mdpi/ic_folder_white_48dp.png b/res/drawable-mdpi/ic_folder_white_48dp.png
deleted file mode 100644
index 71a5a137c4..0000000000
Binary files a/res/drawable-mdpi/ic_folder_white_48dp.png and /dev/null differ
diff --git a/res/drawable-xhdpi/ic_folder_white_48dp.png b/res/drawable-xhdpi/ic_folder_white_48dp.png
deleted file mode 100644
index a1afbe9daf..0000000000
Binary files a/res/drawable-xhdpi/ic_folder_white_48dp.png and /dev/null differ
diff --git a/res/drawable-xxhdpi/ic_folder_white_48dp.png b/res/drawable-xxhdpi/ic_folder_white_48dp.png
deleted file mode 100644
index 0f95c75501..0000000000
Binary files a/res/drawable-xxhdpi/ic_folder_white_48dp.png and /dev/null differ
diff --git a/res/drawable-xxxhdpi/ic_folder_white_48dp.png b/res/drawable-xxxhdpi/ic_folder_white_48dp.png
deleted file mode 100644
index 862a359c65..0000000000
Binary files a/res/drawable-xxxhdpi/ic_folder_white_48dp.png and /dev/null differ
diff --git a/res/drawable/ic_baseline_folder_24.xml b/res/drawable/ic_baseline_folder_24.xml
new file mode 100644
index 0000000000..dc6b080235
--- /dev/null
+++ b/res/drawable/ic_baseline_folder_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/res/layout/mediapicker_folder_item.xml b/res/layout/mediapicker_folder_item.xml
index 9d1d729ebe..b52ace6f4a 100644
--- a/res/layout/mediapicker_folder_item.xml
+++ b/res/layout/mediapicker_folder_item.xml
@@ -33,7 +33,8 @@
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginEnd="6dp"
- android:src="@drawable/ic_folder_white_48dp"/>
+ android:tint="@android:color/white"
+ android:src="@drawable/ic_baseline_folder_24"/>
- * The functionality of this class should be refactored to use
- * MediaStore.
*/
class MediaRepository {
@@ -82,30 +76,17 @@ class MediaRepository {
}
}
- String cameraBucketId = imageFolders.getCameraBucketId() != null ? imageFolders.getCameraBucketId() : videoFolders.getCameraBucketId();
- FolderData cameraFolder = cameraBucketId != null ? folders.remove(cameraBucketId) : null;
- List mediaFolders = Stream.of(folders.values()).map(folder -> new MediaFolder(folder.getThumbnail(),
+ List mediaFolders = Stream.of(folders.values()).map(folder -> new MediaFolder(folder.getThumbnail(),
folder.getTitle(),
folder.getCount(),
- folder.getBucketId(),
- MediaFolder.FolderType.NORMAL))
+ folder.getBucketId()))
.sorted((o1, o2) -> o1.getTitle().toLowerCase().compareTo(o2.getTitle().toLowerCase()))
.toList();
Uri allMediaThumbnail = imageFolders.getThumbnailTimestamp() > videoFolders.getThumbnailTimestamp() ? imageFolders.getThumbnail() : videoFolders.getThumbnail();
-
if (allMediaThumbnail != null) {
int allMediaCount = Stream.of(mediaFolders).reduce(0, (count, folder) -> count + folder.getItemCount());
-
- if (cameraFolder != null) {
- allMediaCount += cameraFolder.getCount();
- }
-
- mediaFolders.add(0, new MediaFolder(allMediaThumbnail, context.getString(R.string.MediaRepository_all_media), allMediaCount, Media.ALL_MEDIA_BUCKET_ID, MediaFolder.FolderType.NORMAL));
- }
-
- if (cameraFolder != null) {
- mediaFolders.add(0, new MediaFolder(cameraFolder.getThumbnail(), cameraFolder.getTitle(), cameraFolder.getCount(), cameraFolder.getBucketId(), MediaFolder.FolderType.CAMERA));
+ mediaFolders.add(0, new MediaFolder(allMediaThumbnail, context.getString(R.string.MediaRepository_all_media), allMediaCount, Media.ALL_MEDIA_BUCKET_ID));
}
return mediaFolders;
@@ -113,8 +94,6 @@ class MediaRepository {
@WorkerThread
private @NonNull FolderResult getFolders(@NonNull Context context, @NonNull Uri contentUri) {
- String cameraPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath() + File.separator + "Camera";
- String cameraBucketId = null;
Uri globalThumbnail = null;
long thumbnailTimestamp = 0;
Map folders = new HashMap<>();
@@ -135,10 +114,6 @@ class MediaRepository {
folder.incrementCount();
folders.put(bucketId, folder);
- if (cameraBucketId == null && path.startsWith(cameraPath)) {
- cameraBucketId = bucketId;
- }
-
if (timestamp > thumbnailTimestamp) {
globalThumbnail = thumbnail;
thumbnailTimestamp = timestamp;
@@ -146,7 +121,7 @@ class MediaRepository {
}
}
- return new FolderResult(cameraBucketId, globalThumbnail, thumbnailTimestamp, folders);
+ return new FolderResult(globalThumbnail, thumbnailTimestamp, folders);
}
@WorkerThread
@@ -284,26 +259,19 @@ class MediaRepository {
}
private static class FolderResult {
- private final String cameraBucketId;
private final Uri thumbnail;
private final long thumbnailTimestamp;
private final Map folderData;
- private FolderResult(@Nullable String cameraBucketId,
- @Nullable Uri thumbnail,
+ private FolderResult(@Nullable Uri thumbnail,
long thumbnailTimestamp,
@NonNull Map folderData)
{
- this.cameraBucketId = cameraBucketId;
this.thumbnail = thumbnail;
this.thumbnailTimestamp = thumbnailTimestamp;
this.folderData = folderData;
}
- @Nullable String getCameraBucketId() {
- return cameraBucketId;
- }
-
@Nullable Uri getThumbnail() {
return thumbnail;
}
diff --git a/src/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java b/src/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java
index adfc09a060..ff1792ec1a 100644
--- a/src/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java
+++ b/src/org/thoughtcrime/securesms/mediasend/MediaSendActivity.java
@@ -1,6 +1,8 @@
package org.thoughtcrime.securesms.mediasend;
import android.Manifest;
+
+import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelProviders;
import android.content.Context;
import android.content.Intent;
@@ -133,7 +135,7 @@ public class MediaSendActivity extends PassphraseRequiredActionBarActivity imple
countButtonText = findViewById(R.id.mediasend_count_button_text);
cameraButton = findViewById(R.id.mediasend_camera_button);
- viewModel = ViewModelProviders.of(this, new MediaSendViewModel.Factory(getApplication(), new MediaRepository())).get(MediaSendViewModel.class);
+ viewModel = new ViewModelProvider(this, new MediaSendViewModel.Factory(getApplication(), new MediaRepository())).get(MediaSendViewModel.class);
recipient = Recipient.from(this, Address.fromSerialized(getIntent().getStringExtra(KEY_ADDRESS)), true);
transport = getIntent().getParcelableExtra(KEY_TRANSPORT);
diff --git a/src/org/thoughtcrime/securesms/mms/AttachmentManager.java b/src/org/thoughtcrime/securesms/mms/AttachmentManager.java
index 3ae608ee8c..f6f0cbbc23 100644
--- a/src/org/thoughtcrime/securesms/mms/AttachmentManager.java
+++ b/src/org/thoughtcrime/securesms/mms/AttachmentManager.java
@@ -371,28 +371,34 @@ public class AttachmentManager {
}
public static void selectDocument(Activity activity, int requestCode) {
- Permissions.with(activity)
- .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
- .withPermanentDenialDialog(activity.getString(R.string.AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio))
- .onAllGranted(() -> selectMediaType(activity, "*/*", null, requestCode))
- .execute();
+// Permissions.with(activity)
+// .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
+// .withPermanentDenialDialog(activity.getString(R.string.AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio))
+// .onAllGranted(() -> selectMediaType(activity, "*/*", null, requestCode))
+// .execute();
+
+ selectMediaType(activity, "*/*", null, requestCode);
}
public static void selectGallery(Activity activity, int requestCode, @NonNull Recipient recipient, @NonNull String body, @NonNull TransportOption transport) {
- Permissions.with(activity)
- .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
- .withPermanentDenialDialog(activity.getString(R.string.AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio))
- .onAllGranted(() -> selectMediaType(activity, "image/*", new String[] {"image/*", "video/*"}, requestCode))
- .onAllGranted(() -> activity.startActivityForResult(MediaSendActivity.buildGalleryIntent(activity, recipient, body, transport), requestCode))
- .execute();
+// Permissions.with(activity)
+// .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
+// .withPermanentDenialDialog(activity.getString(R.string.AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio))
+//// .onAllGranted(() -> selectMediaType(activity, "image/*", new String[] {"image/*", "video/*"}, requestCode))
+// .onAllGranted(() -> activity.startActivityForResult(MediaSendActivity.buildGalleryIntent(activity, recipient, body, transport), requestCode))
+// .execute();
+
+ activity.startActivityForResult(MediaSendActivity.buildGalleryIntent(activity, recipient, body, transport), requestCode);
}
public static void selectAudio(Activity activity, int requestCode) {
- Permissions.with(activity)
- .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
- .withPermanentDenialDialog(activity.getString(R.string.AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio))
- .onAllGranted(() -> selectMediaType(activity, "audio/*", null, requestCode))
- .execute();
+// Permissions.with(activity)
+//// .request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
+//// .withPermanentDenialDialog(activity.getString(R.string.AttachmentManager_signal_requires_the_external_storage_permission_in_order_to_attach_photos_videos_or_audio))
+//// .onAllGranted(() -> selectMediaType(activity, "audio/*", null, requestCode))
+//// .execute();
+
+ selectMediaType(activity, "audio/*", null, requestCode);
}
public static void selectContactInfo(Activity activity, int requestCode) {
@@ -463,6 +469,7 @@ public class AttachmentManager {
}
private static void selectMediaType(Activity activity, @NonNull String type, @Nullable String[] extraMimeType, int requestCode) {
+ //TODO Constrain media file size to match the Loki protocol limit.
final Intent intent = new Intent();
intent.setType(type);