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:
authorBartkk0 <thebartkk@gmail.com>2022-03-11 18:02:02 +0300
committerDaniel Lublin <daniel@lublin.se>2022-03-11 21:51:35 +0300
commitb7a33553398b840f88cc603d58882935bba7cbb5 (patch)
treedcb98a3b29ec0f931fd0559aa23cd3e5cffd28f6
parent2c0c0cf15f105a1d2cf87d57ffb02876c0c89733 (diff)
Add image confirm dialog
-rw-r--r--app/src/main/java/se/lublin/mumla/channel/ChannelChatFragment.java32
-rw-r--r--app/src/main/res/values/strings.xml3
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>