mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-18 21:59:54 +01:00
[android] support RTL languages when rounding thumbnail corners
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package org.briarproject.briar.android.conversation;
|
package org.briarproject.briar.android.conversation;
|
||||||
|
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.support.annotation.DrawableRes;
|
import android.support.annotation.DrawableRes;
|
||||||
import android.support.annotation.UiThread;
|
import android.support.annotation.UiThread;
|
||||||
@@ -16,6 +17,8 @@ import org.briarproject.briar.R;
|
|||||||
import org.briarproject.briar.android.conversation.glide.BriarImageTransformation;
|
import org.briarproject.briar.android.conversation.glide.BriarImageTransformation;
|
||||||
import org.briarproject.briar.android.conversation.glide.GlideApp;
|
import org.briarproject.briar.android.conversation.glide.GlideApp;
|
||||||
|
|
||||||
|
import static android.os.Build.VERSION.SDK_INT;
|
||||||
|
import static android.support.v4.view.ViewCompat.LAYOUT_DIRECTION_RTL;
|
||||||
import static com.bumptech.glide.load.engine.DiskCacheStrategy.NONE;
|
import static com.bumptech.glide.load.engine.DiskCacheStrategy.NONE;
|
||||||
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
|
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
|
||||||
import static java.util.Objects.requireNonNull;
|
import static java.util.Objects.requireNonNull;
|
||||||
@@ -31,6 +34,7 @@ class ConversationMessageViewHolder extends ConversationItemViewHolder {
|
|||||||
private final ViewGroup statusLayout;
|
private final ViewGroup statusLayout;
|
||||||
private final int timeColor, timeColorBubble;
|
private final int timeColor, timeColorBubble;
|
||||||
private final int radiusBig, radiusSmall;
|
private final int radiusBig, radiusSmall;
|
||||||
|
private final boolean isRtl;
|
||||||
private final ConstraintSet textConstraints = new ConstraintSet();
|
private final ConstraintSet textConstraints = new ConstraintSet();
|
||||||
private final ConstraintSet imageConstraints = new ConstraintSet();
|
private final ConstraintSet imageConstraints = new ConstraintSet();
|
||||||
private final ConstraintSet imageTextConstraints = new ConstraintSet();
|
private final ConstraintSet imageTextConstraints = new ConstraintSet();
|
||||||
@@ -49,6 +53,13 @@ class ConversationMessageViewHolder extends ConversationItemViewHolder {
|
|||||||
timeColorBubble =
|
timeColorBubble =
|
||||||
ContextCompat.getColor(v.getContext(), R.color.briar_white);
|
ContextCompat.getColor(v.getContext(), R.color.briar_white);
|
||||||
|
|
||||||
|
// find out if we are showing a RTL language, Use the configuration,
|
||||||
|
// because getting the layout direction of views is not reliable
|
||||||
|
Configuration config =
|
||||||
|
imageView.getContext().getResources().getConfiguration();
|
||||||
|
isRtl = SDK_INT >= 17 &&
|
||||||
|
config.getLayoutDirection() == LAYOUT_DIRECTION_RTL;
|
||||||
|
|
||||||
// clone constraint sets from layout files
|
// clone constraint sets from layout files
|
||||||
textConstraints
|
textConstraints
|
||||||
.clone(v.getContext(), R.layout.list_item_conversation_msg_in);
|
.clone(v.getContext(), R.layout.list_item_conversation_msg_in);
|
||||||
@@ -129,7 +140,8 @@ class ConversationMessageViewHolder extends ConversationItemViewHolder {
|
|||||||
|
|
||||||
private void loadImage(ConversationMessageItem item,
|
private void loadImage(ConversationMessageItem item,
|
||||||
AttachmentItem attachment) {
|
AttachmentItem attachment) {
|
||||||
boolean leftCornerSmall = isIncoming();
|
boolean leftCornerSmall =
|
||||||
|
(isIncoming() && !isRtl) || (!isIncoming() && isRtl);
|
||||||
boolean bottomRound = item.getText() == null;
|
boolean bottomRound = item.getText() == null;
|
||||||
Transformation<Bitmap> transformation = new BriarImageTransformation(
|
Transformation<Bitmap> transformation = new BriarImageTransformation(
|
||||||
radiusSmall, radiusBig, leftCornerSmall, bottomRound);
|
radiusSmall, radiusBig, leftCornerSmall, bottomRound);
|
||||||
|
|||||||
Reference in New Issue
Block a user