Fix color inconsistencies across themes

This commit is contained in:
Oscar Mira 2025-03-21 12:42:52 +01:00
parent a17941f89a
commit 4953cd80fa
No known key found for this signature in database
GPG key ID: B371B98C5DC32237
79 changed files with 379 additions and 342 deletions

View file

@ -241,7 +241,7 @@ public class MainActivity extends PassphraseRequiredActivity implements VoiceNot
final boolean showCalls = TextSecurePreferences.getNavbarShowCalls(this);
if (showCalls || showStories) {
findViewById(R.id.conversation_list_tabs).setVisibility(View.VISIBLE);
WindowUtil.setNavigationBarColor(this, ThemeUtil.getThemedColor(this,com.google.android.material.R.attr.colorSurfaceContainer));
WindowUtil.setNavigationBarColor(this, ThemeUtil.getThemedColor(this, R.attr.navbar_container_color));
} else {
findViewById(R.id.conversation_list_tabs).setVisibility(View.GONE);
WindowUtil.setNavigationBarColor(this, ThemeUtil.getThemedColor(this, com.google.android.material.R.attr.colorSurface));

View file

@ -148,7 +148,8 @@ fun DefaultBanner(
) {
Icon(
painter = painterResource(id = R.drawable.symbol_x_24),
contentDescription = stringResource(id = R.string.InviteActivity_cancel)
contentDescription = stringResource(id = R.string.InviteActivity_cancel),
tint = colorResource(id = R.color.signal_light_colorOnSurface),
)
}
}

View file

@ -9,7 +9,6 @@ import android.view.View;
import androidx.annotation.LayoutRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.LinearSmoothScroller;
@ -21,6 +20,7 @@ import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter.Emoj
import org.thoughtcrime.securesms.components.emoji.EmojiPageViewGridAdapter.VariationSelectorListener;
import org.thoughtcrime.securesms.util.ContextUtil;
import org.thoughtcrime.securesms.util.DrawableUtil;
import org.thoughtcrime.securesms.util.ThemeUtil;
import org.thoughtcrime.securesms.util.ViewUtil;
import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel;
@ -108,7 +108,7 @@ public class EmojiPageView extends RecyclerView implements VariationSelectorList
setLayoutManager(layoutManager);
Drawable drawable = DrawableUtil.tint(ContextUtil.requireDrawable(getContext(), R.drawable.triangle_bottom_right_corner), ContextCompat.getColor(getContext(), R.color.signal_button_secondary_text_disabled));
Drawable drawable = DrawableUtil.tint(ContextUtil.requireDrawable(getContext(), R.drawable.triangle_bottom_right_corner), ThemeUtil.getThemedColor(getContext(), R.attr.signal_button_secondary_text_disabled));
addItemDecoration(new EmojiItemDecoration(allowVariations, drawable));
}

View file

@ -272,19 +272,8 @@ private fun AppSettingsContent(
val donateUrl = stringResource(R.string.donate_url)
Rows.TextRow(
text = {
Text(
text = stringResource(R.string.preferences__donate_to_signal),
modifier = Modifier.weight(1f)
)
},
icon = {
Icon(
painter = painterResource(R.drawable.symbol_heart_24),
contentDescription = null,
tint = MaterialTheme.colorScheme.onSurface
)
},
text = stringResource(R.string.preferences__donate_to_signal),
icon = painterResource(R.drawable.symbol_heart_24),
onClick = {
CommunicationActions.openBrowserLink(context, donateUrl)
},

View file

@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.components.settings.app.subscription.manage
import android.text.method.LinkMovementMethod
import android.widget.ProgressBar
import android.widget.TextView
import androidx.core.content.ContextCompat
import org.signal.core.util.money.FiatMoney
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.badges.BadgeImageView
@ -13,6 +12,7 @@ import org.thoughtcrime.securesms.payments.FiatMoneyUtil
import org.thoughtcrime.securesms.subscription.Subscription
import org.thoughtcrime.securesms.util.DateUtils
import org.thoughtcrime.securesms.util.SpanUtil
import org.thoughtcrime.securesms.util.ThemeUtil
import org.thoughtcrime.securesms.util.adapter.mapping.BindingFactory
import org.thoughtcrime.securesms.util.adapter.mapping.BindingViewHolder
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
@ -130,7 +130,7 @@ object ActiveSubscriptionPreference {
{
model.onContactSupport()
},
ContextCompat.getColor(context, R.color.signal_accent_primary)
ThemeUtil.getThemedColor(context, R.attr.signal_accent_primary)
)
progress.visible = false
}
@ -144,7 +144,7 @@ object ActiveSubscriptionPreference {
{
model.onContactSupport()
},
ContextCompat.getColor(context, R.color.signal_accent_primary)
ThemeUtil.getThemedColor(context, R.attr.signal_accent_primary)
)
progress.visible = false
}

View file

