Do not allow emoji in image editing if device doesn't support it.

This commit is contained in:
Greyson Parrelli
2022-04-04 11:38:15 -04:00
committed by Cody Henthorne
parent 3328e43a40
commit d409278dd5
10 changed files with 136 additions and 1 deletions

View File

@@ -29,10 +29,12 @@ import com.bumptech.glide.request.RequestListener;
import com.bumptech.glide.request.target.Target;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.signal.core.util.FontUtil;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;
import org.signal.imageeditor.core.Bounds;
import org.signal.imageeditor.core.ColorableRenderer;
import org.signal.imageeditor.core.HiddenEditText;
import org.signal.imageeditor.core.ImageEditorView;
import org.signal.imageeditor.core.Renderer;
import org.signal.imageeditor.core.SelectableRenderer;
@@ -44,6 +46,7 @@ import org.signal.imageeditor.core.renderers.MultiLineTextRenderer;
import org.signal.libsignal.protocol.util.Pair;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.animation.ResizeAnimation;
import org.thoughtcrime.securesms.components.emoji.EmojiUtil;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
import org.thoughtcrime.securesms.fonts.FontTypefaceProvider;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
@@ -78,6 +81,8 @@ public final class ImageEditorFragment extends Fragment implements ImageEditorHu
private static final String TAG = Log.tag(ImageEditorFragment.class);
public static final boolean CAN_RENDER_EMOJI = FontUtil.canRenderEmojiAtFontSize(1024);
private static final float PORTRAIT_ASPECT_RATIO = 9 / 16f;
private static final String KEY_IMAGE_URI = "image_uri";
@@ -220,6 +225,9 @@ public final class ImageEditorFragment extends Fragment implements ImageEditorHu
imageEditorView = view.findViewById(R.id.image_editor_view);
imageEditorView.setTypefaceProvider(new FontTypefaceProvider());
if (!CAN_RENDER_EMOJI) {
imageEditorView.addTextInputFilter(new RemoveEmojiTextFilter());
}
int width = getResources().getDisplayMetrics().widthPixels;
int height = (int) ((16 / 9f) * width);

View File

@@ -0,0 +1,13 @@
package org.thoughtcrime.securesms.scribbles;
import androidx.annotation.NonNull;
import org.signal.imageeditor.core.HiddenEditText;
import org.thoughtcrime.securesms.components.emoji.EmojiUtil;
class RemoveEmojiTextFilter implements HiddenEditText.TextFilter {
@Override
public String filter(@NonNull String text) {
return EmojiUtil.stripEmoji(text);
}
}

View File

@@ -33,6 +33,9 @@ class TextEntryDialogFragment : KeyboardEntryDialogFragment(R.layout.v2_media_im
controller = requireListener()
hiddenTextEntry = HiddenEditText(requireContext())
if (!ImageEditorFragment.CAN_RENDER_EMOJI) {
hiddenTextEntry.addTextFilter(RemoveEmojiTextFilter())
}
(view as ViewGroup).addView(hiddenTextEntry)
view.setOnClickListener {