mirror of https://github.com/NekoX-Dev/NekoX.git
Fix action button color
This commit is contained in:
parent
99783dd511
commit
7a0ddf096b
|
@ -13,6 +13,7 @@ import androidx.annotation.Nullable;
|
|||
public class ColoredImageSpan extends ReplacementSpan {
|
||||
|
||||
int drawableColor;
|
||||
boolean override;
|
||||
Drawable drawable;
|
||||
|
||||
public ColoredImageSpan(@NonNull Drawable drawable) {
|
||||
|
@ -20,6 +21,14 @@ public class ColoredImageSpan extends ReplacementSpan {
|
|||
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
|
||||
}
|
||||
|
||||
public ColoredImageSpan(@NonNull Drawable drawable, int drawableColor) {
|
||||
this.drawable = drawable;
|
||||
this.drawableColor = drawableColor;
|
||||
this.override = true;
|
||||
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
|
||||
drawable.setColorFilter(new PorterDuffColorFilter(drawableColor, PorterDuff.Mode.SRC_IN));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSize(@NonNull Paint paint, CharSequence charSequence, int i, int i1, @Nullable Paint.FontMetricsInt fontMetricsInt) {
|
||||
return drawable.getIntrinsicWidth();
|
||||
|
@ -28,8 +37,12 @@ public class ColoredImageSpan extends ReplacementSpan {
|
|||
@Override
|
||||
public void draw(@NonNull Canvas canvas, CharSequence text, int start, int end, float x, int top, int y, int bottom, @NonNull Paint paint) {
|
||||
if (drawableColor != paint.getColor()) {
|
||||
drawableColor = paint.getColor();
|
||||
drawable.setColorFilter(new PorterDuffColorFilter(drawableColor, PorterDuff.Mode.MULTIPLY));
|
||||
if (override) {
|
||||
paint.setColor(drawableColor);
|
||||
} else {
|
||||
drawableColor = paint.getColor();
|
||||
drawable.setColorFilter(new PorterDuffColorFilter(drawableColor, PorterDuff.Mode.SRC_IN));
|
||||
}
|
||||
}
|
||||
int lineHeight = bottom - top;
|
||||
int drawableHeight = drawable.getIntrinsicHeight();
|
||||
|
|
|
@ -24,6 +24,7 @@ import android.widget.ScrollView;
|
|||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.ColorUtils;
|
||||
|
||||
import org.telegram.messenger.AndroidUtilities;
|
||||
|
@ -45,8 +46,6 @@ import org.telegram.ui.Cells.DialogCell;
|
|||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import tw.nekomimi.nekogram.parts.DrawableLoadsKt;
|
||||
|
||||
public class LinkActionView extends LinearLayout {
|
||||
|
||||
TextView linkView;
|
||||
|
@ -90,7 +89,7 @@ public class LinkActionView extends LinearLayout {
|
|||
|
||||
frameLayout.addView(linkView);
|
||||
optionsView = new ImageView(context);
|
||||
optionsView.setImageDrawable(DrawableLoadsKt.getDrawable(context, R.drawable.ic_ab_other));
|
||||
optionsView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_ab_other));
|
||||
optionsView.setScaleType(ImageView.ScaleType.CENTER);
|
||||
frameLayout.addView(optionsView, LayoutHelper.createFrame(40, 48, Gravity.RIGHT | Gravity.CENTER_VERTICAL));
|
||||
addView(frameLayout, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, 0, 4, 0, 4, 0));
|
||||
|
@ -101,7 +100,7 @@ public class LinkActionView extends LinearLayout {
|
|||
copyView = new TextView(context);
|
||||
copyView.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();
|
||||
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(DrawableLoadsKt.getDrawable(context, R.drawable.baseline_content_copy_24).mutate()), 0, 1, 0);
|
||||
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.baseline_content_copy_24), Theme.getColor(Theme.key_chats_actionIcon)), 0, 1, 0);
|
||||
spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0);
|
||||
spannableStringBuilder.append(LocaleController.getString("LinkActionCopy", R.string.LinkActionCopy));
|
||||
spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0);
|
||||
|
@ -115,7 +114,7 @@ public class LinkActionView extends LinearLayout {
|
|||
shareView = new TextView(context);
|
||||
shareView.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
spannableStringBuilder = new SpannableStringBuilder();
|
||||
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(DrawableLoadsKt.getDrawable(context, R.drawable.baseline_forward_24)), 0, 1, 0);
|
||||
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.baseline_forward_24), Theme.getColor(Theme.key_chats_actionIcon)), 0, 1, 0);
|
||||
spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0);
|
||||
spannableStringBuilder.append(LocaleController.getString("LinkActionShare", R.string.LinkActionShare));
|
||||
spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0);
|
||||
|
@ -131,7 +130,7 @@ public class LinkActionView extends LinearLayout {
|
|||
removeView = new TextView(context);
|
||||
removeView.setGravity(Gravity.CENTER_HORIZONTAL);
|
||||
spannableStringBuilder = new SpannableStringBuilder();
|
||||
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(DrawableLoadsKt.getDrawable(context, R.drawable.baseline_delete_24)), 0, 1, 0);
|
||||
spannableStringBuilder.append("..").setSpan(new ColoredImageSpan(ContextCompat.getDrawable(context, R.drawable.baseline_delete_24)), 0, 1, 0);
|
||||
spannableStringBuilder.setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(8)), 1, 2, 0);
|
||||
spannableStringBuilder.append(LocaleController.getString("DeleteLink", R.string.DeleteLink));
|
||||
spannableStringBuilder.append(".").setSpan(new DialogCell.FixedWidthSpan(AndroidUtilities.dp(5)), spannableStringBuilder.length() - 1, spannableStringBuilder.length(), 0);
|
||||
|
@ -420,7 +419,7 @@ public class LinkActionView extends LinearLayout {
|
|||
if (hideRevokeOption != b) {
|
||||
hideRevokeOption = b;
|
||||
optionsView.setVisibility(View.VISIBLE);
|
||||
optionsView.setImageDrawable(DrawableLoadsKt.getDrawable(optionsView.getContext(), R.drawable.ic_ab_other));
|
||||
optionsView.setImageDrawable(ContextCompat.getDrawable(optionsView.getContext(), R.drawable.ic_ab_other));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
package tw.nekomimi.nekogram.parts
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.PorterDuff
|
||||
import android.graphics.PorterDuffColorFilter
|
||||
import android.graphics.drawable.Drawable
|
||||
import androidx.core.content.ContextCompat
|
||||
import org.telegram.ui.ActionBar.Theme
|
||||
|
||||
fun getDrawable(ctx: Context, resId: Int): Drawable {
|
||||
val drawable = ContextCompat.getDrawable(ctx, resId)!!.mutate()
|
||||
drawable.colorFilter = PorterDuffColorFilter(Theme.getColor(Theme.key_chats_actionIcon), PorterDuff.Mode.SRC_IN)
|
||||
return drawable
|
||||
}
|
Loading…
Reference in New Issue