@ -8,7 +8,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.core.text.method.LinkMovementMethodCompat
import com.airbnb.lottie.LottieAnimationView
import com.airbnb.lottie.LottieDrawable
@ -25,6 +24,7 @@ import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.util.SpanUtil
import org.thoughtcrime.securesms.util.ThemeUtil
import org.thoughtcrime.securesms.util.fragments.findListener
import org.thoughtcrime.securesms.util.visible
@ -86,7 +86,7 @@ class ThanksForYourSupportBottomSheetDialogFragment : FixedRoundedCornerBottomSh
.append(
SpanUtil.clickable(
getString(R.string.SubscribeThanksForYourSupportBottomSheetDialogFragment__become_a_montly_sustainer),
ContextCompat.getColor(requireContext(), R.color.signal_accent_primary)
ThemeUtil.getThemedColor(requireContext(), R.attr.signal_accent_primary)
) {
requireActivity().finish()
requireActivity().startActivity(AppSettingsActivity.subscriptions(requireContext()))

View file

@ -1521,7 +1521,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo
int end = messageBody.getSpanEnd(placeholder);
URLSpan span = new InterceptableLongClickCopyLinkSpan(placeholder.getValue(),
urlClickListener,
ContextCompat.getColor(getContext(), R.color.signal_accent_primary),
ThemeUtil.getThemedColor(context, R.attr.signal_accent_primary),
false);
messageBody.setSpan(span, start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

View file

@ -5,11 +5,11 @@ import android.graphics.Color
import android.view.View
import android.widget.ImageView
import android.widget.TextView
import androidx.core.content.ContextCompat
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.components.TooltipPopup
import org.thoughtcrime.securesms.conversation.colors.ChatColors
import org.thoughtcrime.securesms.keyvalue.SignalStore
import org.thoughtcrime.securesms.util.ThemeUtil
import org.thoughtcrime.securesms.util.ViewUtil
import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory
import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter
@ -93,7 +93,7 @@ class ChatColorSelectionAdapter(
SignalStore.chatColors.shouldShowAutoTooltip = false
TooltipPopup.forTarget(itemView)
.setText(R.string.ChatColorSelectionFragment__auto_matches_the_color_to_the_wallpaper)
.setBackgroundTint(ContextCompat.getColor(context, R.color.signal_accent_primary))
.setBackgroundTint(ThemeUtil.getThemedColor(context, R.attr.signal_accent_primary))
.setTextColor(Color.WHITE)
.show(TooltipPopup.POSITION_BELOW)
}

View file

@ -22,6 +22,7 @@ import android.view.ViewGroup
import androidx.appcompat.content.res.AppCompatResources
import androidx.core.animation.doOnEnd
import androidx.core.content.ContextCompat
import androidx.core.graphics.ColorUtils
import androidx.core.view.animation.PathInterpolatorCompat
import androidx.core.view.children
import androidx.core.view.forEach
@ -63,8 +64,8 @@ class MultiselectItemDecoration(
private val transparentBlack20 = ContextCompat.getColor(context, R.color.transparent_black_20)
private val transparentWhite20 = ContextCompat.getColor(context, R.color.transparent_white_20)
private val transparentWhite60 = ContextCompat.getColor(context, R.color.transparent_white_60)
private val ultramarine30 = ContextCompat.getColor(context, R.color.core_ultramarine_33)
private val ultramarine = ContextCompat.getColor(context, R.color.signal_accent_primary)
private val ultramarine = ThemeUtil.getThemedColor(context, R.attr.signal_accent_primary)
private val ultramarine30 = ColorUtils.setAlphaComponent(ultramarine, 0x55)
private val selectedParts: MutableSet<MultiselectPart> = mutableSetOf()
private var enterExitAnimation: ValueAnimator? = null

View file

@ -1322,7 +1322,7 @@ class ConversationFragment :
private fun presentNavigationIconForBubble() {
binding.toolbar.navigationIcon = DrawableUtil.tint(
ContextUtil.requireDrawable(requireContext(), R.drawable.ic_notification),
ContextCompat.getColor(requireContext(), R.color.signal_accent_primary)
ThemeUtil.getThemedColor(requireContext(), R.attr.signal_accent_primary)
)
binding.toolbar.setNavigationContentDescription(R.string.ConversationFragment__content_description_launch_signal_button)

View file

@ -435,7 +435,7 @@ open class V2ConversationItemTextOnlyViewHolder<Model : MappingModel<Model>>(
val span: URLSpan = InterceptableLongClickCopyLinkSpan(
placeholder.value,
conversationContext.clickListener::onUrlClicked,
ContextCompat.getColor(getContext(), R.color.signal_accent_primary),
ThemeUtil.getThemedColor(context, R.attr.signal_accent_primary),
false
)

View file

@ -14,9 +14,11 @@ import androidx.core.content.res.use
import androidx.core.view.ViewCompat
import androidx.core.widget.ImageViewCompat
import androidx.core.widget.doAfterTextChanged
import com.google.android.material.R as MaterialR
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.animation.AnimationCompleteListener
import org.thoughtcrime.securesms.animation.ResizeAnimation
import org.thoughtcrime.securesms.util.ThemeUtil
import org.thoughtcrime.securesms.util.ViewUtil
import org.thoughtcrime.securesms.util.visible

View file

@ -8,7 +8,6 @@ import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.ActionMenuView
import androidx.appcompat.widget.Toolbar
import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat
import androidx.core.view.children
import androidx.fragment.app.Fragment
@ -44,6 +43,7 @@ import org.thoughtcrime.securesms.stories.tabs.ConversationListTabsViewModel
import org.thoughtcrime.securesms.util.AvatarUtil
import org.thoughtcrime.securesms.util.BottomSheetUtil
import org.thoughtcrime.securesms.util.Material3OnScrollHelper
import org.thoughtcrime.securesms.util.ThemeUtil
import org.thoughtcrime.securesms.util.TopToastPopup
import org.thoughtcrime.securesms.util.Util
import org.thoughtcrime.securesms.util.runHideAnimation
@ -361,8 +361,8 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f
if (target != null) {
TooltipPopup.forTarget(target)
.setText(R.string.ConversationListFragment__turn_your_notification_profile_on_or_off_here)
.setBackgroundTint(ContextCompat.getColor(requireContext(), R.color.signal_button_primary))
.setTextColor(ContextCompat.getColor(requireContext(), R.color.signal_button_primary_text))
.setBackgroundTint(ThemeUtil.getThemedColor(requireContext(), R.attr.signal_button_primary))
.setTextColor(ThemeUtil.getThemedColor(requireContext(), R.attr.signal_button_primary_text))
.setOnDismissListener { SignalStore.notificationProfile.hasSeenTooltip = true }
.show(TooltipPopup.POSITION_BELOW)
} else {

View file

@ -2,9 +2,7 @@ package org.thoughtcrime.securesms.mediasend.v2.review
import android.content.DialogInterface
import android.os.Bundle
import android.view.ContextThemeWrapper
import android.view.KeyEvent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.widget.addTextChangedListener
@ -72,13 +70,6 @@ class AddMessageDialogFragment : KeyboardEntryDialogFragment(R.layout.v2_media_a
private val disposables = CompositeDisposable()
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
val themeWrapper = ContextThemeWrapper(inflater.context, R.style.TextSecure_DarkTheme)
val themedInflater = LayoutInflater.from(themeWrapper)
return super.onCreateView(themedInflater, container, savedInstanceState)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
emojiDrawerStub = Stub(binding.content.emojiDrawerStub)

View file

@ -402,7 +402,6 @@ private fun Content(
Text(
text = stringResource(id = R.string.FindByActivity__qr_scan_button),
style = MaterialTheme.typography.labelMedium,
color = MaterialTheme.colorScheme.onSurface
)
}
}

View file

@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.stories.tabs
import android.animation.Animator
import android.animation.AnimatorSet
import android.animation.ValueAnimator
import android.graphics.Color
import android.os.Bundle
import android.view.View
import android.widget.ImageView
@ -40,17 +41,17 @@ class ConversationListTabsFragment : Fragment(R.layout.conversation_list_tabs) {
private val largeConstraintSet: ConstraintSet = ConstraintSet()
private val smallConstraintSet: ConstraintSet = ConstraintSet()
private var activeIconTint: Int = Color.RED
private var inactiveIconTint: Int = Color.RED
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
disposables.bindTo(viewLifecycleOwner)
val iconTint = ThemeUtil.getThemedColor(requireContext(), com.google.android.material.R.attr.colorOnSecondaryContainer)
largeConstraintSet.clone(binding.root)
smallConstraintSet.clone(requireContext(), R.layout.conversation_list_tabs_small)
binding.chatsTabIcon.setTintColor(iconTint)
binding.callsTabIcon.setTintColor(iconTint)
binding.storiesTabIcon.setTintColor(iconTint)
activeIconTint = ThemeUtil.getThemedColor(requireContext(), com.google.android.material.R.attr.colorOnSecondaryContainer)
inactiveIconTint = ThemeUtil.getThemedColor(requireContext(), com.google.android.material.R.attr.colorOnSurface)
view.findViewById<View>(R.id.chats_tab_touch_point).setOnClickListener {
viewModel.onChatsSelected()
@ -153,6 +154,10 @@ class ConversationListTabsFragment : Fragment(R.layout.conversation_list_tabs) {
binding.callsPill.isSelected = state.tab == ConversationListTab.CALLS
}
with(binding.chatsTabIcon) { setTintColor(if (isSelected) activeIconTint else inactiveIconTint) }
with(binding.callsTabIcon) { setTintColor(if (isSelected) activeIconTint else inactiveIconTint) }
with(binding.storiesTabIcon) { setTintColor(if (isSelected) activeIconTint else inactiveIconTint) }
val hasStateChange = state.tab != state.prevTab
if (immediate) {
binding.chatsTabIcon.pauseAnimation()

View file

@ -33,7 +33,6 @@ import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.annotation.StyleRes;
import androidx.core.content.ContextCompat;
import org.signal.core.util.DimensionUnit;
import org.thoughtcrime.securesms.R;
@ -187,7 +186,7 @@ public final class SpanUtil {
}
public static Spannable clickSubstring(@NonNull Context context, @StringRes int mainString, @StringRes int clickableString, @NonNull View.OnClickListener clickListener) {
return clickSubstring(context, mainString, clickableString, clickListener, false, R.color.signal_accent_primary);
return clickSubstring(context, mainString, clickableString, clickListener, false, R.attr.signal_accent_primary);
}
/**
@ -205,7 +204,7 @@ public final class SpanUtil {
*
* Can optionally configure the color & if it's underlined. Default is blue with no underline.
*/
public static Spannable clickSubstring(@NonNull Context context, @StringRes int mainString, @StringRes int clickableString, @NonNull View.OnClickListener clickListener, boolean shouldUnderline, int linkColor) {
public static Spannable clickSubstring(@NonNull Context context, @StringRes int mainString, @StringRes int clickableString, @NonNull View.OnClickListener clickListener, boolean shouldUnderline, int linkColorAttr) {
String main = context.getString(mainString, SPAN_PLACE_HOLDER);
String clickable = context.getString(clickableString);
@ -224,7 +223,7 @@ public final class SpanUtil {
public void updateDrawState(@NonNull TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(shouldUnderline);
ds.setColor(ThemeUtil.getThemedColor(context, linkColor));
ds.setColor(ThemeUtil.getThemedColor(context, linkColorAttr));
}
}, start, start + clickable.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
@ -238,7 +237,7 @@ public final class SpanUtil {
return clickSubstring(fullString,
substring,
clickListener,
ContextCompat.getColor(context, R.color.signal_accent_primary));
ThemeUtil.getThemedColor(context, R.attr.signal_accent_primary));
}
public static CharSequence clickSubstring(@NonNull CharSequence fullString,

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/signal_accent_primary" android:state_checked="true" android:state_enabled="true" />
<item android:color="?attr/signal_accent_primary" android:state_checked="true" android:state_enabled="true" />
<item android:color="?attr/signal_background_secondary" android:state_checked="false" android:state_enabled="false" />
<item android:color="@color/signal_divider_minor" />
</selector>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/signal_button_primary_text" android:state_checked="true" android:state_enabled="true" />
<item android:color="?attr/signal_button_primary_text" android:state_checked="true" android:state_enabled="true" />
<item android:color="@color/signal_text_hint"/>
</selector>

View file

@ -17,7 +17,7 @@
</ripple>
</item>
<item>
<ripple android:color="@color/signal_button_secondary">
<ripple android:color="?attr/signal_button_secondary">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="#000000" />

View file

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/core_ultramarine">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="?colorAccent" />
</shape>
</item>
<item android:id="@android:id/background">
<shape android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="?colorAccent" />
</shape>
</item>
</ripple>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/signal_button_secondary">
android:color="?attr/signal_button_secondary">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="#000000" />

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/signal_button_primary_ripple">
android:color="?attr/signal_button_primary_ripple">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@color/black" />

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/signal_button_primary_ripple">
android:color="?attr/signal_button_primary_ripple">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@color/black" />

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/signal_button_primary_ripple">
android:color="?attr/signal_button_primary_ripple">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@color/black" />

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple
xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/signal_button_primary_ripple">
android:color="?attr/signal_button_primary_ripple">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="@color/black" />

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/signal_accent_primary" />
<solid android:color="?attr/signal_accent_primary" />
<corners android:radius="18dp" />
</shape>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?attr/colorSurfaceContainerHighest" />
<solid android:color="?attr/navbar_active_indicator_color" />
<corners android:radius="18dp" />
</shape>

View file

@ -2,12 +2,12 @@
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape android:shape="oval">
<solid android:color="@color/signal_button_secondary_text" />
<solid android:color="?attr/signal_button_secondary_text" />
</shape>
</item>
<item>
<shape android:shape="oval">
<solid android:color="@color/signal_button_secondary" />
<solid android:color="?attr/signal_button_secondary" />
</shape>
</item>
</selector>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?attr/colorTertiaryContainer" />
<solid android:color="?attr/extended_action_button_container_color" />
<corners android:radius="18dp" />
</shape>

View file

@ -7,7 +7,7 @@
<corners android:radius="4dp" />
<stroke
android:color="@color/signal_accent_primary"
android:color="?attr/signal_accent_primary"
android:width="2dp" />
</shape>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/signal_button_secondary_stroke" />
<solid android:color="?attr/signal_button_secondary_stroke" />
<corners android:radius="18dp" />
</shape>

View file

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="@color/core_white"/>
<corners android:radius="8dp"/>
</shape>

View file

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"
android:drawable="@drawable/primary_action_button_background"
android:insetTop="6dp"
android:insetBottom="6dp" />

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="?attr/recipient_bottom_sheet_button_strip_background_color" />
<solid android:color="?attr/extended_action_button_container_color" />
<corners android:radius="18dp" />
</shape>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/signal_button_secondary" />
<solid android:color="?attr/signal_button_secondary" />
<stroke android:color="@color/signal_inverse_transparent_20" android:width="1dp" />
<corners android:radius="10dp" />
</shape>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid android:color="?attr/colorSurfaceContainerHigh"/>
<solid android:color="?attr/context_menu_container_color"/>
<corners android:radius="18dp"/>
</shape>

View file

@ -5,7 +5,7 @@
<item android:drawable="@drawable/icon_button_squircle" />
<item>
<shape android:shape="rectangle">
<solid android:color="@color/signal_colorTertiaryContainer_12" />
<solid android:color="@color/signal_inverse_transparent_10" />
<corners android:radius="18dp" />
</shape>
</item>

View file

@ -4,5 +4,5 @@
android:shape="ring"
android:thickness="4dp"
android:useLevel="false">
<solid android:color="@color/signal_accent_primary" />
<solid android:color="?attr/signal_accent_primary" />
</shape>

View file

@ -4,6 +4,6 @@
android:shape="rectangle">
<corners android:radius="@dimen/signal_context_menu_corner_radius" />
<solid android:color="?attr/colorSurfaceContainerHighest" />
<solid android:color="?attr/context_menu_container_color" />
</shape>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/signal_button_secondary_stroke" />
<solid android:color="?attr/signal_button_secondary_stroke" />
<corners android:radius="10dp" />
</shape>

View file

@ -3,6 +3,6 @@
<gradient
android:type="linear"
android:angle="135"
android:startColor="@color/signal_accent_primary"
android:startColor="?attr/signal_accent_primary"
android:endColor="@color/signal_accent_green" />
</shape>

View file

@ -253,7 +253,7 @@
android:text="@string/WebRtcCallView__start_call"
android:textAllCaps="false"
android:textColor="@color/core_green_text_button"
app:backgroundTint="@color/signal_light_colorPrimary"
app:backgroundTint="?attr/colorPrimaryInverse"
app:cornerRadius="28dp" />
</LinearLayout>

View file

@ -68,7 +68,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/transfer_top_padding"
android:indeterminate="true"
app:indicatorColor="@color/signal_accent_primary"
app:indicatorColor="?attr/signal_accent_primary"
app:indicatorSize="48dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View file

@ -117,11 +117,12 @@
android:layout_marginEnd="4dp"
android:contentDescription="@string/AvatarPickerFragment__clear_avatar"
android:visibility="gone"
app:backgroundTint="?attr/signal_background_primary"
app:backgroundTint="?attr/colorSecondaryContainer"
app:fabSize="mini"
app:layout_constraintEnd_toEndOf="@id/avatar_picker_item_image"
app:layout_constraintTop_toTopOf="@id/avatar_picker_item_image"
app:srcCompat="@drawable/ic_x_20"
app:tint="?attr/colorOnSecondaryContainer"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -16,7 +16,7 @@
android:cropToPadding="true"
android:padding="6dp"
android:src="@drawable/circle_tintable"
tools:tint="@color/signal_accent_primary" />
tools:tint="?attr/signal_accent_primary" />
<TextView
android:id="@+id/auto"

View file

@ -100,7 +100,7 @@
android:paddingTop="7dp"
android:paddingEnd="12dp"
android:paddingBottom="7dp"
tools:backgroundTint="@color/signal_accent_primary">
tools:backgroundTint="?attr/signal_accent_primary">
<TextView
android:id="@+id/bubble_2_text"
@ -182,7 +182,7 @@
android:paddingEnd="12dp"
android:paddingBottom="7dp"
android:textColor="@color/core_white"
tools:backgroundTint="@color/signal_accent_primary">
tools:backgroundTint="?attr/signal_accent_primary">
<TextView
android:id="@+id/bubble_4_text"

View file

@ -155,7 +155,7 @@
android:paddingEnd="6dp"
android:paddingBottom="6dp"
android:text="@string/WallpaperCropActivity__blur_photo"
android:textColor="@color/signal_button_primary"
android:textColor="?attr/signal_button_primary"
app:layout_constraintBottom_toTopOf="@+id/preview_guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View file

@ -167,7 +167,7 @@
android:layout_marginEnd="8dp"
android:background="@drawable/circle_tintable"
android:padding="2dp"
app:backgroundTint="@color/signal_accent_primary"
app:backgroundTint="?attr/signal_accent_primary"
app:layout_constraintBottom_toBottomOf="@id/chat_wallpaper_preview_bottom_bar"
app:layout_constraintEnd_toEndOf="@id/chat_wallpaper_preview_bottom_bar"
app:layout_constraintStart_toEndOf="@id/chat_wallpaper_preview_bottom_bar_input"

View file

@ -23,7 +23,7 @@
android:layout_height="40dp"
android:layout_marginVertical="12dp"
android:layout_marginStart="@dimen/gutter"
android:background="?attr/colorSurfaceVariant"
android:background="?attr/filled_tonal_icon_button_container_color"
android:importantForAccessibility="no"
app:contentPadding="8dp"
app:layout_constraintBottom_toBottomOf="parent"
@ -31,7 +31,7 @@
app:layout_constraintTop_toBottomOf="@id/contact_header"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Signal.Circle"
app:srcCompat="@drawable/symbol_search_24"
app:tint="?attr/colorOnSecondaryContainer"
app:tint="?attr/filled_tonal_icon_button_icon_color"
tools:ignore="UnusedAttribute" />
<androidx.appcompat.widget.AppCompatCheckBox

View file

@ -14,7 +14,7 @@
android:id="@+id/invite_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="?attr/colorSurfaceContainer"
android:background="?attr/filled_tonal_icon_button_container_color"
android:importantForAccessibility="no"
app:contentPadding="8dp"
app:layout_constraintBottom_toBottomOf="parent"
@ -22,7 +22,7 @@
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Signal.Circle"
app:srcCompat="@drawable/symbol_number_24"
app:tint="?attr/colorOnSecondaryContainer" />
app:tint="?attr/filled_tonal_icon_button_icon_color" />
<TextView
android:id="@+id/invite_text"

View file

@ -14,7 +14,7 @@
android:id="@+id/invite_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="?attr/colorSurfaceContainer"
android:background="?attr/filled_tonal_icon_button_container_color"
android:importantForAccessibility="no"
app:srcCompat="@drawable/symbol_at_24"
app:contentPadding="8dp"
@ -22,7 +22,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Signal.Circle"
app:tint="?attr/colorOnSecondaryContainer" />
app:tint="?attr/filled_tonal_icon_button_icon_color" />
<TextView
android:id="@+id/invite_text"

View file

@ -14,7 +14,7 @@
android:id="@+id/image"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="?attr/colorSurfaceContainer"
android:background="?attr/filled_tonal_icon_button_container_color"
android:importantForAccessibility="no"
android:scaleType="centerInside"
app:layout_constraintBottom_toBottomOf="parent"
@ -22,7 +22,7 @@
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Signal.Circle"
app:srcCompat="@drawable/symbol_person_circle_24"
app:tint="?attr/colorOnSurface" />
app:tint="?attr/filled_tonal_icon_button_icon_color" />
<TextView
android:id="@+id/title"

View file

@ -14,11 +14,11 @@
android:id="@+id/invite_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="?attr/colorSurfaceContainer"
android:background="?attr/filled_tonal_icon_button_container_color"
android:importantForAccessibility="no"
android:scaleType="centerInside"
android:src="@drawable/symbol_invite_24"
app:tint="?attr/colorOnSurface"
app:tint="?attr/filled_tonal_icon_button_icon_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"

View file

@ -14,7 +14,7 @@
android:id="@+id/invite_image"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="?attr/colorSurfaceContainer"
android:background="?attr/filled_tonal_icon_button_container_color"
android:importantForAccessibility="no"
app:srcCompat="@drawable/symbol_group_24"
app:contentPadding="8dp"
@ -22,7 +22,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Signal.Circle"
app:tint="?attr/colorOnSecondaryContainer" />
app:tint="?attr/filled_tonal_icon_button_icon_color" />
<TextView
android:id="@+id/invite_text"

View file

@ -14,7 +14,7 @@
android:id="@+id/image"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="?attr/colorSurfaceContainer"
android:background="?attr/filled_tonal_icon_button_container_color"
android:importantForAccessibility="no"
android:scaleType="centerInside"
app:layout_constraintBottom_toBottomOf="parent"
@ -22,7 +22,7 @@
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Signal.Circle"
app:srcCompat="@drawable/symbol_refresh_24"
app:tint="?attr/colorOnSurface" />
app:tint="?attr/filled_tonal_icon_button_icon_color" />
<TextView
android:id="@+id/title"

View file

@ -12,7 +12,7 @@
android:id="@+id/image"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@color/signal_button_secondary_ripple"
android:background="?attr/signal_button_secondary_ripple"
android:importantForAccessibility="no"
android:scaleType="centerInside"
app:layout_constraintBottom_toBottomOf="parent"

View file

@ -123,7 +123,7 @@
android:theme="@style/Widget.Material3.FloatingActionButton.Secondary"
android:transitionName="camera_fab"
android:visibility="gone"
app:backgroundTint="?attr/colorSurfaceContainerHigh"
app:backgroundTint="?attr/colorSurfaceContainer"
app:elevation="3dp"
app:srcCompat="@drawable/symbol_camera_24"
app:tint="?attr/colorOnSurface"

View file

@ -4,7 +4,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorSurfaceContainer"
android:background="?attr/navbar_container_color"
android:elevation="3dp"
android:minHeight="80dp">
<View
@ -115,7 +116,7 @@
android:layout_marginTop="4dp"
android:text="@string/ConversationListTabs__chats"
android:textAppearance="@style/TextAppearance.Signal.Body2"
android:textColor="?attr/colorOnSecondaryContainer"
android:textColor="?attr/colorOnSurface"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/chats_tab_icon"
app:layout_constraintStart_toStartOf="@id/chats_tab_icon"
@ -141,7 +142,7 @@
android:layout_marginTop="4dp"
android:text="@string/ConversationListTabs__calls"
android:textAppearance="@style/TextAppearance.Signal.Body2"
android:textColor="?attr/colorOnSecondaryContainer"
android:textColor="?attr/colorOnSurface"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/calls_tab_icon"
app:layout_constraintStart_toStartOf="@id/calls_tab_icon"
@ -167,7 +168,7 @@
android:layout_marginTop="4dp"
android:text="@string/ConversationListTabs__stories"
android:textAppearance="@style/TextAppearance.Signal.Body2"
android:textColor="?attr/colorOnSecondaryContainer"
android:textColor="?attr/colorOnSurface"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/stories_tab_icon"
app:layout_constraintStart_toStartOf="@id/stories_tab_icon"

View file

@ -4,7 +4,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorSurfaceContainer"
android:background="?attr/navbar_container_color"
android:elevation="3dp"
android:minHeight="48dp">
<View
@ -114,7 +115,7 @@
android:layout_marginTop="4dp"
android:text="@string/ConversationListTabs__chats"
android:textAppearance="@style/TextAppearance.Signal.Body2"
android:textColor="?attr/colorOnSecondaryContainer"
android:textColor="?attr/colorOnSurface"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/chats_tab_icon"
@ -141,7 +142,7 @@
android:layout_marginTop="4dp"
android:text="@string/ConversationListTabs__calls"
android:textAppearance="@style/TextAppearance.Signal.Body2"
android:textColor="?attr/colorOnSecondaryContainer"
android:textColor="?attr/colorOnSurface"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/calls_tab_icon"
@ -168,7 +169,7 @@
android:layout_marginTop="4dp"
android:text="@string/ConversationListTabs__stories"
android:textAppearance="@style/TextAppearance.Signal.Body2"
android:textColor="?attr/colorOnSecondaryContainer"
android:textColor="?attr/colorOnSurface"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/stories_tab_icon"

View file

@ -235,19 +235,16 @@
android:textColor="?attr/signal_text_secondary" />
</LinearLayout>
<androidx.appcompat.widget.AppCompatButton
<com.google.android.material.button.MaterialButton
android:id="@+id/fragment_backup_toggle"
style="@style/Signal.Widget.Button.Medium.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:layout_marginBottom="20dp"
android:background="@drawable/primary_action_button_background_36dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:text="@string/BackupsPreferenceFragment__turn_on"
android:textColor="@color/core_white"
app:backgroundTint="?colorAccent" />
android:textAllCaps="true" />
<View
android:layout_width="match_parent"

View file

@ -13,7 +13,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
app:indicatorColor="@color/signal_accent_primary"
app:indicatorColor="?attr/signal_accent_primary"
app:indicatorSize="48dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View file

@ -11,7 +11,7 @@
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:tint="@color/signal_accent_primary"
android:tint="?attr/signal_accent_primary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
@ -28,7 +28,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintWidth_max="295dp"
app:srcCompat="@drawable/chat_wallpaper_preview_bubble_8"
app:tint="@color/signal_accent_primary" />
app:tint="?attr/signal_accent_primary" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/icon"

View file

@ -26,7 +26,6 @@
app:click_only="true"
app:layout_scrollFlags="scroll|snap"
app:search_hint="@string/KeyboardPagerFragment_search_emoji"
app:search_icon_tint="?attr/signal_icon_tint_tab_unselected"
app:show_always="true" />
</com.google.android.material.appbar.AppBarLayout>

View file

@ -32,7 +32,7 @@
android:textAppearance="@style/TextAppearance.Signal.Body2.Bold"
android:textColor="?attr/signal_text_secondary"
app:drawableStartCompat="@drawable/ic_add_money_20"
app:drawableTint="@color/signal_accent_primary" />
app:drawableTint="?attr/signal_accent_primary" />
</FrameLayout>
<FrameLayout
@ -80,7 +80,7 @@
android:textAppearance="@style/TextAppearance.Signal.Body2.Bold"
android:textColor="?attr/signal_text_secondary"
app:drawableStartCompat="@drawable/ic_send_money_20"
app:drawableTint="@color/signal_accent_primary" />
app:drawableTint="?attr/signal_accent_primary" />
</FrameLayout>

View file

@ -82,7 +82,7 @@
<com.google.android.material.button.MaterialButton
android:id="@+id/free_up_space"
style="@style/Signal.Widget.Button.Large.Tonal"
style="@style/Signal.Widget.Button.Medium.Tonal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"

View file

@ -251,7 +251,7 @@
android:text="@string/WebRtcCallView__start_call"
android:textAllCaps="false"
android:textColor="@color/core_green_text_button"
app:backgroundTint="@color/signal_light_colorPrimary"
app:backgroundTint="?attr/colorPrimaryInverse"
app:cornerRadius="28dp" />
</LinearLayout>

View file

@ -1,79 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Molly.Dynamic.Dark" parent="TextSecure.BaseDarkTheme">
<!-- Material You colors (overrides Theme.Molly.Material3.Dark) -->
<item name="colorPrimaryInverse">@color/dynamic_primary_inverse_dark</item>
<item name="colorPrimary">@color/dynamic_primary_dark</item>
<item name="colorPrimaryDark">@color/dynamic_primary_dark</item>
<item name="colorOnPrimary">@color/dynamic_on_primary_dark</item>
<item name="colorPrimaryContainer">@color/dynamic_primary_container_dark</item>
<item name="colorOnPrimaryContainer">@color/dynamic_on_primary_container_dark</item>
<item name="colorPrimaryFixed">@color/molly_primary_fixed</item>
<item name="colorPrimaryFixedDim">@color/molly_primary_fixed_dim</item>
<item name="colorOnPrimaryFixed">@color/molly_on_primary_fixed</item>
<item name="colorSecondary">@color/dynamic_secondary_dark</item>
<item name="colorOnSecondary">@color/dynamic_on_secondary_dark</item>
<item name="colorSecondaryContainer">@color/dynamic_secondary_container_dark</item>
<item name="colorOnSecondaryContainer">@color/dynamic_on_secondary_container_dark</item>
<item name="colorSecondaryFixed">@color/molly_secondary_fixed</item>
<item name="colorSecondaryFixedDim">@color/molly_secondary_fixed_dim</item>
<item name="colorOnSecondaryFixed">@color/molly_on_secondary_fixed</item>
<item name="colorSurfaceInverse">@color/dynamic_surface_inverse_dark</item>
<item name="colorSurfaceVariant">@color/dynamic_surface_variant_dark</item>
<item name="colorSurface">@color/dynamic_surface_dark</item>
<item name="colorSurfaceDim">@color/dynamic_surface_dim_dark</item>
<item name="colorSurfaceContainerHighest">@color/dynamic_surface_container_highest_dark</item>
<item name="colorSurfaceContainerHigh">@color/dynamic_surface_container_high_dark</item>
<item name="colorSurfaceContainer">@color/dynamic_surface_container_dark</item>
<item name="colorSurfaceContainerLow">@color/dynamic_surface_container_low_dark</item>
<item name="colorSurfaceBright">@color/dynamic_surface_bright_dark</item>
<item name="colorSurfaceContainerLowest">@color/dynamic_surface_container_lowest_dark</item>
<item name="colorOnSurfaceInverse">@color/dynamic_on_surface_inverse_dark</item>
<item name="colorOnSurface">@color/dynamic_on_surface_dark</item>
<item name="colorOnBackground">@color/dynamic_on_background_dark</item>
<item name="colorOnSurfaceVariant">@color/dynamic_on_surface_variant_dark</item>
<item name="colorOutline">@color/dynamic_outline_dark</item>
<item name="colorOutlineVariant">@color/dynamic_outline_variant_dark</item>
<item name="colorError">@color/dynamic_error_dark</item>
<item name="colorOnError">@color/dynamic_on_error_dark</item>
<item name="colorErrorContainer">@color/dynamic_error_container_dark</item>
<item name="colorOnErrorContainer">@color/dynamic_on_error_container_dark</item>
<item name="colorTertiary">@color/dynamic_tertiary_dark</item>
<item name="colorOnTertiary">@color/dynamic_on_tertiary_dark</item>
<item name="colorTertiaryContainer">@color/dynamic_tertiary_container_dark</item>
<item name="colorOnTertiaryContainer">@color/dynamic_on_tertiary_container_dark</item>
<item name="colorTertiaryFixed">@color/molly_tertiary_fixed</item>
<item name="colorTertiaryFixedDim">@color/molly_tertiary_fixed_dim</item>
<item name="colorOnTertiaryFixed">@color/molly_on_tertiary_fixed</item>
<item name="colorOnTertiaryFixedVariant">@color/molly_on_tertiary_fixed_variant</item>
<item name="colorAccent">@color/dynamic_primary_dark</item>
<item name="colorControlActivated">@color/dynamic_primary_dark</item>
<!-- Enable Material You dynamic colors in Compose -->
<item name="dynamic_colors">true</item>
<item name="android:windowLightNavigationBar">true</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:navigationBarColor">@color/dynamic_surface_dark</item>
<item name="android:statusBarColor">@color/dynamic_surface_dark</item>
</style>
<style name="Theme.Molly.Dynamic.NoActionBar.Dark" parent="Theme.Molly.Dynamic.Dark">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="android:windowLightNavigationBar">false</item>
<item name="android:windowLightStatusBar">false</item>
</style>
<style name="Theme.Molly.Dynamic.ConversationSettings.Dark" parent="Theme.Molly.Dynamic.NoActionBar.Dark">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/transparent_black_20</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowSharedElementEnterTransition">@transition/transparent_window_wipe_transition</item>
</style>
</resources>

View file

@ -6,7 +6,7 @@
<color name="conversation_toolbar_color_wallpaper">@color/signal_colorTransparentInverse5</color>
<color name="conversation_toolbar_color_wallpaper_scrolled">@color/signal_colorTransparentInverse5</color>
<color name="signal_accent_primary">@color/core_ultramarine_light</color>
<!-- <color name="signal_accent_primary">@color/core_ultramarine_light</color> -->
<color name="signal_inverse_primary">@color/core_white</color>
<color name="pulse_incoming_message">@color/transparent_white_15</color>
@ -36,16 +36,16 @@
<!-- <color name="signal_icon_tint_tab_selected">?attr/colorOnSurface</color> -->
<!-- <color name="signal_icon_tint_tab_unselected">?attr/colorOnSurfaceVariant</color> -->
<color name="signal_button_primary">@color/core_ultramarine_light</color>
<color name="signal_button_primary_ripple">@color/transparent_black_15</color>
<color name="signal_button_primary_text">@color/core_white</color>
<color name="signal_button_primary_text_disabled">@color/transparent_white_20</color>
<!-- <color name="signal_button_primary">@color/core_ultramarine_light</color> -->
<!-- <color name="signal_button_primary_ripple">@color/transparent_black_15</color> -->
<!-- <color name="signal_button_primary_text">@color/core_white</color> -->
<!-- <color name="signal_button_primary_text_disabled">@color/transparent_white_20</color> -->
<color name="signal_button_secondary">@color/core_grey_75</color>
<color name="signal_button_secondary_ripple">@color/core_grey_80</color>
<color name="signal_button_secondary_text">@color/core_ultramarine_light</color>
<color name="signal_button_secondary_text_disabled">@color/core_grey_45</color>
<color name="signal_button_secondary_stroke">@color/core_grey_45</color>
<!-- <color name="signal_button_secondary">@color/core_grey_75</color> -->
<!-- <color name="signal_button_secondary_ripple">@color/core_grey_80</color> -->
<!-- <color name="signal_button_secondary_text">@color/core_ultramarine_light</color> -->
<!-- <color name="signal_button_secondary_text_disabled">@color/core_grey_45</color> -->
<!-- <color name="signal_button_secondary_stroke">@color/core_grey_45</color> -->
<color name="signal_divider_minor">@color/core_grey_75</color>
<color name="signal_divider_major">@color/core_grey_60</color>
@ -137,8 +137,6 @@
<color name="reactions_screen_light_shade_color">#df5e5e5e</color>
<color name="reactions_status_bar_shade">#191919</color>
<!-- <color name="recipient_bottom_sheet_button_strip_background_color">?attr/colorSecondaryContainer</color> -->
<color name="shared_contact_details_titlebar">@color/grey_900</color>
<color name="shared_contact_item_button_color">@color/core_grey_85</color>

View file

@ -2,6 +2,9 @@
<resources>
<!-- Core colors for Material3 -->
<!-- MOLLY: Colors moved to themes.xml as theme attributes -->
<color name="signal_neutralSurface">@color/signal_dark_neutralSurface</color>
<color name="signal_colorOnCustom">@color/signal_dark_colorOnCustom</color>
<color name="signal_colorOnCustomVariant">@color/signal_dark_colorOnCustomVariant</color>
<color name="signal_colorTransparent1">@color/signal_dark_colorTransparent1</color>
<color name="signal_colorTransparent2">@color/signal_dark_colorTransparent2</color>

View file

@ -50,25 +50,134 @@
<item name="colorAccent">@color/dynamic_primary_light</item>
<item name="colorControlActivated">@color/dynamic_primary_light</item>
<!-- Enable Material You dynamic colors in Compose -->
<!-- Material You specs (overrides TextSecure.BaseLightTheme) -->
<item name="dynamic_colors">true</item>
<item name="signal_accent_primary">@color/dynamic_primary_light</item>
<item name="signal_button_primary">@color/dynamic_primary_light</item>
<item name="signal_button_secondary_text">@color/dynamic_primary_light</item>
<item name="reactions_overlay_any_emoji_background">@color/dynamic_outline_variant_light</item>
<item name="reactions_overlay_any_emoji_foreground">@color/dynamic_on_surface_light</item>
<item name="message_request_bar_background_normal">@color/dynamic_surface_container_light</item>
<item name="message_request_bar_acceptForeground_normal">@color/dynamic_on_secondary_container_light</item>
<item name="switchThemeOverlay">@style/ThemeOverlay.MaterialSwitch.Dynamic</item>
<item name="extended_action_button_container_color">@color/dynamic_secondary_container_light</item>
<item name="extended_action_button_icon_color">@color/dynamic_on_secondary_container_light</item>
<item name="filled_tonal_icon_button_container_color">@color/dynamic_surface_container_highest_light</item>
<item name="filled_tonal_icon_button_icon_color">@color/dynamic_on_surface_variant_light</item>
<item name="context_menu_container_color">@color/dynamic_surface_container_light</item>
<item name="navbar_active_indicator_color">@color/dynamic_secondary_container_light</item>
<item name="navbar_container_color">@color/dynamic_surface_container_high_light</item>
<item name="android:windowLightNavigationBar">true</item>
<item name="android:windowLightStatusBar">true</item>
<!-- System Bars -->
<item name="android:navigationBarColor">@color/dynamic_surface_light</item>
<item name="android:statusBarColor">@color/dynamic_surface_light</item>
</style>
<style name="Theme.Molly.Dynamic.NoActionBar.Light" parent="Theme.Molly.Dynamic.Light">
<style name="Theme.Molly.Dynamic.Dark" parent="TextSecure.BaseDarkTheme">
<!-- Material You colors (overrides Theme.Molly.Material3.Dark) -->
<item name="colorPrimaryInverse">@color/dynamic_primary_inverse_dark</item>
<item name="colorPrimary">@color/dynamic_primary_dark</item>
<item name="colorPrimaryDark">@color/dynamic_primary_dark</item>
<item name="colorOnPrimary">@color/dynamic_on_primary_dark</item>
<item name="colorPrimaryContainer">@color/dynamic_primary_container_dark</item>
<item name="colorOnPrimaryContainer">@color/dynamic_on_primary_container_dark</item>
<item name="colorPrimaryFixed">@color/molly_primary_fixed</item>
<item name="colorPrimaryFixedDim">@color/molly_primary_fixed_dim</item>
<item name="colorOnPrimaryFixed">@color/molly_on_primary_fixed</item>
<item name="colorSecondary">@color/dynamic_secondary_dark</item>
<item name="colorOnSecondary">@color/dynamic_on_secondary_dark</item>
<item name="colorSecondaryContainer">@color/dynamic_secondary_container_dark</item>
<item name="colorOnSecondaryContainer">@color/dynamic_on_secondary_container_dark</item>
<item name="colorSecondaryFixed">@color/molly_secondary_fixed</item>
<item name="colorSecondaryFixedDim">@color/molly_secondary_fixed_dim</item>
<item name="colorOnSecondaryFixed">@color/molly_on_secondary_fixed</item>
<item name="colorSurfaceInverse">@color/dynamic_surface_inverse_dark</item>
<item name="colorSurfaceVariant">@color/dynamic_surface_variant_dark</item>
<item name="colorSurface">@color/dynamic_surface_dark</item>
<item name="colorSurfaceDim">@color/dynamic_surface_dim_dark</item>
<item name="colorSurfaceContainerHighest">@color/dynamic_surface_container_highest_dark</item>
<item name="colorSurfaceContainerHigh">@color/dynamic_surface_container_high_dark</item>
<item name="colorSurfaceContainer">@color/dynamic_surface_container_dark</item>
<item name="colorSurfaceContainerLow">@color/dynamic_surface_container_low_dark</item>
<item name="colorSurfaceBright">@color/dynamic_surface_bright_dark</item>
<item name="colorSurfaceContainerLowest">@color/dynamic_surface_container_lowest_dark</item>
<item name="colorOnSurfaceInverse">@color/dynamic_on_surface_inverse_dark</item>
<item name="colorOnSurface">@color/dynamic_on_surface_dark</item>
<item name="colorOnBackground">@color/dynamic_on_background_dark</item>
<item name="colorOnSurfaceVariant">@color/dynamic_on_surface_variant_dark</item>
<item name="colorOutline">@color/dynamic_outline_dark</item>
<item name="colorOutlineVariant">@color/dynamic_outline_variant_dark</item>
<item name="colorError">@color/dynamic_error_dark</item>
<item name="colorOnError">@color/dynamic_on_error_dark</item>
<item name="colorErrorContainer">@color/dynamic_error_container_dark</item>
<item name="colorOnErrorContainer">@color/dynamic_on_error_container_dark</item>
<item name="colorTertiary">@color/dynamic_tertiary_dark</item>
<item name="colorOnTertiary">@color/dynamic_on_tertiary_dark</item>
<item name="colorTertiaryContainer">@color/dynamic_tertiary_container_dark</item>
<item name="colorOnTertiaryContainer">@color/dynamic_on_tertiary_container_dark</item>
<item name="colorTertiaryFixed">@color/molly_tertiary_fixed</item>
<item name="colorTertiaryFixedDim">@color/molly_tertiary_fixed_dim</item>
<item name="colorOnTertiaryFixed">@color/molly_on_tertiary_fixed</item>
<item name="colorOnTertiaryFixedVariant">@color/molly_on_tertiary_fixed_variant</item>
<item name="colorAccent">@color/dynamic_primary_dark</item>
<item name="colorControlActivated">@color/dynamic_primary_dark</item>
<!-- Material You specs (overrides TextSecure.BaseDarkTheme) -->
<item name="dynamic_colors">true</item>
<item name="signal_accent_primary">@color/dynamic_primary_dark</item>
<item name="signal_button_primary">@color/dynamic_primary_dark</item>
<item name="signal_button_secondary_text">@color/dynamic_primary_dark</item>
<item name="reactions_overlay_any_emoji_background">@color/dynamic_outline_variant_dark</item>
<item name="reactions_overlay_any_emoji_foreground">@color/dynamic_on_surface_dark</item>
<item name="message_request_bar_background_normal">@color/dynamic_surface_container_dark</item>
<item name="message_request_bar_acceptForeground_normal">@color/dynamic_on_secondary_container_dark</item>
<item name="switchThemeOverlay">@style/ThemeOverlay.MaterialSwitch.Dynamic</item>
<item name="extended_action_button_container_color">@color/dynamic_secondary_container_dark</item>
<item name="extended_action_button_icon_color">@color/dynamic_on_secondary_container_dark</item>
<item name="filled_tonal_icon_button_container_color">@color/dynamic_surface_container_highest_dark</item>
<item name="filled_tonal_icon_button_icon_color">@color/dynamic_on_surface_variant_dark</item>
<item name="context_menu_container_color">@color/dynamic_surface_container_high_dark</item>
<item name="navbar_active_indicator_color">@color/dynamic_secondary_container_dark</item>
<item name="navbar_container_color">@color/dynamic_surface_container_high_dark</item>
<!-- System Bars -->
<item name="android:navigationBarColor">@color/dynamic_surface_dark</item>
<item name="android:statusBarColor">@color/dynamic_surface_dark</item>
</style>
<style name="Theme.Molly.Dynamic.BaseNoActionBar.Light" parent="Theme.Molly.Dynamic.Light">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.Material3.Light</item>
</style>
<style name="Theme.Molly.Dynamic.BaseNoActionBar.Dark" parent="Theme.Molly.Dynamic.Dark">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.Material3.Dark</item>
</style>
<style name="Theme.Molly.Dynamic.NoActionBar.Light" parent="Theme.Molly.Dynamic.BaseNoActionBar.Light">
<item name="android:windowLightNavigationBar">true</item>
<item name="android:windowLightStatusBar">true</item>
</style>
<style name="Theme.Molly.Dynamic.NoActionBar.Dark" parent="Theme.Molly.Dynamic.BaseNoActionBar.Dark">
<item name="android:windowLightNavigationBar">false</item>
<item name="android:windowLightStatusBar">false</item>
</style>
<style name="Theme.Molly.Dynamic.ConversationSettings.Light" parent="Theme.Molly.Dynamic.NoActionBar.Light">
<style name="Theme.Molly.Dynamic.ConversationSettings.Light" parent="Theme.Molly.Dynamic.BaseNoActionBar.Light">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/transparent_black_20</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowSharedElementEnterTransition">@transition/transparent_window_wipe_transition</item>
</style>
<style name="Theme.Molly.Dynamic.ConversationSettings.Dark" parent="Theme.Molly.Dynamic.BaseNoActionBar.Dark">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/transparent_black_20</item>
<item name="android:windowContentOverlay">@null</item>

View file

@ -29,6 +29,7 @@
<!-- From light_colors.xml, dark_colors.xml -->
<attr name="conversation_toolbar_color" format="color" />
<attr name="signal_accent_primary" format="color" />
<attr name="signal_background_primary" format="color" />
<attr name="signal_background_secondary" format="color" />
<attr name="signal_background_dialog" format="color" />
@ -41,6 +42,15 @@
<attr name="signal_icon_tint_action" format="color" />
<attr name="signal_icon_tint_tab_selected" format="color" />
<attr name="signal_icon_tint_tab_unselected" format="color" />
<attr name="signal_button_primary" format="color" />
<attr name="signal_button_primary_ripple" format="color" />
<attr name="signal_button_primary_text" format="color" />
<attr name="signal_button_primary_text_disabled" format="color" />
<attr name="signal_button_secondary" format="color" />
<attr name="signal_button_secondary_ripple" format="color" />
<attr name="signal_button_secondary_text" format="color" />
<attr name="signal_button_secondary_text_disabled" format="color" />
<attr name="signal_button_secondary_stroke" format="color" />
<attr name="conversation_compose_background" format="color" />
<attr name="contact_filter_edit_background" format="color" />
<attr name="reactions_pill_selected_color" format="color" />
@ -57,7 +67,6 @@
<attr name="reactions_pill_text_color" format="color" />
<attr name="reactions_overlay_any_emoji_background" format="color" />
<attr name="reactions_overlay_any_emoji_foreground" format="color" />
<attr name="recipient_bottom_sheet_button_strip_background_color" format="color" />
<attr name="megaphone_body_text_color" format="color" />
<attr name="tooltip_default_color" format="color" />
<attr name="quote_view_background_incoming_wallpaper" format="color" />
@ -88,6 +97,12 @@
<attr name="safety_tip_background" format="color" />
<attr name="safety_tip_image_background" format="color" />
<!-- Apply different colors based on DayNight and Dynamic themes -->
<attr name="switchThemeOverlay" format="reference"/>
<attr name="context_menu_container_color" format="color"/>
<attr name="navbar_active_indicator_color" format="color"/>
<attr name="navbar_container_color" format="color"/>
<declare-styleable name="SegmentedProgressBar">
<attr name="totalSegments" format="integer" />
<attr name="timePerSegment" format="integer" />

View file

@ -52,11 +52,11 @@
<color name="media_preview_bar_background">#90010101</color>
<color name="storage_color_empty">@color/core_grey_50</color>
<color name="storage_color_photos">#ff5951C8</color>
<color name="storage_color_videos">#ff9BCFBD</color>
<color name="storage_color_audio">@color/core_ultramarine</color>
<color name="storage_color_files">#ffA23474</color>
<color name="storage_color_empty">#FFA8A8A8</color>
<color name="storage_color_photos">#FF9B8AF2</color>
<color name="storage_color_videos">#FF68B0A8</color>
<color name="storage_color_audio">#FF5A83EC</color>
<color name="storage_color_files">#FFC7518B</color>
<!-- <color name="conversation_list_archive_background_start">@color/signal_colorPrimary</color> -->
<!-- <color name="conversation_list_archive_background_end">@color/signal_colorPrimary</color> -->

View file

@ -4,7 +4,7 @@
<color name="conversation_toolbar_color_wallpaper">@color/signal_colorTransparent5</color>
<color name="conversation_toolbar_color_wallpaper_scrolled">@color/signal_colorTransparent5</color>
<color name="signal_accent_primary">@color/core_ultramarine</color>
<!-- <color name="signal_accent_primary">@color/core_ultramarine</color> -->
<color name="signal_inverse_primary">@color/core_black</color>
@ -35,16 +35,16 @@
<!-- <color name="signal_icon_tint_tab_selected">?attr/colorOnSurface</color> -->
<!-- <color name="signal_icon_tint_tab_unselected">?attr/colorOnSurfaceVariant</color> -->
<color name="signal_button_primary">@color/core_ultramarine</color>
<color name="signal_button_primary_ripple">@color/transparent_black_15</color>
<color name="signal_button_primary_text">@color/core_white</color>
<color name="signal_button_primary_text_disabled">@color/transparent_white_20</color>
<!-- <color name="signal_button_primary">@color/core_ultramarine</color> -->
<!-- <color name="signal_button_primary_ripple">@color/transparent_black_15</color> -->
<!-- <color name="signal_button_primary_text">@color/core_white</color> -->
<!-- <color name="signal_button_primary_text_disabled">@color/transparent_white_20</color> -->
<color name="signal_button_secondary">@color/core_grey_05</color>
<color name="signal_button_secondary_ripple">@color/core_grey_02</color>
<color name="signal_button_secondary_text">@color/core_ultramarine</color>
<color name="signal_button_secondary_text_disabled">@color/core_grey_25</color>
<color name="signal_button_secondary_stroke">@color/core_grey_15</color>
<!-- <color name="signal_button_secondary">@color/core_grey_05</color> -->
<!-- <color name="signal_button_secondary_ripple">@color/core_grey_02</color> -->
<!-- <color name="signal_button_secondary_text">@color/core_ultramarine</color> -->
<!-- <color name="signal_button_secondary_text_disabled">@color/core_grey_25</color> -->
<!-- <color name="signal_button_secondary_stroke">@color/core_grey_15</color> -->
<color name="signal_divider_minor">@color/core_grey_15</color>
<color name="signal_divider_major">@color/core_grey_25</color>
@ -147,8 +147,6 @@
<!-- <color name="reactions_overlay_any_emoji_background">?attr/colorTertiaryContainer</color> -->
<!-- <color name="reactions_overlay_any_emoji_foreground">?attr/colorOnTertiaryContainer</color> -->
<!-- <color name="recipient_bottom_sheet_button_strip_background_color">?attr/colorSecondaryContainer</color> -->
<color name="shared_contact_details_titlebar">@color/grey_400</color>
<color name="shared_contact_item_button_color">@color/core_grey_02</color>

View file

@ -2,7 +2,7 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Signal.Widget.ImageView.ActionButton" parent="ThemeOverlay.Material3">
<item name="tint">?attr/colorOnTertiaryContainer</item>
<item name="tint">?attr/extended_action_button_icon_color</item>
<item name="android:background">@drawable/selectable_icon_button</item>
<item name="android:layout_width">56dp</item>
<item name="android:layout_height">56dp</item>
@ -59,9 +59,9 @@
<item name="strokeWidth">1.5dp</item>
<item name="cornerRadius">18dp</item>
<item name="android:textColor">@color/signal_button_secondary_text_selector</item>
<item name="strokeColor">@color/signal_button_secondary_stroke</item>
<item name="strokeColor">?attr/signal_button_secondary_stroke</item>
<item name="backgroundTint">@color/transparent</item>
<item name="rippleColor">@color/signal_button_secondary</item>
<item name="rippleColor">?attr/signal_button_secondary</item>
</style>
<style name="Signal.Widget.Button.Small.Secondary" parent="Widget.Material3.Button.UnelevatedButton">
@ -98,13 +98,13 @@
</style>
<style name="ThemeOverlay.Signal.Button.Tonal" parent="ThemeOverlay.Material3.Button">
<item name="colorOnContainer">?attr/colorOnTertiaryContainer</item>
<item name="colorContainer">?attr/colorTertiaryContainer</item>
<item name="colorOnContainer">?attr/extended_action_button_icon_color</item>
<item name="colorContainer">?attr/extended_action_button_container_color</item>
</style>
<style name="ThemeOverlay.Signal.Button.Small" parent="ThemeOverlay.Material3.Button">
<item name="colorOnContainer">?attr/colorOnTertiaryContainer</item>
<item name="colorContainer">?attr/colorTertiaryContainer</item>
<item name="colorOnContainer">?attr/extended_action_button_icon_color</item>
<item name="colorContainer">?attr/extended_action_button_container_color</item>
</style>
<style name="ThemeOverlay.Signal.Button.Surface2" parent="ThemeOverlay.Material3.Button">
@ -119,7 +119,7 @@
<item name="android:textColor">@color/signal_button_secondary_text_selector</item>
<item name="iconGravity">textEnd</item>
<item name="iconTint">@color/signal_button_secondary_text_selector</item>
<item name="rippleColor">@color/signal_button_secondary_ripple</item>
<item name="rippleColor">?attr/signal_button_secondary_ripple</item>
</style>
<style name="Signal.Widget.Button.Large.Secondary" parent="@style/Signal.Widget.Button.Base.Secondary">
@ -211,7 +211,7 @@
<style name="Signal.DayNight.TitleTextStyle" parent="@style/TextSecure.TitleTextStyle" />
<style name="Signal.DayNight.Dialog.FullScreen" parent="Signal.DayNight">
<style name="Signal.DayNight.Dialog.FullScreen" parent="@style/ThemeOverlay.Material3">
<item name="android:windowAnimationStyle">@style/TextSecure.Animation.FullScreenDialog</item>
</style>
@ -278,7 +278,7 @@
<style name="Signal.ThemeOverlay.Calendar" parent="@style/ThemeOverlay.Material3.MaterialCalendar">
<item name="colorSurface">?attr/signal_background_dialog</item>
<item name="borderlessButtonStyle">@style/Signal.Widget.Button.Dialog</item>
<item name="colorAccent">@color/signal_accent_primary</item>
<item name="colorAccent">?attr/signal_accent_primary</item>
<item name="materialCalendarHeaderTitle">@style/MaterialCalendar.Signal.HeaderTitle</item>
<item name="materialCalendarHeaderSelection">@style/MaterialCalendar.Signal.HeaderSelection</item>
<item name="buttonBarPositiveButtonStyle">@style/Signal.Widget.Button.Dialog</item>
@ -298,15 +298,9 @@
<item name="shapeAppearance">@style/Signal.ShapeOverlay.Rounded</item>
</style>
<style name="Signal.Widget.TimePicker.ImageButton" parent="Widget.MaterialComponents.TimePicker.ImageButton">
<item name="iconTint">?attr/signal_icon_tint_primary</item>
</style>
<style name="Signal.ThemeOverlay.TimePicker" parent="@style/ThemeOverlay.MaterialComponents.TimePicker">
<item name="textAppearanceOverline">@style/TextAppearance.Signal.Body2</item>
<item name="colorSurface">?attr/signal_background_dialog</item>
<item name="borderlessButtonStyle">@style/Signal.Widget.Button.Dialog</item>
<item name="colorPrimary">@color/signal_accent_primary</item>
</style>
<style name="ThemeOverlay.Signal.CircularProgressIndicator.Primary" parent="ThemeOverlay.Material3">
@ -336,16 +330,18 @@
</style>
<style name="Widget.Signal.CompoundButton.MaterialSwitch" parent="Widget.Material3.CompoundButton.MaterialSwitch">
<item name="materialThemeOverlay">@style/ThemeOverlay.Signal.MaterialSwitch</item>
<item name="materialThemeOverlay">?attr/switchThemeOverlay</item>
</style>
<style name="Signal.ThemeOverlay.TextInputLayout" parent="ThemeOverlay.Material3">
</style>
<style name="ThemeOverlay.Signal.MaterialSwitch" parent="ThemeOverlay.Material3">
<style name="ThemeOverlay.MaterialSwitch.DayNight" parent="ThemeOverlay.Material3">
<item name="colorSurface">?attr/colorSurfaceContainer</item>
<item name="colorOnSurfaceVariant">?attr/colorPrimary</item>
<item name="colorOutline">?attr/colorOutlineVariant</item>
</style>
<style name="ThemeOverlay.MaterialSwitch.Dynamic" parent="ThemeOverlay.Material3.DynamicColors.DayNight" />
</resources>

View file

@ -15,29 +15,18 @@
<!-- MOLLY: Theme.Signal.DayNight.NoActionBar now in light_themes.xml -->
<style name="TextSecure.LightNoActionBar" parent="TextSecure.BaseLightNoActionBar">
<item name="android:statusBarColor">@color/molly_surface_light</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:navigationBarColor">@color/molly_surface_light</item>
<item name="android:windowLightNavigationBar">true</item>
<style name="TextSecure.LightNoActionBar" parent="@style/TextSecure.BaseLightNoActionBar">
<!-- leave empty to allow overriding -->
</style>
<style name="TextSecure.BaseLightNoActionBar" parent="@style/TextSecure.LightTheme">
<style name="TextSecure.BaseLightNoActionBar" parent="@style/TextSecure.BaseLightTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="theme_type">light</item>
<item name="colorPrimary">@color/core_ultramarine</item>
<item name="colorPrimaryDark">@color/core_ultramarine</item>
<item name="colorAccent">@color/core_ultramarine</item>
</style>
<style name="TextSecure.DarkNoActionBar" parent="TextSecure.BaseDarkNoActionBar">
<item name="android:statusBarColor">@color/molly_surface_dark</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:navigationBarColor">@color/molly_surface_dark</item>
<item name="android:windowLightNavigationBar">false</item>
<style name="TextSecure.DarkNoActionBar" parent="@style/TextSecure.BaseDarkNoActionBar">
<!-- leave empty to allow overriding -->
</style>
<style name="TextSecure.DarkNoActionBar.StoryViewer">
@ -48,7 +37,7 @@
</style>
<style name="TextSecure.BaseMediaPreview" parent="@style/TextSecure.BaseDarkNoActionBar">
<item name="android:windowBackground">?attr/colorSurfaceContainer</item>
<item name="android:windowBackground">?attr/colorSurface</item>
<item name="colorPrimaryDark">@color/media_preview_bar_background</item>
<item name="android:textColorSecondary">@color/white</item>
</style>
@ -80,10 +69,6 @@
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="theme_type">dark</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.Material3.Dark</item>
<item name="colorAccent">@color/core_ultramarine_light</item>
</style>
<style name="Signal.Light.NoActionBar.Invite" parent="Base.Signal.Light.NoActionBar.Invite">
@ -240,15 +225,16 @@
</style>
<style name="TextSecure.LightTheme" parent="TextSecure.BaseLightTheme">
<item name="android:windowLightStatusBar">true</item>
<item name="android:statusBarColor">@color/molly_surface_light</item>
<item name="android:navigationBarColor">@color/molly_surface_light</item>
<item name="android:windowLightNavigationBar">true</item>
<!-- Allows for Overrides -->
</style>
<style name="TextSecure.BaseLightTheme" parent="@style/Theme.Molly.Material3.Light">
<item name="theme_type">light</item>
<item name="dynamic_colors">false</item>
<item name="android:navigationBarColor">@color/molly_surface_light</item>
<item name="android:statusBarColor">@color/molly_surface_light</item>
<item name="android:windowLightNavigationBar">true</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:forceDarkAllowed" tools:targetApi="29">false</item>
<item name="colorControlHighlight">@color/transparent_black_10</item>
@ -281,8 +267,8 @@
<item name="android:textColorSecondary">@color/text_color_secondary_light_theme</item>
<item name="android:windowBackground">?attr/colorSurface</item>
<item name="android:windowContentOverlay">@null</item>
<item name="alertDialogTheme">@style/AppCompatAlertDialogStyleLight</item>
<item name="android:alertDialogTheme">@style/AppCompatDialogStyleLight</item>
<item name="alertDialogTheme">@style/ThemeOverlay.Signal.MaterialAlertDialog</item>
<item name="android:alertDialogTheme">@style/ThemeOverlay.Signal.MaterialAlertDialog</item>
<item name="homeAsUpIndicator">@drawable/ic_arrow_left_24</item>
<item name="android:homeAsUpIndicator">@drawable/ic_arrow_left_24</item>
@ -317,6 +303,7 @@
<!-- light_colors.xml -->
<item name="conversation_toolbar_color">?attr/colorSurface</item>
<item name="signal_accent_primary">@color/core_ultramarine</item>
<item name="signal_background_primary">?attr/colorSurface</item>
<item name="signal_background_secondary">?attr/colorSurfaceContainerLow</item>
<item name="signal_background_dialog">?attr/colorSurfaceContainer</item>
@ -329,6 +316,15 @@
<item name="signal_icon_tint_action">@color/core_black</item>
<item name="signal_icon_tint_tab_selected">?attr/colorOnSurface</item>
<item name="signal_icon_tint_tab_unselected">?attr/colorOnSurfaceVariant</item>
<item name="signal_button_primary">@color/core_ultramarine</item>
<item name="signal_button_primary_ripple">@color/transparent_black_15</item>
<item name="signal_button_primary_text">@color/core_white</item>
<item name="signal_button_primary_text_disabled">@color/transparent_white_20</item>
<item name="signal_button_secondary">@color/core_grey_05</item>
<item name="signal_button_secondary_ripple">@color/core_grey_02</item>
<item name="signal_button_secondary_text">@color/core_ultramarine</item>
<item name="signal_button_secondary_text_disabled">@color/core_grey_25</item>
<item name="signal_button_secondary_stroke">@color/core_grey_15</item>
<item name="conversation_compose_background">?attr/colorSurfaceContainerHigh</item>
<item name="contact_filter_edit_background">?attr/colorSurfaceContainerHighest</item>
<item name="reactions_pill_selected_color">?attr/colorSurfaceContainer</item>
@ -345,7 +341,6 @@
<item name="reactions_pill_text_color">?attr/colorOnSurfaceVariant</item>
<item name="reactions_overlay_any_emoji_background">?attr/colorTertiaryContainer</item>
<item name="reactions_overlay_any_emoji_foreground">?attr/colorOnTertiaryContainer</item>
<item name="recipient_bottom_sheet_button_strip_background_color">?attr/colorSecondaryContainer</item>
<item name="megaphone_body_text_color">?attr/colorOnSurfaceVariant</item>
<item name="tooltip_default_color">?attr/colorSecondaryContainer</item>
<item name="quote_view_background_incoming_wallpaper">@color/signal_colorTransparentInverse2</item>
@ -375,18 +370,35 @@
<item name="message_request_bar_acceptForeground_wallpaper">@color/signal_colorNeutralInverse</item> -->
<item name="safety_tip_background">@color/core_white</item>
<item name="safety_tip_image_background">#99F3F0FF</item>
<!-- signal_styles.xml -->
<item name="switchThemeOverlay">@style/ThemeOverlay.MaterialSwitch.DayNight</item>
<item name="extended_action_button_container_color">@color/molly_tertiary_container_light</item>
<item name="extended_action_button_icon_color">@color/molly_on_tertiary_container_light</item>
<!-- contact_selection_*_item.xml -->
<item name="filled_tonal_icon_button_container_color">@color/molly_surface_container_highest_light</item>
<item name="filled_tonal_icon_button_icon_color">@color/molly_on_surface_light</item>
<!-- signal_context_menu_background.xml -->
<item name="context_menu_container_color">@color/molly_surface_container_high_light</item>
<!-- conversation_tab_icon_background.xml, conversation_list_tabs*.xml -->
<item name="navbar_active_indicator_color">@color/molly_secondary_container_light</item>
<item name="navbar_container_color">@color/molly_surface_container_light</item>
</style>
<style name="TextSecure.DarkTheme" parent="TextSecure.BaseDarkTheme">
<item name="android:statusBarColor">@color/molly_surface_dark</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:navigationBarColor">@color/molly_surface_dark</item>
<item name="android:windowLightNavigationBar">false</item>
<style name="TextSecure.DarkTheme" parent="@style/TextSecure.BaseDarkTheme">
<!-- leave empty to allow overriding -->
</style>
<style name="TextSecure.BaseDarkTheme" parent="@style/Theme.Molly.Material3.Dark">
<item name="theme_type">dark</item>
<item name="dynamic_colors">false</item>
<item name="android:navigationBarColor">@color/molly_surface_dark</item>
<item name="android:statusBarColor">@color/molly_surface_dark</item>
<item name="android:windowLightNavigationBar">false</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:forceDarkAllowed" tools:targetApi="29">false</item>
<item name="colorControlHighlight">@color/transparent_white_10</item>
@ -415,8 +427,10 @@
<item name="android:textColor">@color/text_color_dark_theme</item>
<item name="android:textColorSecondary">@color/text_color_secondary_dark_theme</item>
<item name="android:colorControlHighlight" tools:ignore="NewApi">@color/transparent_white_10</item>
<item name="alertDialogTheme">@style/AppCompatAlertDialogStyleDark</item>
<item name="android:alertDialogTheme">@style/AppCompatDialogStyleDark</item>
<item name="android:windowBackground">?attr/colorSurface</item>
<item name="android:windowContentOverlay">@null</item>
<item name="alertDialogTheme">@style/ThemeOverlay.Signal.MaterialAlertDialog</item>
<item name="android:alertDialogTheme">@style/ThemeOverlay.Signal.MaterialAlertDialog</item>
<item name="homeAsUpIndicator">@drawable/ic_arrow_left_24</item>
<item name="android:homeAsUpIndicator">@drawable/ic_arrow_left_24</item>
@ -455,6 +469,7 @@
<!-- dark_colors.xml -->
<item name="conversation_toolbar_color">?attr/colorSurface</item>
<item name="signal_accent_primary">@color/core_ultramarine_light</item>
<item name="signal_background_primary">?attr/colorSurface</item>
<item name="signal_background_secondary">?attr/colorSurfaceContainerLow</item>
<item name="signal_background_dialog">@color/core_grey_75</item>
@ -462,11 +477,20 @@
<item name="signal_text_primary">?attr/colorOnSurface</item>
<item name="signal_text_secondary">?attr/colorOnSurfaceVariant</item>
<item name="signal_text_toolbar_title">@color/transparent_white_90</item>
<item name="signal_icon_tint_primary">@color/core_grey_15</item>
<item name="signal_icon_tint_primary">?attr/colorOnSurface</item>
<item name="signal_icon_tint_secondary">@color/core_grey_25</item>
<item name="signal_icon_tint_action">?attr/signal_icon_tint_primary</item>
<item name="signal_icon_tint_tab_selected">?attr/colorOnSurface</item>
<item name="signal_icon_tint_tab_unselected">?attr/colorOnSurfaceVariant</item>
<item name="signal_button_primary">@color/core_ultramarine_light</item>
<item name="signal_button_primary_ripple">@color/transparent_black_15</item>
<item name="signal_button_primary_text">@color/core_white</item>
<item name="signal_button_primary_text_disabled">@color/transparent_white_20</item>
<item name="signal_button_secondary">@color/core_grey_75</item>
<item name="signal_button_secondary_ripple">@color/core_grey_80</item>
<item name="signal_button_secondary_text">@color/core_ultramarine_light</item>
<item name="signal_button_secondary_text_disabled">@color/core_grey_45</item>
<item name="signal_button_secondary_stroke">@color/core_grey_45</item>
<item name="conversation_compose_background">?attr/colorSurfaceContainerHigh</item>
<item name="contact_filter_edit_background">?attr/colorSurfaceContainerHighest</item>
<item name="reactions_pill_selected_color">?attr/colorSurfaceContainer</item>
@ -483,7 +507,6 @@
<item name="reactions_pill_text_color">?attr/colorOnSurfaceVariant</item>
<item name="reactions_overlay_any_emoji_background">?attr/colorTertiaryContainer</item>
<item name="reactions_overlay_any_emoji_foreground">?attr/colorOnTertiaryContainer</item>
<item name="recipient_bottom_sheet_button_strip_background_color">?attr/colorSecondaryContainer</item>
<item name="megaphone_body_text_color">?attr/colorOnSurfaceVariant</item>
<item name="tooltip_default_color">?attr/colorSecondaryContainer</item>
<item name="quote_view_background_incoming_wallpaper">@color/signal_colorTransparent2</item>
@ -491,13 +514,13 @@
<item name="quote_view_foreground_incoming_wallpaper">@color/signal_colorNeutralInverse</item>
<item name="quote_view_background_outgoing_wallpaper">@color/signal_colorTransparent4</item>
<item name="quote_view_bar_outgoing_wallpaper">@color/signal_colorNeutralInverse</item>
<item name="quote_view_foreground_outgoing_wallpaper">?attr/colorOnSurface</item>
<item name="quote_view_foreground_outgoing_wallpaper">@color/signal_colorNeutral</item>
<item name="quote_view_background_incoming_normal">@color/signal_colorTransparent3</item>
<item name="quote_view_bar_incoming_normal">@color/signal_colorOnCustom</item>
<item name="quote_view_foreground_incoming_normal">?attr/colorOnSurface</item>
<item name="quote_view_background_outgoing_normal">@color/signal_colorTransparent4</item>
<item name="quote_view_bar_outgoing_normal">@color/signal_colorOnCustom</item>
<item name="quote_view_foreground_outgoing_normal">?attr/colorOnSurface</item>
<item name="quote_view_foreground_outgoing_normal">?attr/colorOnSurfaceInverse</item>
<item name="react_with_any_background">?attr/colorSurfaceContainerLow</item>
<item name="react_with_any_search_background">?attr/conversation_compose_background</item>
<item name="react_with_any_search_hint">?attr/colorOnSurfaceVariant</item>
@ -513,6 +536,22 @@
<item name="message_request_bar_acceptForeground_wallpaper">@color/signal_colorNeutralInverse</item>
<item name="safety_tip_background">?attr/colorSecondaryContainer</item>
<item name="safety_tip_image_background">?attr/colorSecondary</item>
<!-- signal_styles.xml -->
<item name="switchThemeOverlay">@style/ThemeOverlay.MaterialSwitch.DayNight</item>
<item name="extended_action_button_container_color">@color/molly_tertiary_container_dark</item>
<item name="extended_action_button_icon_color">@color/molly_on_tertiary_container_dark</item>
<!-- contact_selection_*_item.xml -->
<item name="filled_tonal_icon_button_container_color">@color/molly_surface_container_highest_dark</item>
<item name="filled_tonal_icon_button_icon_color">@color/molly_on_surface_dark</item>
<!-- signal_context_menu_background.xml -->
<item name="context_menu_container_color">@color/molly_surface_container_high_dark</item>
<!-- conversation_tab_icon_background.xml, conversation_list_tabs*.xml -->
<item name="navbar_active_indicator_color">@color/molly_surface_bright_dark</item>
<item name="navbar_container_color">@color/molly_surface_container_dark</item>
</style>
<style name="Theme.Signal.AlertDialog.Light.Cornered" parent="MaterialAlertDialog.Material3">
@ -524,17 +563,13 @@
</style>
<style name="TextSecure.LightRegistrationTheme" parent="TextSecure.LightNoActionBar">
<item name="android:windowLightStatusBar">true</item>
<item name="android:statusBarColor">@color/molly_surface_light</item>
<item name="android:navigationBarColor">@color/molly_surface_light</item>
<item name="android:windowLightNavigationBar">false</item>
<item name="android:windowLightStatusBar">true</item>
</style>
<style name="TextSecure.DarkRegistrationTheme" parent="TextSecure.DarkNoActionBar">
<item name="android:windowLightStatusBar">false</item>
<item name="android:statusBarColor">@color/molly_surface_dark</item>
<item name="android:navigationBarColor">@color/molly_surface_dark</item>
<item name="android:windowLightNavigationBar">false</item>
<item name="android:windowLightStatusBar">false</item>
</style>
<style name="TextSecure.LightNoActionBar.ConversationSettings" parent="TextSecure.LightNoActionBar">
@ -582,8 +617,8 @@
<style name="Theme.Signal.BottomSheetDialog.Fixed" parent="Theme.Design.BottomSheetDialog">
<item name="android:windowIsFloating">false</item>
<item name="android:statusBarColor">@color/transparent</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:navigationBarColor">?attr/colorSurface</item>
<item name="android:windowLightStatusBar">false</item>
<item name="android:windowLightNavigationBar">false</item>
</style>
@ -796,9 +831,9 @@
</style>
<style name="ThemeOverlay.Signal.EditProfileInput" parent="ThemeOverlay.MaterialComponents">
<item name="colorAccent">@color/signal_accent_primary</item>
<item name="colorControlNormal">@color/signal_accent_primary</item>
<item name="colorControlHighlight">@color/signal_accent_primary</item>
<item name="colorControlActivated">@color/signal_accent_primary</item>
<item name="colorAccent">?attr/signal_accent_primary</item>
<item name="colorControlNormal">?attr/signal_accent_primary</item>
<item name="colorControlHighlight">?attr/signal_accent_primary</item>
<item name="colorControlActivated">?attr/signal_accent_primary</item>
</style>
</resources>

View file

@ -40,6 +40,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import org.signal.core.ui.theme.SignalTheme
import org.signal.core.ui.theme.attributeColor
object Buttons {
@ -92,8 +93,8 @@ object Buttons {
enabled: Boolean = true,
shape: Shape = ButtonDefaults.filledTonalShape,
colors: ButtonColors = ButtonDefaults.filledTonalButtonColors(
containerColor = MaterialTheme.colorScheme.tertiaryContainer,
contentColor = MaterialTheme.colorScheme.onTertiaryContainer
containerColor = attributeColor(R.attr.extended_action_button_container_color),
contentColor = attributeColor(R.attr.extended_action_button_icon_color)
),
elevation: ButtonElevation? = ButtonDefaults.filledTonalButtonElevation(),
border: BorderStroke? = null,
@ -122,8 +123,8 @@ object Buttons {
enabled: Boolean = true,
shape: Shape = ButtonDefaults.filledTonalShape,
colors: ButtonColors = ButtonDefaults.filledTonalButtonColors(
containerColor = MaterialTheme.colorScheme.tertiaryContainer,
contentColor = MaterialTheme.colorScheme.onTertiaryContainer
containerColor = attributeColor(R.attr.extended_action_button_container_color),
contentColor = attributeColor(R.attr.extended_action_button_icon_color)
),
elevation: ButtonElevation? = ButtonDefaults.filledTonalButtonElevation(),
border: BorderStroke? = null,
@ -153,8 +154,8 @@ object Buttons {
shape: Shape = ButtonDefaults.shape,
tonal: Boolean = false,
colors: ButtonColors = if (tonal) ButtonDefaults.filledTonalButtonColors(
containerColor = MaterialTheme.colorScheme.tertiaryContainer,
contentColor = MaterialTheme.colorScheme.onTertiaryContainer
containerColor = attributeColor(R.attr.extended_action_button_container_color),
contentColor = attributeColor(R.attr.extended_action_button_icon_color)
) else ButtonDefaults.buttonColors(),
elevation: ButtonElevation? = ButtonDefaults.buttonElevation(),
border: BorderStroke? = null,
@ -198,7 +199,7 @@ object Buttons {
painter = painterResource(iconResId),
contentDescription = null,
modifier = Modifier.padding(16.dp),
colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.onTertiaryContainer)
colorFilter = ColorFilter.tint(attributeColor(R.attr.extended_action_button_icon_color))
)
}
}
@ -220,8 +221,8 @@ object Buttons {
shape = RoundedCornerShape(18.dp),
modifier = Modifier.size(56.dp),
colors = IconButtonDefaults.filledTonalIconButtonColors(
containerColor = MaterialTheme.colorScheme.tertiaryContainer,
contentColor = MaterialTheme.colorScheme.onTertiaryContainer
containerColor = attributeColor(R.attr.extended_action_button_container_color),
contentColor = attributeColor(R.attr.extended_action_button_icon_color)
),
enabled = enabled,
content = imageContent

View file

@ -1,4 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="dynamic_colors" format="boolean"/>
<attr name="extended_action_button_container_color" format="color"/>
<attr name="extended_action_button_icon_color" format="color"/>
<attr name="filled_tonal_icon_button_container_color" format="color"/>
<attr name="filled_tonal_icon_button_icon_color" format="color"/>
</resources>