aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/persistance/FileBackend.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2019-01-24 20:51:43 +0100
committerChristian Schneppe <christian@pix-art.de>2019-01-24 20:51:43 +0100
commit0a6eb6630612cda0ce6a9ec896d81281efd9631f (patch)
tree6d23fc18a156a0d46d9e201f05f45a273b9699f5 /src/main/java/de/pixart/messenger/persistance/FileBackend.java
parent6b50aad97951561dca537ef5e3094b59a8c76ed1 (diff)
put images into MessageStyle notifications
Diffstat (limited to 'src/main/java/de/pixart/messenger/persistance/FileBackend.java')
-rw-r--r--src/main/java/de/pixart/messenger/persistance/FileBackend.java47
1 files changed, 45 insertions, 2 deletions
diff --git a/src/main/java/de/pixart/messenger/persistance/FileBackend.java b/src/main/java/de/pixart/messenger/persistance/FileBackend.java
index 705e5489b..952bb7369 100644
--- a/src/main/java/de/pixart/messenger/persistance/FileBackend.java
+++ b/src/main/java/de/pixart/messenger/persistance/FileBackend.java
@@ -15,6 +15,7 @@ import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.RectF;
import android.media.MediaMetadataRetriever;
+import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
@@ -101,15 +102,57 @@ public class FileBackend {
}
}
+ public static Uri getMediaUri(Context context, File file) {
+ final String filePath = file.getAbsolutePath();
+ final Cursor cursor = context.getContentResolver().query(
+ MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
+ new String[]{MediaStore.Images.Media._ID},
+ MediaStore.Images.Media.DATA + "=? ",
+ new String[]{filePath}, null);
+ if (cursor != null && cursor.moveToFirst()) {
+ final int id = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));
+ cursor.close();
+ return Uri.withAppendedPath(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, String.valueOf(id));
+ } else {
+ return null;
+ }
+ }
+
public void updateMediaScanner(File file) {
+ updateMediaScanner(file, null);
+ }
+
+ public void updateMediaScanner(File file, final Runnable callback) {
if (file.getAbsolutePath().startsWith(getConversationsDirectory("Images"))
|| file.getAbsolutePath().startsWith(getConversationsDirectory("Videos"))) {
- Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+ MediaScannerConnection.scanFile(mXmppConnectionService, new String[]{file.getAbsolutePath()}, null, new MediaScannerConnection.MediaScannerConnectionClient() {
+ @Override
+ public void onMediaScannerConnected() {
+
+ }
+
+ @Override
+ public void onScanCompleted(String path, Uri uri) {
+ if (callback != null && file.getAbsolutePath().equals(path)) {
+ callback.run();
+ } else {
+ Log.d(Config.LOGTAG, "media scanner scanned wrong file");
+ if (callback != null) {
+ callback.run();
+ }
+ }
+ }
+ });
+ return;
+ /*Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent.setData(Uri.fromFile(file));
- mXmppConnectionService.sendBroadcast(intent);
+ mXmppConnectionService.sendBroadcast(intent);*/
} else {
createNoMedia();
}
+ if (callback != null) {
+ callback.run();
+ }
}
public boolean deleteFile(File file) {