diff options
author | Bartkk0 <thebartkk@gmail.com> | 2022-03-11 18:02:02 +0300 |
---|---|---|
committer | Daniel Lublin <daniel@lublin.se> | 2022-03-11 21:51:35 +0300 |
commit | b7a33553398b840f88cc603d58882935bba7cbb5 (patch) | |
tree | dcb98a3b29ec0f931fd0559aa23cd3e5cffd28f6 | |
parent | 2c0c0cf15f105a1d2cf87d57ffb02876c0c89733 (diff) |
Add image confirm dialog
-rw-r--r-- | app/src/main/java/se/lublin/mumla/channel/ChannelChatFragment.java | 32 | ||||
-rw-r--r-- | app/src/main/res/values/strings.xml | 3 |
2 files changed, 27 insertions, 8 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 0ee7ffb..ca5f486 100644 --- a/app/src/main/java/se/lublin/mumla/channel/ChannelChatFragment.java +++ b/app/src/main/java/se/lublin/mumla/channel/ChannelChatFragment.java @@ -18,7 +18,9 @@ package se.lublin.mumla.channel; import android.app.Activity; +import android.app.AlertDialog; import android.content.Context; +import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; @@ -42,6 +44,7 @@ import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ImageButton; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; @@ -125,7 +128,6 @@ public class ChannelChatFragment extends HumlaServiceFragment implements ChatTar private EditText mChatTextEdit; private ImageButton mSendButton; private ChatTargetProvider mTargetProvider; - private String mMessageBuffer; ActivityResultLauncher<String> imagePicker = registerForActivityResult(new ActivityResultContracts.GetContent(), this::onImagePicked); @@ -149,11 +151,6 @@ public class ChannelChatFragment extends HumlaServiceFragment implements ChatTar public void onResume() { super.onResume(); mTargetProvider.registerChatTargetListener(this); - - if (mMessageBuffer != null) { - sendMessage(mMessageBuffer); - mMessageBuffer = null; - } } @Override @@ -260,7 +257,6 @@ public class ChannelChatFragment extends HumlaServiceFragment implements ChatTar if (getService() == null || !getService().isConnected()) { return; } - int maxSize = getService().HumlaSession().getServerSettings().getImageMessageLength(); // We don't fail on errors when getting orientation boolean flipped = false; @@ -296,6 +292,12 @@ public class ChannelChatFragment extends HumlaServiceFragment implements ChatTar return; } + ImageView image = new ImageView(requireContext()); + image.setImageBitmap(bitmap); + image.setAdjustViewBounds(true); + image.setScaleType(ImageView.ScaleType.FIT_CENTER); + image.setMaxHeight(Resources.getSystem().getDisplayMetrics().heightPixels / 3); + if (flipped || rotationDeg > 0) { Matrix matrix = new Matrix(); if (flipped) { @@ -311,6 +313,20 @@ public class ChannelChatFragment extends HumlaServiceFragment implements ChatTar Bitmap resized = BitmapUtils.resizeKeepingAspect(bitmap, 600, 400); + AlertDialog.Builder builder = new AlertDialog.Builder(requireContext()) + .setMessage(R.string.image_confirm_send) + .setPositiveButton(R.string.ok, (dialog, which) -> { + dialog.dismiss(); + onImageConfirmed(resized); + }) + .setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss()) + .setView(image); + builder.create().show(); + } + + private void onImageConfirmed( Bitmap resized){ + int maxSize = getService().HumlaSession().getServerSettings().getImageMessageLength(); + // Try to resize image until it fits int quality = 97; byte[] compressed; @@ -338,7 +354,7 @@ public class ChannelChatFragment extends HumlaServiceFragment implements ChatTar String imageStr = Base64.encodeToString(compressed, Base64.NO_WRAP); String encoded = URLEncoder.encode(imageStr); - mMessageBuffer = "<img src=\"data:image/jpeg;base64," + encoded + "\"/>"; + sendMessage("<img src=\"data:image/jpeg;base64," + encoded + "\"/>"); } /** diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f969a39..f0f927b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -271,6 +271,9 @@ <string name="orbot_tor_failed">Could not connect to local Tor proxy on port %d (SOCKS).\n\nPlease ensure the Orbot app is running.</string> <string name="default_">Default</string> <string name="donation_thanks">Thank you for the donation.</string> + <string name="image_confirm_send">Send this image?</string> + <string name="ok">OK</string> + <string name="cancel">Cancel</string> <plurals name="search_channel_users"> <item quantity="one">%d user</item> |