Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/mumla.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Lublin <daniel@lublin.se>2022-03-11 09:41:03 +0300
committerDaniel Lublin <daniel@lublin.se>2022-03-11 09:41:21 +0300
commit1b5490f028956f5543151edc6575de3606ff55e6 (patch)
treecc840e788685c019c1c918aaa2b81ab4b9d55a47
parent89588f7388ad75e8cf78d94a6d3bd1cd6dc5cb11 (diff)
Decode bitmap directly from stream
-rw-r--r--app/src/main/java/se/lublin/mumla/channel/ChannelChatFragment.java14
-rw-r--r--app/src/main/java/se/lublin/mumla/util/InputStreamUtils.java21
2 files changed, 6 insertions, 29 deletions
diff --git a/app/src/main/java/se/lublin/mumla/channel/ChannelChatFragment.java b/app/src/main/java/se/lublin/mumla/channel/ChannelChatFragment.java
index 486d090..4909e7d 100644
--- a/app/src/main/java/se/lublin/mumla/channel/ChannelChatFragment.java
+++ b/app/src/main/java/se/lublin/mumla/channel/ChannelChatFragment.java
@@ -50,7 +50,7 @@ import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import java.io.ByteArrayOutputStream;
-import java.io.IOException;
+import java.io.FileNotFoundException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.text.DateFormat;
@@ -74,7 +74,6 @@ import se.lublin.mumla.R;
import se.lublin.mumla.service.IChatMessage;
import se.lublin.mumla.util.BitmapUtils;
import se.lublin.mumla.util.HumlaServiceFragment;
-import se.lublin.mumla.util.InputStreamUtils;
import se.lublin.mumla.util.MumbleImageGetter;
public class ChannelChatFragment extends HumlaServiceFragment implements ChatTargetProvider.OnChatTargetSelectedListener {
@@ -261,20 +260,19 @@ public class ChannelChatFragment extends HumlaServiceFragment implements ChatTar
}
int maxSize = getService().HumlaSession().getServerSettings().getImageMessageLength();
- byte[] bytes;
+ InputStream imageStream;
try {
- InputStream imageStream = requireContext().getContentResolver().openInputStream(uri);
+ imageStream = requireContext().getContentResolver().openInputStream(uri);
if (imageStream == null) {
+ Log.w(TAG, "openInputStream(uri) failed");
return;
}
- bytes = InputStreamUtils.getBytes(imageStream);
- imageStream.close();
- } catch (IOException e) {
+ } catch (FileNotFoundException e) {
Log.d(TAG, "exception in onImagePicked: " + e);
return;
}
- Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
+ Bitmap bitmap = BitmapFactory.decodeStream(imageStream);
if (bitmap == null) {
Log.w(TAG, "decode to bitmap failed");
return;
diff --git a/app/src/main/java/se/lublin/mumla/util/InputStreamUtils.java b/app/src/main/java/se/lublin/mumla/util/InputStreamUtils.java
deleted file mode 100644
index 84ee9b2..0000000
--- a/app/src/main/java/se/lublin/mumla/util/InputStreamUtils.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package se.lublin.mumla.util;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-public class InputStreamUtils {
- public static byte[] getBytes(InputStream stream) throws IOException {
- ByteArrayOutputStream outBuf = new ByteArrayOutputStream();
- try {
- byte[] buf = new byte[1024];
- int len;
- while ((len = stream.read(buf)) != -1) {
- outBuf.write(buf, 0, len);
- }
- } finally {
- outBuf.close();
- }
- return outBuf.toByteArray();
- }
-}