From 7b66494c6c6312a1cc38ffad84177c493b345ffc Mon Sep 17 00:00:00 2001 From: AbdulKus <73951988+AbdulKus@users.noreply.github.com> Date: Sun, 26 Jul 2026 20:55:47 +0300 Subject: [PATCH] Revert modern Frogram interface --- .../challegram/FillingDrawable.java | 34 +----- .../component/base/SettingView.java | 11 +- .../challegram/component/chat/TopBarView.java | 2 +- .../component/dialogs/ChatView.java | 24 ++-- .../challegram/navigation/HeaderView.java | 2 +- .../challegram/navigation/MenuMoreWrap.java | 23 ++-- .../challegram/navigation/OptionsLayout.java | 39 +++++-- .../challegram/navigation/ViewController.java | 4 - .../navigation/ViewPagerTopView.java | 9 +- .../thunderdog/challegram/theme/Theme.java | 35 ------ .../thunderdog/challegram/tool/FrogramUi.java | 34 ------ .../challegram/ui/MessagesController.java | 11 +- .../challegram/ui/SettingHolder.java | 27 +++-- .../challegram/ui/SettingsAdapter.java | 110 +----------------- .../challegram/widget/ShadowView.java | 11 -- app/src/main/other/themes/Green.tgx-theme | 32 ++--- 16 files changed, 95 insertions(+), 313 deletions(-) delete mode 100644 app/src/main/java/org/thunderdog/challegram/tool/FrogramUi.java diff --git a/app/src/main/java/org/thunderdog/challegram/FillingDrawable.java b/app/src/main/java/org/thunderdog/challegram/FillingDrawable.java index a8bde0e402..fdae7d4f82 100644 --- a/app/src/main/java/org/thunderdog/challegram/FillingDrawable.java +++ b/app/src/main/java/org/thunderdog/challegram/FillingDrawable.java @@ -16,7 +16,6 @@ import android.graphics.Canvas; import android.graphics.ColorFilter; -import android.graphics.Path; import android.graphics.PixelFormat; import android.graphics.RectF; import android.graphics.drawable.Drawable; @@ -41,9 +40,6 @@ public class FillingDrawable extends Drawable { private ThemeDelegate forcedTheme; private float cornerRadius; - private float topCornerRadius; - private float bottomCornerRadius; - private Path roundedPath; public FillingDrawable (int colorId) { this.colorId = colorId; @@ -54,12 +50,6 @@ public FillingDrawable (int colorId, float radius) { this.cornerRadius = radius; } - public FillingDrawable (int colorId, float topRadius, float bottomRadius) { - this.colorId = colorId; - this.topCornerRadius = topRadius; - this.bottomCornerRadius = bottomRadius; - } - public final void setForcedTheme (ThemeDelegate forcedTheme) { if (this.forcedTheme != forcedTheme) { this.forcedTheme = forcedTheme; @@ -68,10 +58,8 @@ public final void setForcedTheme (ThemeDelegate forcedTheme) { } public void setCornerRadius (float radius) { - if (this.cornerRadius != radius || topCornerRadius != 0 || bottomCornerRadius != 0) { + if (this.cornerRadius != radius) { this.cornerRadius = radius; - this.topCornerRadius = 0; - this.bottomCornerRadius = 0; invalidateSelf(); } } @@ -102,25 +90,7 @@ protected int getFillingColor () { @Override public final void draw (@NonNull Canvas c) { if (colorId != 0) { - if (topCornerRadius != 0 || bottomCornerRadius != 0) { - RectF rectF = Paints.getRectF(); - rectF.set(getBounds()); - float topRadius = Screen.dp(topCornerRadius); - float bottomRadius = Screen.dp(bottomCornerRadius); - float[] radii = { - topRadius, topRadius, - topRadius, topRadius, - bottomRadius, bottomRadius, - bottomRadius, bottomRadius - }; - if (roundedPath == null) { - roundedPath = new Path(); - } else { - roundedPath.reset(); - } - roundedPath.addRoundRect(rectF, radii, Path.Direction.CW); - c.drawPath(roundedPath, Paints.fillingPaint(getFillingColor())); - } else if (cornerRadius != 0) { + if (cornerRadius != 0) { RectF rectF = Paints.getRectF(); rectF.set(getBounds()); float radius = Screen.dp(cornerRadius); diff --git a/app/src/main/java/org/thunderdog/challegram/component/base/SettingView.java b/app/src/main/java/org/thunderdog/challegram/component/base/SettingView.java index e68490304f..ad7d29d1ef 100644 --- a/app/src/main/java/org/thunderdog/challegram/component/base/SettingView.java +++ b/app/src/main/java/org/thunderdog/challegram/component/base/SettingView.java @@ -52,7 +52,6 @@ import org.thunderdog.challegram.theme.PorterDuffColorId; import org.thunderdog.challegram.theme.Theme; import org.thunderdog.challegram.tool.Drawables; -import org.thunderdog.challegram.tool.FrogramUi; import org.thunderdog.challegram.tool.Paints; import org.thunderdog.challegram.tool.PorterDuffPaint; import org.thunderdog.challegram.tool.Screen; @@ -168,13 +167,13 @@ public void setType (int type) { } case TYPE_RADIO: { addToggler(); - setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(FrogramUi.SETTING_ROW_HEIGHT))); + setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(55f))); break; } case TYPE_SETTING: case TYPE_SETTING_INACTIVE: case TYPE_INFO_SUPERCOMPACT: { - setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(FrogramUi.SETTING_ROW_HEIGHT))); + setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(55f))); break; } default: { @@ -317,7 +316,7 @@ public int getForcedPaddingRight () { } private int measurePaddingLeft () { - return forcedPaddingLeft != 0 ? forcedPaddingLeft : Screen.dp(icon == null ? FrogramUi.CONTENT_HORIZONTAL_PADDING : FrogramUi.SETTING_ICON_TEXT_START); + return forcedPaddingLeft != 0 ? forcedPaddingLeft : Screen.dp(icon == null ? 16f : 73f); } @SuppressWarnings ("Range") @@ -567,7 +566,7 @@ private void buildLayout (int totalWidth, int totalHeight) { lastMeasuredHeight = totalHeight; int paddingLeft = measurePaddingLeft(); - int paddingRight = Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING) + forcedPaddingRight; + int paddingRight = Screen.dp(17f) + forcedPaddingRight; pLeft = paddingLeft; @@ -637,7 +636,7 @@ private void buildLayout (int totalWidth, int totalHeight) { } pIconTop = (flags & FLAG_CENTER_ICON) != 0 && icon != null ? (totalHeight / 2f - icon.getMinimumHeight() / 2f) : Screen.dp(type == TYPE_INFO || type == TYPE_INFO_COMPACT || type == TYPE_INFO_MULTILINE ? 20f : 16f); - pIconLeft = Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING); + pIconLeft = Screen.dp(18f); } private boolean subscribedToEmojiUpdates; diff --git a/app/src/main/java/org/thunderdog/challegram/component/chat/TopBarView.java b/app/src/main/java/org/thunderdog/challegram/component/chat/TopBarView.java index 52dfdc7d39..c9529a0640 100644 --- a/app/src/main/java/org/thunderdog/challegram/component/chat/TopBarView.java +++ b/app/src/main/java/org/thunderdog/challegram/component/chat/TopBarView.java @@ -169,7 +169,7 @@ public void setItems (Item... items) { button.setBackgroundResource(R.drawable.bg_btn_header); button.setOnClickListener(item.onClickListener); CharSequence text = item.text != null ? item.text : Lang.getString(item.stringRes); - Views.setMediumText(button, text); + Views.setMediumText(button, item.noUppercase ? text : text.toString().toUpperCase()); Views.setClickable(button); button.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT, 2f)); actionsList.addView(button); diff --git a/app/src/main/java/org/thunderdog/challegram/component/dialogs/ChatView.java b/app/src/main/java/org/thunderdog/challegram/component/dialogs/ChatView.java index 9f4ca6861f..9862238a8b 100644 --- a/app/src/main/java/org/thunderdog/challegram/component/dialogs/ChatView.java +++ b/app/src/main/java/org/thunderdog/challegram/component/dialogs/ChatView.java @@ -129,7 +129,7 @@ private static int getTextOffset () { } public static int getAvatarLeft (int chatListMode) { - return Screen.dp(/*inMultiLineMode ? 6f : */10f); + return Screen.dp(/*inMultiLineMode ? 6f : */7f); } public static int getAvatarRadius (int chatListMode) { @@ -226,7 +226,7 @@ public static int getViewHeight (int chatListMode) { return Screen.dp(78f); case Settings.CHAT_MODE_2LINE: default: - return Screen.dp(76f); + return Screen.dp(72f); } } @@ -238,7 +238,7 @@ public static float getAvatarSizeDp (int chatListMode) { return 58f; case Settings.CHAT_MODE_2LINE: default: - return 54f; + return 52f; } } @@ -253,7 +253,7 @@ private static int getAvatarTop (int chatListMode) { case Settings.CHAT_MODE_3LINE: case Settings.CHAT_MODE_2LINE: default: - return Screen.dp(11f); + return Screen.dp(10f); } } @@ -269,7 +269,7 @@ private static int getCounterOffset (int chatsListMode) { return Screen.dp(44f); case Settings.CHAT_MODE_2LINE: default: - return Screen.dp(40f); + return Screen.dp(38f); } } @@ -285,7 +285,7 @@ public static int getTextTop (int chatListMode) { return Screen.dp(33f); case Settings.CHAT_MODE_2LINE: default: - return Screen.dp(41.5f); + return Screen.dp(39.5f); } } @@ -300,7 +300,7 @@ public static int getTitleTop (int chatListMode) { return getTextOffset() + Screen.dp(14f); case Settings.CHAT_MODE_2LINE: default: - return getTextOffset() + Screen.dp(18f); + return getTextOffset() + Screen.dp(16f); } } @@ -311,7 +311,7 @@ private static int getClockTop (int chatListMode) { return Screen.dp(15f); case Settings.CHAT_MODE_2LINE: default: - return Screen.dp(19f); + return Screen.dp(17f); } } @@ -322,7 +322,7 @@ private static int getMuteTop (int chatListMode) { return Screen.dp(9f); case Settings.CHAT_MODE_2LINE: default: - return Screen.dp(13f); + return Screen.dp(11f); } } @@ -333,7 +333,7 @@ public static int getTitleTop2 (int chatListMode) { return Screen.dp(10f); case Settings.CHAT_MODE_2LINE: default: - return Screen.dp(14f); + return Screen.dp(12f); } } @@ -573,10 +573,6 @@ protected void onDraw (Canvas c) { boolean rtl = Lang.rtl(); int viewWidth = getMeasuredWidth(); - float selectedFactor = isSelected.getFloatValue(); - if (selectedFactor > 0f) { - c.drawColor(ColorUtils.alphaColor(selectedFactor, Theme.getColor(ColorId.fillingActive))); - } if (isDragging) { c.drawColor(ColorUtils.alphaColor(.8f, Theme.fillingColor())); } diff --git a/app/src/main/java/org/thunderdog/challegram/navigation/HeaderView.java b/app/src/main/java/org/thunderdog/challegram/navigation/HeaderView.java index fd692a2b89..ae4052cc9f 100644 --- a/app/src/main/java/org/thunderdog/challegram/navigation/HeaderView.java +++ b/app/src/main/java/org/thunderdog/challegram/navigation/HeaderView.java @@ -918,7 +918,7 @@ public TextView genTextTitle (Context context) { text.setGravity(Gravity.LEFT); text.setSingleLine(); text.setEllipsize(TextUtils.TruncateAt.END); - text.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20f); + text.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 19f); text.setTextColor(0xffffffff); text.setLayoutParams(params); return text; diff --git a/app/src/main/java/org/thunderdog/challegram/navigation/MenuMoreWrap.java b/app/src/main/java/org/thunderdog/challegram/navigation/MenuMoreWrap.java index 8c536680f1..3d431b63af 100644 --- a/app/src/main/java/org/thunderdog/challegram/navigation/MenuMoreWrap.java +++ b/app/src/main/java/org/thunderdog/challegram/navigation/MenuMoreWrap.java @@ -16,6 +16,8 @@ import android.content.Context; import android.graphics.Canvas; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffColorFilter; import android.graphics.RectF; import android.graphics.drawable.Drawable; import android.text.TextUtils; @@ -31,12 +33,12 @@ import androidx.annotation.Nullable; -import org.thunderdog.challegram.FillingDrawable; import org.thunderdog.challegram.R; import org.thunderdog.challegram.core.Lang; import org.thunderdog.challegram.loader.AvatarReceiver; import org.thunderdog.challegram.loader.ComplexReceiver; import org.thunderdog.challegram.support.RippleSupport; +import org.thunderdog.challegram.support.ViewSupport; import org.thunderdog.challegram.telegram.Tdlib; import org.thunderdog.challegram.theme.ColorId; import org.thunderdog.challegram.theme.Theme; @@ -44,7 +46,6 @@ import org.thunderdog.challegram.theme.ThemeListenerList; import org.thunderdog.challegram.tool.Drawables; import org.thunderdog.challegram.tool.Fonts; -import org.thunderdog.challegram.tool.FrogramUi; import org.thunderdog.challegram.tool.Paints; import org.thunderdog.challegram.tool.PorterDuffPaint; import org.thunderdog.challegram.tool.Screen; @@ -121,18 +122,20 @@ public void init (@Nullable ThemeListenerList themeProvider, @Nullable ThemeDele this.forcedTheme = forcedTheme; setMinimumWidth(Screen.dp(196f)); - FillingDrawable drawable = new FillingDrawable(ColorId.overlayFilling, FrogramUi.POPUP_RADIUS); - drawable.setForcedTheme(forcedTheme); + Drawable drawable; + if (forcedTheme != null) { + drawable = ViewSupport.getDrawableFilter(getContext(), R.drawable.bg_popup_fixed, new PorterDuffColorFilter(forcedTheme.getColor(ColorId.overlayFilling), PorterDuff.Mode.MULTIPLY)); + } else { + drawable = ViewSupport.getDrawableFilter(getContext(), R.drawable.bg_popup_fixed, new PorterDuffColorFilter(Theme.headerFloatBackgroundColor(), PorterDuff.Mode.MULTIPLY)); + } ViewUtils.setBackground(this, drawable); if (themeProvider != null && forcedTheme == null) { + themeProvider.addThemeSpecialFilterListener(drawable, ColorId.overlayFilling); themeProvider.addThemeInvalidateListener(this); } setOrientation(VERTICAL); - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { - setElevation(Screen.dp(8f)); - } setLayerType(LAYER_TYPE_HARDWARE, Views.getLayerPaint()); setLayoutParams(FrameLayoutFix.newParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.TOP | (Lang.rtl() ? Gravity.LEFT : Gravity.RIGHT))); } @@ -380,8 +383,8 @@ public TextView addItem (int id, CharSequence title, int iconRes, Drawable icon, menuItem.setEllipsize(TextUtils.TruncateAt.END); menuItem.setOnClickListener(listener); menuItem.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(ITEM_HEIGHT))); - menuItem.setPadding(Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), 0, Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), 0); - menuItem.setCompoundDrawablePadding(Screen.dp(16f)); + menuItem.setPadding(Screen.dp(17f), 0, Screen.dp(17f), 0); + menuItem.setCompoundDrawablePadding(Screen.dp(18f)); icon = iconRes != 0 ? Drawables.get(getResources(), iconRes) : icon; if (icon != null) { if (forcedTheme != null) { @@ -554,4 +557,4 @@ protected void onDetachedFromWindow () { super.onDetachedFromWindow(); complexAvatarReceiver.detach(); } -} +} \ No newline at end of file diff --git a/app/src/main/java/org/thunderdog/challegram/navigation/OptionsLayout.java b/app/src/main/java/org/thunderdog/challegram/navigation/OptionsLayout.java index 003d1e673c..84750393e0 100644 --- a/app/src/main/java/org/thunderdog/challegram/navigation/OptionsLayout.java +++ b/app/src/main/java/org/thunderdog/challegram/navigation/OptionsLayout.java @@ -15,6 +15,9 @@ package org.thunderdog.challegram.navigation; import android.content.Context; +import android.graphics.Canvas; +import android.graphics.ColorFilter; +import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.text.TextUtils; @@ -31,7 +34,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thunderdog.challegram.FillingDrawable; import org.thunderdog.challegram.core.Lang; import org.thunderdog.challegram.data.TD; import org.thunderdog.challegram.telegram.Tdlib; @@ -41,7 +43,6 @@ import org.thunderdog.challegram.theme.ThemeListenerList; import org.thunderdog.challegram.tool.Drawables; import org.thunderdog.challegram.tool.Fonts; -import org.thunderdog.challegram.tool.FrogramUi; import org.thunderdog.challegram.tool.Paints; import org.thunderdog.challegram.tool.Screen; import org.thunderdog.challegram.tool.UI; @@ -70,7 +71,7 @@ public OptionsLayout (Context context, ViewController parent, @Nullable Theme headerView = new CustomTextView(context, parent.tdlib()); headerView.setTextSize(18f); - headerView.setPadding(Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), Screen.dp(18f), Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), Screen.dp(6f)); + headerView.setPadding(Screen.dp(16f), Screen.dp(18f), Screen.dp(16f), Screen.dp(6f)); headerView.setTextColorId(ColorId.text); headerView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); headerView.setMaxLineCount(1); @@ -78,14 +79,32 @@ public OptionsLayout (Context context, ViewController parent, @Nullable Theme addView(headerView); textView = new CustomTextView(context, parent.tdlib()); - textView.setPadding(Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), Screen.dp(14f), Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), Screen.dp(6f)); + textView.setPadding(Screen.dp(16f), Screen.dp(14f), Screen.dp(16f), Screen.dp(6f)); textView.setTextColorId(ColorId.textLight); textView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); addView(textView); - FillingDrawable background = new FillingDrawable(ColorId.filling, FrogramUi.BOTTOM_SHEET_RADIUS, 0f); - background.setForcedTheme(forcedTheme); - ViewUtils.setBackground(this, background); + ViewUtils.setBackground(this, new Drawable() { + @Override + public void draw (@NonNull Canvas c) { + View view = getChildAt(0); + int height = view != null ? view.getMeasuredHeight() : 0; + if (height > 0) + c.drawRect(0, height, getMeasuredWidth(), getMeasuredHeight(), Paints.fillingPaint(forcedTheme != null ? forcedTheme.getColor(ColorId.filling) : Theme.getColor(ColorId.filling))); + } + + @Override + public void setAlpha (int alpha) { } + + @Override + public void setColorFilter (@Nullable ColorFilter colorFilter) { } + + @Override + @SuppressWarnings("deprecation") + public int getOpacity () { + return PixelFormat.UNKNOWN; + } + }); if (forcedTheme != null) { textView.setForcedTheme(forcedTheme); @@ -162,8 +181,8 @@ public static TextView genOptionView (Context context, int id, CharSequence stri text.setSingleLine(true); text.setEllipsize(TextUtils.TruncateAt.END); text.setGravity(Lang.rtl() ? Gravity.RIGHT | Gravity.CENTER_VERTICAL : Gravity.LEFT | Gravity.CENTER_VERTICAL); - text.setPadding(Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), Screen.dp(1f), Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), 0); - text.setCompoundDrawablePadding(Screen.dp(16f)); + text.setPadding(Screen.dp(17f), Screen.dp(1f), Screen.dp(17f), 0); + text.setCompoundDrawablePadding(Screen.dp(18f)); if (icon != 0) { Drawable drawable = Drawables.get(context.getResources(), icon); if (drawable != null) { @@ -251,7 +270,7 @@ public static EmojiTextView genSubtitle (Context context) { text.setTypeface(Fonts.getRobotoRegular()); text.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15f); text.setGravity(Lang.rtl() ? Gravity.RIGHT | Gravity.CENTER_VERTICAL : Gravity.LEFT | Gravity.CENTER_VERTICAL); - text.setPadding(Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), Screen.dp(6f), Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), 0); + text.setPadding(Screen.dp(17f), Screen.dp(6f), Screen.dp(17f), 0); text.setCompoundDrawablePadding(Screen.dp(8f)); text.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)); return text; diff --git a/app/src/main/java/org/thunderdog/challegram/navigation/ViewController.java b/app/src/main/java/org/thunderdog/challegram/navigation/ViewController.java index 7970866b22..daadbe2c43 100644 --- a/app/src/main/java/org/thunderdog/challegram/navigation/ViewController.java +++ b/app/src/main/java/org/thunderdog/challegram/navigation/ViewController.java @@ -2558,7 +2558,6 @@ public final PopupLayout showOptions (Options options, final OptionDelegate dele ShadowView shadowView = new ShadowView(context); shadowView.setSimpleTopShadow(true); - shadowView.setDrawNothing(true); optionsWrap.addView(shadowView, 0); addThemeInvalidateListener(shadowView); @@ -2584,14 +2583,12 @@ public final PopupLayout showOptions (Options options, final OptionDelegate dele if (item == OptionItem.SEPARATOR) { ShadowView shadowViewBottom = new ShadowView(context); shadowViewBottom.setSimpleBottomTransparentShadow(false); - shadowViewBottom.setDrawNothing(true); ViewSupport.setThemedBackground(shadowViewBottom, ColorId.background, this); addThemeInvalidateListener(shadowViewBottom); optionsWrap.addView(shadowViewBottom, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(6f))); ShadowView shadowViewTop = new ShadowView(context); shadowViewTop.setSimpleTopShadow(true, this); - shadowViewTop.setDrawNothing(true); addThemeInvalidateListener(shadowViewTop); optionsWrap.addView(shadowViewTop, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(6f))); index++; @@ -2638,7 +2635,6 @@ public final PopupLayout showPopup (CharSequence title, boolean isTitle, int max ShadowView shadowView = new ShadowView(context); shadowView.setSimpleTopShadow(true); - shadowView.setDrawNothing(true); optionsWrap.addView(shadowView, 0); addThemeInvalidateListener(shadowView); totalHeight += shadowView.getLayoutParams().height; diff --git a/app/src/main/java/org/thunderdog/challegram/navigation/ViewPagerTopView.java b/app/src/main/java/org/thunderdog/challegram/navigation/ViewPagerTopView.java index 91b22acde1..310fa4f516 100644 --- a/app/src/main/java/org/thunderdog/challegram/navigation/ViewPagerTopView.java +++ b/app/src/main/java/org/thunderdog/challegram/navigation/ViewPagerTopView.java @@ -23,7 +23,6 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; -import android.graphics.RectF; import android.graphics.Shader; import android.graphics.drawable.Drawable; import android.os.SystemClock; @@ -82,7 +81,7 @@ import me.vkryl.core.lambda.Destroyable; public class ViewPagerTopView extends FrameLayoutFix implements RtlCheckListener, View.OnClickListener, View.OnLongClickListener, Destroyable, TGLegacyManager.EmojiLoadListener, FactorAnimator.Target { - public static final @Dimension(unit = Dimension.DP) float SELECTION_HEIGHT = 3f; + public static final @Dimension(unit = Dimension.DP) float SELECTION_HEIGHT = 2f; public static final @Dimension(unit = Dimension.DP) float ICON_SIZE = 24f; public static final @Dimension(unit = Dimension.DP) float DEFAULT_ITEM_PADDING = 19f; public static final @Dimension(unit = Dimension.DP) float COMPACT_ITEM_PADDING = 10f; @@ -1079,11 +1078,7 @@ public void draw (@NonNull Canvas c) { int selectionTop = this.drawSelectionAtTop ? 0 : viewHeight - selectionHeight; int selectionBottom = selectionTop + selectionHeight; - int selectionInset = Math.min(Screen.dp(12f), Math.max(0, this.selectionWidth / 6)); - RectF selectionRect = Paints.getRectF(); - selectionRect.set(selectionLeft + selectionInset, selectionTop, selectionRight - selectionInset, selectionBottom); - c.drawRoundRect(selectionRect, selectionHeight / 2f, selectionHeight / 2f, - Paints.fillingPaint(disabledFactor == 0f ? selectionColor : ColorUtils.fromToArgb(selectionColor, textFromColor, disabledFactor))); + c.drawRect(selectionLeft, selectionTop, selectionRight, selectionBottom, Paints.fillingPaint(disabledFactor == 0f ? selectionColor : ColorUtils.fromToArgb(selectionColor, textFromColor, disabledFactor))); int cx = rtl ? totalWidth : 0; int itemIndex = 0; diff --git a/app/src/main/java/org/thunderdog/challegram/theme/Theme.java b/app/src/main/java/org/thunderdog/challegram/theme/Theme.java index d190dbe640..cdb3a85f19 100644 --- a/app/src/main/java/org/thunderdog/challegram/theme/Theme.java +++ b/app/src/main/java/org/thunderdog/challegram/theme/Theme.java @@ -558,23 +558,6 @@ public static Drawable fillingSelector (@ColorId int backgroundColorId, float ra } } - public static Drawable fillingSelector (@ColorId int backgroundColorId, float topRadius, float bottomRadius) { - if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) { - return fillingRippleSelector(backgroundColorId, topRadius, bottomRadius); - } else { - return fillingSimpleSelector(backgroundColorId, topRadius, bottomRadius); - } - } - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - private static Drawable fillingRippleSelector (@ColorId int backgroundColorId, float topRadius, float bottomRadius) { - return new android.graphics.drawable.RippleDrawable( - new ColorStateList(new int[][] {StateSet.WILD_CARD}, new int[] {RIPPLE_COLOR}), - new FillingDrawable(backgroundColorId, topRadius, bottomRadius), - createRoundRectDrawable(0xFFFFFFFF, topRadius, bottomRadius) - ); - } - @TargetApi(Build.VERSION_CODES.LOLLIPOP) private static Drawable fillingRippleSelector (@ColorId int backgroundColorId, float radius) { return new android.graphics.drawable.RippleDrawable( @@ -748,13 +731,6 @@ private static Drawable fillingSimpleSelector (@ColorId int backgroundColorId, f return Drawables.getColorSelector(new FillingDrawable(backgroundColorId, radius), new FillingDrawable(ColorId.fillingPressed, radius)); } - private static Drawable fillingSimpleSelector (@ColorId int backgroundColorId, float topRadius, float bottomRadius) { - return Drawables.getColorSelector( - new FillingDrawable(backgroundColorId, topRadius, bottomRadius), - new FillingDrawable(ColorId.fillingPressed, topRadius, bottomRadius) - ); - } - // Transparent drawable public static Drawable filteredDrawable (@DrawableRes int res, @ColorId int colorId, @Nullable ViewController themeProvider) { @@ -990,17 +966,6 @@ private static Drawable createRoundRectDrawable (int color, float radius) { return defaultDrawable; } - private static Drawable createRoundRectDrawable (int color, float topRadius, float bottomRadius) { - final int top = Screen.dp(topRadius); - final int bottom = Screen.dp(bottomRadius); - ShapeDrawable drawable = new ShapeDrawable(new RoundRectShape(new float[]{ - top, top, top, top, - bottom, bottom, bottom, bottom - }, null, null)); - drawable.getPaint().setColor(color); - return drawable; - } - // TODO REMOVE public static Drawable createSimpleSelectorRoundRectDrawable(int rad, int defaultColor, int pressedColor) { diff --git a/app/src/main/java/org/thunderdog/challegram/tool/FrogramUi.java b/app/src/main/java/org/thunderdog/challegram/tool/FrogramUi.java deleted file mode 100644 index 24339defcb..0000000000 --- a/app/src/main/java/org/thunderdog/challegram/tool/FrogramUi.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * This file is a part of Frogram X. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - */ -package org.thunderdog.challegram.tool; - -/** - * Shared visual constants for Frogram X. - * - * Keep these values restrained: the goal is a cleaner continuation of Telegram X, - * not a Material You skin. - */ -public final class FrogramUi { - public static final float SETTINGS_GROUP_MARGIN = 12f; - public static final float SETTINGS_GROUP_RADIUS = 14f; - public static final float SETTINGS_GROUP_TOP_GAP = 8f; - public static final float SETTINGS_GROUP_BOTTOM_GAP = 12f; - - public static final float CONTENT_HORIZONTAL_PADDING = 20f; - public static final float SETTING_ICON_TEXT_START = 64f; - public static final float SETTING_ROW_HEIGHT = 58f; - - public static final float POPUP_RADIUS = 14f; - public static final float BOTTOM_SHEET_RADIUS = 20f; - - public static final long MOTION_FAST = 150L; - public static final long MOTION_NORMAL = 220L; - - private FrogramUi () { } -} diff --git a/app/src/main/java/org/thunderdog/challegram/ui/MessagesController.java b/app/src/main/java/org/thunderdog/challegram/ui/MessagesController.java index 0c4f8790fc..c1fc4b26c7 100644 --- a/app/src/main/java/org/thunderdog/challegram/ui/MessagesController.java +++ b/app/src/main/java/org/thunderdog/challegram/ui/MessagesController.java @@ -79,7 +79,6 @@ import org.drinkless.tdlib.TdApi; import org.thunderdog.challegram.BaseActivity; import org.thunderdog.challegram.BuildConfig; -import org.thunderdog.challegram.FillingDrawable; import org.thunderdog.challegram.Log; import org.thunderdog.challegram.MainActivity; import org.thunderdog.challegram.R; @@ -273,7 +272,6 @@ import java.util.concurrent.atomic.AtomicReference; import me.vkryl.android.AnimatorUtils; -import me.vkryl.android.ViewUtils; import me.vkryl.android.animator.BoolAnimator; import me.vkryl.android.animator.FactorAnimator; import me.vkryl.android.util.ClickHelper; @@ -801,14 +799,7 @@ public boolean onTouchEvent (MotionEvent event) { addThemeHintTextColorListener(inputView, ColorId.textPlaceholder); inputView.setLinkTextColor(Theme.textLinkColor()); addThemeLinkTextColorListener(inputView, ColorId.textLink); - ViewUtils.setBackground(inputView, new FillingDrawable(ColorId.filling, 18f)); - addThemeInvalidateListener(inputView); - LinearLayout.LayoutParams inputParams = (LinearLayout.LayoutParams) inputView.getLayoutParams(); - inputParams.leftMargin = Screen.dp(6f); - inputParams.rightMargin = Screen.dp(6f); - inputParams.topMargin = Screen.dp(3f); - inputParams.bottomMargin = Screen.dp(3f); - inputView.setLayoutParams(inputParams); + ViewSupport.setThemedBackground(inputView, ColorId.filling, this); inputView.setHighlightColor(Theme.fillingTextSelectionColor()); addThemeHighlightColorListener(inputView, ColorId.textSelectionHighlight); bindLocaleChanger(inputView.setController(this)); diff --git a/app/src/main/java/org/thunderdog/challegram/ui/SettingHolder.java b/app/src/main/java/org/thunderdog/challegram/ui/SettingHolder.java index 0eb6d5394b..a3f0591447 100644 --- a/app/src/main/java/org/thunderdog/challegram/ui/SettingHolder.java +++ b/app/src/main/java/org/thunderdog/challegram/ui/SettingHolder.java @@ -71,7 +71,6 @@ import org.thunderdog.challegram.theme.Theme; import org.thunderdog.challegram.tool.Drawables; import org.thunderdog.challegram.tool.Fonts; -import org.thunderdog.challegram.tool.FrogramUi; import org.thunderdog.challegram.tool.Paints; import org.thunderdog.challegram.tool.Screen; import org.thunderdog.challegram.tool.Views; @@ -161,10 +160,10 @@ public static int measureHeightForType (int viewType) { return Screen.dp(64f); } case ListItem.TYPE_SHADOW_TOP: { // 2 OK - return Screen.dp(FrogramUi.SETTINGS_GROUP_TOP_GAP); + return Screen.dp(6f); } case ListItem.TYPE_SHADOW_BOTTOM: { // 3 OK - return Screen.dp(FrogramUi.SETTINGS_GROUP_BOTTOM_GAP); + return Screen.dp(6f); } case ListItem.TYPE_MEMBERS_LIST: { return Screen.dp(95f); @@ -205,7 +204,7 @@ public static int measureHeightForType (int viewType) { case ListItem.TYPE_RADIO_OPTION_LEFT: case ListItem.TYPE_RADIO_OPTION_WITH_AVATAR: case ListItem.TYPE_SHADOWED_OFFSET: { - return Screen.dp(FrogramUi.SETTING_ROW_HEIGHT); + return Screen.dp(55f); } case ListItem.TYPE_INFO_MULTILINE: case ListItem.TYPE_CHECKBOX_OPTION_DOUBLE_LINE: { @@ -633,8 +632,8 @@ public static SettingHolder create (final Context context, final Tdlib tdlib, fi if (themeProvider != null) { themeProvider.addThemeInvalidateListener(shadowView); } - shadowView.setDrawNothing(true); - shadowView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(FrogramUi.SETTINGS_GROUP_TOP_GAP))); + shadowView.setSimpleTopShadow(true); + shadowView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(6f))); return new SettingHolder(shadowView); } case ListItem.TYPE_SLIDER: @@ -705,8 +704,8 @@ protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec) { if (themeProvider != null) { themeProvider.addThemeInvalidateListener(shadowView); } - shadowView.setDrawNothing(true); - shadowView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(FrogramUi.SETTINGS_GROUP_BOTTOM_GAP))); + shadowView.setSimpleBottomTransparentShadow(false); + shadowView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(6f))); return new SettingHolder(shadowView); } case ListItem.TYPE_DRAWER_ITEM: @@ -1298,7 +1297,7 @@ public void getItemOffsets (Rect outRect, View view, RecyclerView parent, Recycl TextView textView = new CustomEmojiTextView(context, tdlib); textView.setGravity(Lang.gravity(Gravity.CENTER_VERTICAL)); int paddingTop = viewType == ListItem.TYPE_HEADER_MULTILINE ? Screen.dp(6f) : viewType == ListItem.TYPE_HEADER_PADDED ? Screen.dp(4f) : 0; - textView.setPadding(Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), paddingTop, Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), viewType == ListItem.TYPE_HEADER_MULTILINE ? Screen.dp(6f) : 0); + textView.setPadding(Screen.dp(16f), paddingTop, Screen.dp(16f), viewType == ListItem.TYPE_HEADER_MULTILINE ? Screen.dp(6f) : 0); textView.setSingleLine(viewType != ListItem.TYPE_HEADER_MULTILINE); textView.setEllipsize(TextUtils.TruncateAt.END); textView.setTextColor(Theme.textAccent2Color()); @@ -1306,7 +1305,7 @@ public void getItemOffsets (Rect outRect, View view, RecyclerView parent, Recycl themeProvider.addThemeTextColorListener(textView, ColorId.background_text); } textView.setTypeface(Fonts.getRobotoMedium()); - textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13f); + textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15f); if (viewType == ListItem.TYPE_HEADER_WITH_ACTION) { FrameLayoutFix wrapView = new FrameLayoutFix(context); @@ -1337,7 +1336,7 @@ protected void onReplaceText (@NonNull CharSequence replacement) { setText(replacement); } }; - textButton.setPadding(Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), 0, Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), 0); + textButton.setPadding(Screen.dp(16f), 0, Screen.dp(16f), 0); textButton.setGravity(Gravity.CENTER_VERTICAL); textButton.setSingleLine(true); textButton.setTextColor(Theme.textAccent2Color()); @@ -1345,7 +1344,7 @@ protected void onReplaceText (@NonNull CharSequence replacement) { themeProvider.addThemeTextColorListener(textButton, ColorId.background_text); } textButton.setTypeface(Fonts.getRobotoRegular()); - textButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14f); + textButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15f); textButton.setOnClickListener(onClickListener); wrapView.addView(textButton, isRtl ? 0 : 1, LayoutHelper.createLinear(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT)); wrapView.setLayoutParams(new RecyclerView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Screen.dp(32f))); @@ -2490,7 +2489,7 @@ public static TextView createDescription (Context context, int viewType, @ColorI if (viewType == ListItem.TYPE_DESCRIPTION_SMALL) { textView.setTextColor(Theme.textDecentColor()); textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12f); - textView.setPadding(Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), 0, Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), Screen.dp(12f)); + textView.setPadding(Screen.dp(16f), 0, Screen.dp(16f), Screen.dp(12f)); ViewUtils.setBackground(textView, new FillingDrawable(ColorId.filling)); if (themeProvider != null) { themeProvider.addThemeTextColorListener(textView, ColorId.textLight); @@ -2502,7 +2501,7 @@ public static TextView createDescription (Context context, int viewType, @ColorI themeProvider.addThemeTextColorListener(textView, textColorId); } textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 15f); - textView.setPadding(Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), Screen.dp(6f), Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING), Screen.dp(12f)); + textView.setPadding(Screen.dp(16f), Screen.dp(6f), Screen.dp(16f), Screen.dp(12f)); } textView.setLinkTextColor(Theme.textLinkColor()); textView.setHighlightColor(Theme.textLinkHighlightColor()); diff --git a/app/src/main/java/org/thunderdog/challegram/ui/SettingsAdapter.java b/app/src/main/java/org/thunderdog/challegram/ui/SettingsAdapter.java index 4d916359fc..36e2519ad9 100644 --- a/app/src/main/java/org/thunderdog/challegram/ui/SettingsAdapter.java +++ b/app/src/main/java/org/thunderdog/challegram/ui/SettingsAdapter.java @@ -65,7 +65,6 @@ import org.thunderdog.challegram.telegram.TdlibDelegate; import org.thunderdog.challegram.theme.ColorId; import org.thunderdog.challegram.theme.Theme; -import org.thunderdog.challegram.tool.FrogramUi; import org.thunderdog.challegram.tool.Paints; import org.thunderdog.challegram.tool.Screen; import org.thunderdog.challegram.tool.UI; @@ -1341,110 +1340,6 @@ public void onFactorChanged (int id, float factor, float fraction, FactorAnimato } } - private boolean isGroupBoundary (int position, int type) { - return position >= 0 && position < items.size() && items.get(position).getViewType() == type; - } - - private boolean isInsideSettingsGroup (int position) { - boolean hasTop = false; - for (int i = position - 1; i >= 0; i--) { - int type = items.get(i).getViewType(); - if (type == ListItem.TYPE_SHADOW_TOP) { - hasTop = true; - break; - } - if (type == ListItem.TYPE_SHADOW_BOTTOM) { - break; - } - } - if (!hasTop) { - return false; - } - for (int i = position + 1; i < items.size(); i++) { - int type = items.get(i).getViewType(); - if (type == ListItem.TYPE_SHADOW_BOTTOM) { - return true; - } - if (type == ListItem.TYPE_SHADOW_TOP) { - return false; - } - } - return false; - } - - private static boolean supportsFrogramGroupSurface (int viewType) { - switch (viewType) { - case ListItem.TYPE_SETTING: - case ListItem.TYPE_RADIO_SETTING: - case ListItem.TYPE_RADIO_SETTING_WITH_NEGATIVE_STATE: - case ListItem.TYPE_CHECKBOX_OPTION: - case ListItem.TYPE_CHECKBOX_OPTION_MULTILINE: - case ListItem.TYPE_CHECKBOX_OPTION_REVERSE: - case ListItem.TYPE_CHECKBOX_OPTION_DOUBLE_LINE: - case ListItem.TYPE_CHECKBOX_OPTION_WITH_AVATAR: - case ListItem.TYPE_RADIO_OPTION: - case ListItem.TYPE_RADIO_OPTION_LEFT: - case ListItem.TYPE_RADIO_OPTION_WITH_AVATAR: - case ListItem.TYPE_VALUED_SETTING: - case ListItem.TYPE_VALUED_SETTING_WITH_RADIO: - case ListItem.TYPE_VALUED_SETTING_COMPACT: - case ListItem.TYPE_VALUED_SETTING_COMPACT_WITH_COLOR: - case ListItem.TYPE_VALUED_SETTING_COMPACT_WITH_RADIO: - case ListItem.TYPE_VALUED_SETTING_COMPACT_WITH_RADIO_2: - case ListItem.TYPE_VALUED_SETTING_COMPACT_WITH_TOGGLER: - case ListItem.TYPE_VALUED_SETTING_COMPACT_WITH_CHECKBOX: - case ListItem.TYPE_INFO_SETTING: - case ListItem.TYPE_INFO_MULTILINE: - case ListItem.TYPE_DESCRIPTION: - case ListItem.TYPE_DESCRIPTION_SMALL: - case ListItem.TYPE_DESCRIPTION_CENTERED: - case ListItem.TYPE_SEPARATOR: - case ListItem.TYPE_SEPARATOR_FULL: - case ListItem.TYPE_SESSION: - case ListItem.TYPE_SESSION_WITH_AVATAR: - case ListItem.TYPE_BUTTON: - case ListItem.TYPE_SLIDER: - case ListItem.TYPE_SLIDER_BRIGHTNESS: - return true; - default: - return false; - } - } - - private void applyFrogramGroupStyle (View view, int position, int viewType) { - if (!supportsFrogramGroupSurface(viewType)) { - return; - } - - boolean insideGroup = isInsideSettingsGroup(position); - ViewGroup.LayoutParams rawParams = view.getLayoutParams(); - if (rawParams instanceof RecyclerView.LayoutParams) { - RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) rawParams; - int margin = insideGroup ? Screen.dp(FrogramUi.SETTINGS_GROUP_MARGIN) : 0; - if (params.leftMargin != margin || params.rightMargin != margin) { - params.leftMargin = margin; - params.rightMargin = margin; - view.setLayoutParams(params); - } - } - - if (insideGroup) { - float topRadius = isGroupBoundary(position - 1, ListItem.TYPE_SHADOW_TOP) ? FrogramUi.SETTINGS_GROUP_RADIUS : 0f; - float bottomRadius = isGroupBoundary(position + 1, ListItem.TYPE_SHADOW_BOTTOM) ? FrogramUi.SETTINGS_GROUP_RADIUS : 0f; - view.setBackground(Theme.fillingSelector(ColorId.filling, topRadius, bottomRadius)); - } else { - switch (viewType) { - case ListItem.TYPE_DESCRIPTION: - case ListItem.TYPE_DESCRIPTION_CENTERED: - view.setBackground(null); - break; - default: - view.setBackground(Theme.fillingSelector(ColorId.filling)); - break; - } - } - } - @Override public void onFactorChangeFinished (int id, float finalFactor, FactorAnimator callee) { } @@ -1943,8 +1838,8 @@ public void updateView (SettingHolder holder, int position, int viewType) { case ListItem.TYPE_DESCRIPTION_CENTERED: { TextView textView = (TextView) holder.itemView; textView.setTextColor(Theme.getColor(item.getTextColorId(viewType == ListItem.TYPE_DESCRIPTION_CENTERED ? ColorId.textLight : ColorId.background_textLight))); - int paddingLeft = Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING) + item.getTextPaddingLeft(); - int paddingRight = Screen.dp(FrogramUi.CONTENT_HORIZONTAL_PADDING) + item.getTextPaddingRight(); + int paddingLeft = Screen.dp(16f) + item.getTextPaddingLeft(); + int paddingRight = Screen.dp(16f) + item.getTextPaddingRight(); textView.setText(item.getString()); if (holder.itemView.getPaddingLeft() != paddingLeft || holder.itemView.getPaddingRight() != paddingRight) { holder.itemView.setPadding(paddingLeft, holder.itemView.getPaddingTop(), paddingRight, holder.itemView.getPaddingBottom()); @@ -1981,7 +1876,6 @@ public void updateView (SettingHolder holder, int position, int viewType) { break; } } - applyFrogramGroupStyle(holder.itemView, position, viewType); } @Override diff --git a/app/src/main/java/org/thunderdog/challegram/widget/ShadowView.java b/app/src/main/java/org/thunderdog/challegram/widget/ShadowView.java index b47d43a227..240c4fc87a 100644 --- a/app/src/main/java/org/thunderdog/challegram/widget/ShadowView.java +++ b/app/src/main/java/org/thunderdog/challegram/widget/ShadowView.java @@ -112,14 +112,6 @@ public void setSimpleTopShadow (boolean withDefaultSize, ViewController theme private boolean isTopShadow; private boolean isTransparent; - private boolean drawNothing; - - public void setDrawNothing (boolean drawNothing) { - if (this.drawNothing != drawNothing) { - this.drawNothing = drawNothing; - invalidate(); - } - } public void setSimpleTopShadow (boolean withDefaultSize) { final int height = simpleTopShadowHeight(); @@ -177,9 +169,6 @@ private void drawSeparator (Canvas c, float factor) { @Override protected void onDraw (Canvas c) { - if (drawNothing) { - return; - } float separatorFactor = Theme.getSeparatorReplacement(); if (separatorFactor == 0f) { drawSimpleShadow(c, (isTransparent ? Theme.getShadowDepth() : 1f)); diff --git a/app/src/main/other/themes/Green.tgx-theme b/app/src/main/other/themes/Green.tgx-theme index 4ef08d2f90..cfbcfcb29c 100644 --- a/app/src/main/other/themes/Green.tgx-theme +++ b/app/src/main/other/themes/Green.tgx-theme @@ -6,19 +6,19 @@ tinted: true @ parentTheme: 1 # -badge, bubbleIn_textLink, bubbleOut_inlineOutline, bubbleOut_textLink, bubbleOut_ticks, bubbleOut_ticksRead, bubbleOut_waveformActive, chatListAction, checkActive, iconActive, inlineOutline, iv_textLink, iv_textMarkedLink, messageSwipeBackground, online, profileSectionActiveContent, textLink, ticks, ticksRead, togglerActive, unreadText, waveformActive, bubbleOut_fillingPositive, bubbleIn_fillingPositive, bubbleIn_fillingPositive_overlay, bubbleOut_fillingPositive_overlay: #16866F -bubbleIn_progress, bubbleOut_chatCorrectChosenFilling, bubbleOut_chatCorrectFilling, bubbleOut_chatVerticalLine, chatListVerify, circleButtonActive, circleButtonRegular, circleButtonTheme, controlActive, headerBarCallActive, inputActive, messageCorrectChosenFilling, messageCorrectFilling, messageVerticalLine, progress, seekDone, sliderActive, snackbarUpdate, textNeutral: #2A947A -bubbleIn_textLinkPressHighlight, bubbleOut_textLinkPressHighlight, iv_textLinkPressHighlight, iv_textMarkedLinkPressHighlight, textLinkPressHighlight, tooltip_textLinkPressHighlight: #16866F40 -bubbleOut_background: #E5F5EF -bubbleOut_file, file, playerButtonActive: #4D9E89 -bubbleOut_inlineIcon, bubbleOut_inlineText, bubbleOut_messageAuthor, chatSendButton, headerBackground, inlineIcon, inlineText, messageAuthor, notification, notificationLink, notificationPlayer, passcode, profileSectionActive, fillingPositive: #117A64 -bubbleOut_outline: #B8D6CC -bubbleOut_progress, bubbleOut_separator, bubbleOut_time: #3F927B -bubbleOut_waveformInactive, textSelectionHighlight, waveformInactive: #BCE4D8 -messageSelection: #16866F10 -promo, textSearchQueryHighlight, tooltip_textLink, avatarArchive, avatarSavedMessages, avatarSavedMessages_big, avatarReplies, avatarReplies_big: #54AA93 -seekReady: #D8EEE7 -togglerActiveBackground: #9DCEBF -unread: #E6F3EF -bubble_messageSelection, bubble_messageSelectionNoWallpaper: #16866F33 -bubbleOut_fillingActive: #16866F2C +badge, bubbleIn_textLink, bubbleOut_inlineOutline, bubbleOut_textLink, bubbleOut_ticks, bubbleOut_ticksRead, bubbleOut_waveformActive, chatListAction, checkActive, iconActive, inlineOutline, iv_textLink, iv_textMarkedLink, messageSwipeBackground, online, profileSectionActiveContent, textLink, ticks, ticksRead, togglerActive, unreadText, waveformActive, bubbleOut_fillingPositive, bubbleIn_fillingPositive, bubbleIn_fillingPositive_overlay, bubbleOut_fillingPositive_overlay: #4CAF50 +bubbleIn_progress, bubbleOut_chatCorrectChosenFilling, bubbleOut_chatCorrectFilling, bubbleOut_chatVerticalLine, chatListVerify, circleButtonActive, circleButtonRegular, circleButtonTheme, controlActive, headerBarCallActive, inputActive, messageCorrectChosenFilling, messageCorrectFilling, messageVerticalLine, progress, seekDone, sliderActive, snackbarUpdate, textNeutral: #66BB6A +bubbleIn_textLinkPressHighlight, bubbleOut_textLinkPressHighlight, iv_textLinkPressHighlight, iv_textMarkedLinkPressHighlight, textLinkPressHighlight, tooltip_textLinkPressHighlight: #4CAF5040 +bubbleOut_background: #EFFDDE +bubbleOut_file, file, playerButtonActive: #78C67F +bubbleOut_inlineIcon, bubbleOut_inlineText, bubbleOut_messageAuthor, chatSendButton, headerBackground, inlineIcon, inlineText, messageAuthor, notification, notificationLink, notificationPlayer, passcode, profileSectionActive, fillingPositive: #43A047 +bubbleOut_outline: #B6CBDD +bubbleOut_progress, bubbleOut_separator, bubbleOut_time: #6CC264 +bubbleOut_waveformInactive, textSelectionHighlight, waveformInactive: #C8E6C9 +messageSelection: #66BB6A10 +promo, textSearchQueryHighlight, tooltip_textLink, avatarArchive, avatarSavedMessages, avatarSavedMessages_big, avatarReplies, avatarReplies_big: #81C784 +seekReady: #D9EEDA +togglerActiveBackground: #A5D6A7 +unread: #E8F5E9 +bubble_messageSelection, bubble_messageSelectionNoWallpaper: #4CAF5033 +bubbleOut_fillingActive: #97CB422C