diff options
author | Christian Schneppe <christian.schneppe@pix-art.de> | 2019-11-15 21:30:32 +0100 |
---|---|---|
committer | Christian Schneppe <christian.schneppe@pix-art.de> | 2019-11-15 21:30:32 +0100 |
commit | 78c85da03cb0c8336db9b910fae3c499ebae5f0a (patch) | |
tree | ffc184636ed805d7c413c5b66da451e46209845b /src | |
parent | ba225074d5dc89173b8058660535d417c156de2e (diff) |
introduce new orange theme color
Diffstat (limited to '')
21 files changed, 352 insertions, 36 deletions
diff --git a/src/main/java/de/pixart/messenger/services/AudioPlayer.java b/src/main/java/de/pixart/messenger/services/AudioPlayer.java index 501c6b9a5..8909d27a1 100644 --- a/src/main/java/de/pixart/messenger/services/AudioPlayer.java +++ b/src/main/java/de/pixart/messenger/services/AudioPlayer.java @@ -106,7 +106,7 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti } viewHolder.progress.setOnSeekBarChangeListener(this); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - ColorStateList color = ContextCompat.getColorStateList(messageAdapter.getContext(), viewHolder.darkBackground ? R.color.white70 : R.color.bubble); + ColorStateList color = viewHolder.darkBackground ? ContextCompat.getColorStateList(messageAdapter.getContext(), R.color.white70) : viewHolder.isOrange ? ContextCompat.getColorStateList(messageAdapter.getContext(), R.color.darkorange) : ContextCompat.getColorStateList(messageAdapter.getContext(), R.color.darkblue); viewHolder.progress.setThumbTintList(color); viewHolder.progress.setProgressTintList(color); } @@ -422,6 +422,7 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti private SeekBar progress; private ImageButton playPause; private boolean darkBackground = false; + private boolean isOrange = false; public static ViewHolder get(RelativeLayout audioPlayer) { ViewHolder viewHolder = (ViewHolder) audioPlayer.getTag(R.id.TAG_AUDIO_PLAYER_VIEW_HOLDER); @@ -435,8 +436,9 @@ public class AudioPlayer implements View.OnClickListener, MediaPlayer.OnCompleti return viewHolder; } - public void setDarkBackground(boolean darkBackground) { + public void setTheme(boolean darkBackground, boolean isOrange) { this.darkBackground = darkBackground; + this.isOrange = isOrange; } } }
\ No newline at end of file diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java index 37b283ecd..0858c7c03 100644 --- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java +++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java @@ -1184,7 +1184,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { this.binding.textinput.setCustomInsertionActionModeCallback(new EditMessageActionModeCallback(this.binding.textinput)); } - + return binding.getRoot(); } @@ -3095,7 +3095,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke } private int messageInputBubble(final boolean isPrivate) { - return isPrivate ? activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark_private : R.drawable.message_bubble_sent_private : activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark : R.drawable.message_bubble_sent; + return isPrivate ? activity.isOrangeTheme() ? activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark_orange_private : R.drawable.message_bubble_sent_orange_private : activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark_private : R.drawable.message_bubble_sent_private : activity.isOrangeTheme() ? activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark_orange : R.drawable.message_bubble_sent_orange : activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark : R.drawable.message_bubble_sent; } public Conversation getConversation() { diff --git a/src/main/java/de/pixart/messenger/ui/SettingsActivity.java b/src/main/java/de/pixart/messenger/ui/SettingsActivity.java index a9ffe12bd..24c782dfb 100644 --- a/src/main/java/de/pixart/messenger/ui/SettingsActivity.java +++ b/src/main/java/de/pixart/messenger/ui/SettingsActivity.java @@ -55,6 +55,7 @@ public class SettingsActivity extends XmppActivity implements public static final String WARN_UNENCRYPTED_CHAT = "warn_unencrypted_chat"; public static final String HIDE_YOU_ARE_NOT_PARTICIPATING = "hide_you_are_not_participating"; public static final String THEME = "theme"; + public static final String THEME_COLOR = "theme_color"; public static final String SHOW_DYNAMIC_TAGS = "show_dynamic_tags"; public static final String OMEMO_SETTING = "omemo"; public static final String SHOW_FOREGROUND_SERVICE = "show_foreground_service"; @@ -506,7 +507,7 @@ public class SettingsActivity extends XmppActivity implements xmppConnectionService.reinitializeMuclumbusService(); } else if (name.equals(AUTOMATIC_MESSAGE_DELETION)) { xmppConnectionService.expireOldMessages(true); - } else if (name.equals(THEME)) { + } else if (name.equals(THEME) || name.equals(THEME_COLOR)) { updateTheme(); } } diff --git a/src/main/java/de/pixart/messenger/ui/XmppActivity.java b/src/main/java/de/pixart/messenger/ui/XmppActivity.java index ab0c53078..18604d4e5 100644 --- a/src/main/java/de/pixart/messenger/ui/XmppActivity.java +++ b/src/main/java/de/pixart/messenger/ui/XmppActivity.java @@ -422,6 +422,10 @@ public abstract class XmppActivity extends ActionBarActivity { return ThemeHelper.isDark(mTheme); } + public boolean isOrangeTheme() { + return getStringPreference("theme_color", R.string.theme_color).equals("orange"); + } + public int getThemeResource(int r_attr_name, int r_drawable_def) { int[] attrs = {r_attr_name}; TypedArray ta = this.getTheme().obtainStyledAttributes(attrs); @@ -467,6 +471,10 @@ public abstract class XmppActivity extends ActionBarActivity { return getPreferences().getBoolean(name, getResources().getBoolean(res)); } + protected String getStringPreference(String name, int res) { + return getPreferences().getString(name, getResources().getString(res)); + } + public void switchToConversation(Conversation conversation) { switchToConversation(conversation, null); } diff --git a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java index aed314288..6e277f0f2 100644 --- a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java +++ b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java @@ -70,6 +70,7 @@ import de.pixart.messenger.ui.text.DividerSpan; import de.pixart.messenger.ui.text.QuoteSpan; import de.pixart.messenger.ui.util.AvatarWorkerTask; import de.pixart.messenger.ui.util.MyLinkify; +import de.pixart.messenger.ui.util.StyledAttributes; import de.pixart.messenger.ui.util.ViewUtil; import de.pixart.messenger.ui.widget.ClickableMovementMethod; import de.pixart.messenger.ui.widget.CopyTextView; @@ -199,7 +200,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie } private int getMessageTextColorPrivate() { - return ContextCompat.getColor(activity, R.color.accent); + return StyledAttributes.getColor(activity, R.attr.colorAccent); } private int getWarningTextColor(boolean onDark) { @@ -470,7 +471,12 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie body.insert(end, "\n"); body.setSpan(new DividerSpan(false), end, end + 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } - int color = darkBackground ? this.getMessageTextColor(darkBackground, false) : ContextCompat.getColor(activity, R.color.bubble); + int color; + if (activity.isOrangeTheme()) { + color = darkBackground ? this.getMessageTextColor(darkBackground, false) : ContextCompat.getColor(activity, R.color.darkorange); + } else { + color = darkBackground ? this.getMessageTextColor(darkBackground, false) : ContextCompat.getColor(activity, R.color.darkblue); + } DisplayMetrics metrics = getContext().getResources().getDisplayMetrics(); body.setSpan(new QuoteSpan(color, metrics), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } @@ -539,7 +545,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie } else { viewHolder.messageBody.setTextAppearance(getContext(), R.style.TextAppearance_Conversations_Body1); } - viewHolder.messageBody.setHighlightColor(darkBackground ? type == SENT ? ContextCompat.getColor(activity, R.color.accent) : ContextCompat.getColor(activity, R.color.accent) : ContextCompat.getColor(activity, R.color.accent)); + viewHolder.messageBody.setHighlightColor(darkBackground ? type == SENT ? StyledAttributes.getColor(activity, R.attr.colorAccent) : StyledAttributes.getColor(activity, R.attr.colorAccent) : StyledAttributes.getColor(activity, R.attr.colorAccent)); viewHolder.messageBody.setTypeface(null, Typeface.NORMAL); if (message.getBody() != null) { final String nick = UIHelper.getMessageDisplayName(message); @@ -794,7 +800,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie viewHolder.download_button.setVisibility(View.GONE); final RelativeLayout audioPlayer = viewHolder.audioPlayer; audioPlayer.setVisibility(View.VISIBLE); - AudioPlayer.ViewHolder.get(audioPlayer).setDarkBackground(darkBackground); + AudioPlayer.ViewHolder.get(audioPlayer).setTheme(darkBackground, activity.isOrangeTheme()); this.audioPlayer.init(audioPlayer, message); } @@ -994,6 +1000,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie } boolean darkBackground = activity.isDarkTheme(); + boolean isOrange = activity.isOrangeTheme(); if (type == DATE_SEPARATOR) { if (UIHelper.today(message.getTimeSent())) { @@ -1134,7 +1141,11 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie if (type == RECEIVED) { if (isInValidSession) { if (message.isPrivateMessage()) { - viewHolder.message_box.setBackgroundResource(darkBackground ? R.drawable.message_bubble_received_light_dark_private : R.drawable.message_bubble_received_light_private); + if (activity.isOrangeTheme()) { + viewHolder.message_box.setBackgroundResource(darkBackground ? R.drawable.message_bubble_received_light_orange_dark_private : R.drawable.message_bubble_received_light_orange_private); + } else { + viewHolder.message_box.setBackgroundResource(darkBackground ? R.drawable.message_bubble_received_light_dark_private : R.drawable.message_bubble_received_light_private); + } } else { viewHolder.message_box.setBackgroundResource(darkBackground ? R.drawable.message_bubble_received_light_dark : R.drawable.message_bubble_received_light); } @@ -1158,9 +1169,17 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie if (type == SENT) { if (message.isPrivateMessage()) { - viewHolder.message_box.setBackgroundResource(activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark_private : R.drawable.message_bubble_sent_private); + if (activity.isOrangeTheme()) { + viewHolder.message_box.setBackgroundResource(activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark_orange_private : R.drawable.message_bubble_sent_orange_private); + } else { + viewHolder.message_box.setBackgroundResource(activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark_private : R.drawable.message_bubble_sent_private); + } } else { - viewHolder.message_box.setBackgroundResource(activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark : R.drawable.message_bubble_sent); + if (activity.isOrangeTheme()) { + viewHolder.message_box.setBackgroundResource(activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark_orange : R.drawable.message_bubble_sent_orange ); + } else { + viewHolder.message_box.setBackgroundResource(activity.isDarkTheme() ? R.drawable.message_bubble_sent_dark : R.drawable.message_bubble_sent); + } } } displayStatus(viewHolder, message, type, darkBackground); diff --git a/src/main/java/de/pixart/messenger/ui/widget/UnreadCountCustomView.java b/src/main/java/de/pixart/messenger/ui/widget/UnreadCountCustomView.java index ae6c968f9..70d6ca5bd 100644 --- a/src/main/java/de/pixart/messenger/ui/widget/UnreadCountCustomView.java +++ b/src/main/java/de/pixart/messenger/ui/widget/UnreadCountCustomView.java @@ -11,6 +11,7 @@ import android.util.AttributeSet; import android.view.View; import de.pixart.messenger.R; +import de.pixart.messenger.ui.util.StyledAttributes; public class UnreadCountCustomView extends View { @@ -20,31 +21,31 @@ public class UnreadCountCustomView extends View { public UnreadCountCustomView(Context context) { super(context); - init(); + init(context); } public UnreadCountCustomView(Context context, AttributeSet attrs) { super(context, attrs); initXMLAttrs(context, attrs); - init(); + init(context); } public UnreadCountCustomView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initXMLAttrs(context, attrs); - init(); + init(context); } private void initXMLAttrs(Context context, AttributeSet attrs) { TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.UnreadCountCustomView); //setBackgroundColor(a.getColor(a.getIndex(0), ContextCompat.getColor(context, R.color.accent))); - setBackgroundColor(ContextCompat.getColor(context, R.color.accent)); + setBackgroundColor(StyledAttributes.getColor(context, R.attr.colorAccent)); a.recycle(); } - void init() { + void init(Context context) { paint = new Paint(); - paint.setColor(backgroundColor); + paint.setColor(StyledAttributes.getColor(context, R.attr.colorAccent)); paint.setAntiAlias(true); textPaint = new Paint(); textPaint.setColor(Color.WHITE); diff --git a/src/main/java/de/pixart/messenger/utils/ThemeHelper.java b/src/main/java/de/pixart/messenger/utils/ThemeHelper.java index b73559529..738d2d685 100644 --- a/src/main/java/de/pixart/messenger/utils/ThemeHelper.java +++ b/src/main/java/de/pixart/messenger/utils/ThemeHelper.java @@ -35,12 +35,14 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.preference.PreferenceManager; -import androidx.annotation.StyleRes; -import com.google.android.material.snackbar.Snackbar; -import androidx.core.content.ContextCompat; import android.util.TypedValue; import android.widget.TextView; +import androidx.annotation.StyleRes; +import androidx.core.content.ContextCompat; + +import com.google.android.material.snackbar.Snackbar; + import de.pixart.messenger.R; import de.pixart.messenger.ui.SettingsActivity; @@ -56,12 +58,27 @@ public class ThemeHelper { } else { dark = sharedPreferences.getString(SettingsActivity.THEME, resources.getString(R.string.theme)).equals("dark"); } + final String themeColor = sharedPreferences.getString("theme_color", resources.getString(R.string.theme_color)); final String fontSize = sharedPreferences.getString("font_size", resources.getString(R.string.default_font_size)); - switch (fontSize) { - case "medium": - return dark ? R.style.ConversationsTheme_Dark_Medium : R.style.ConversationsTheme_Medium; - case "large": - return dark ? R.style.ConversationsTheme_Dark_Large : R.style.ConversationsTheme_Large; + switch (themeColor) { + case "c": + switch (fontSize) { + case "medium": + return dark ? R.style.ConversationsTheme_Dark_Medium : R.style.ConversationsTheme_Medium; + case "large": + return dark ? R.style.ConversationsTheme_Dark_Large : R.style.ConversationsTheme_Large; + default: + return dark ? R.style.ConversationsTheme_Dark : R.style.ConversationsTheme; + } + case "orange": + switch (fontSize) { + case "medium": + return dark ? R.style.ConversationsTheme_Orange_Dark_Medium : R.style.ConversationsTheme_Orange_Medium; + case "large": + return dark ? R.style.ConversationsTheme_Orange_Dark_Large : R.style.ConversationsTheme_Orange_Large; + default: + return dark ? R.style.ConversationsTheme_Orange_Dark : R.style.ConversationsTheme_Orange; + } default: return dark ? R.style.ConversationsTheme_Dark : R.style.ConversationsTheme; } @@ -85,11 +102,26 @@ public class ThemeHelper { final Resources resources = context.getResources(); final boolean dark = sharedPreferences.getString(SettingsActivity.THEME, resources.getString(R.string.theme)).equals("dark"); final String fontSize = sharedPreferences.getString("font_size", resources.getString(R.string.default_font_size)); - switch (fontSize) { - case "medium": - return dark ? R.style.ConversationsTheme_Dark_Dialog_Medium : R.style.ConversationsTheme_Dialog_Medium; - case "large": - return dark ? R.style.ConversationsTheme_Dark_Dialog_Large : R.style.ConversationsTheme_Dialog_Large; + final String themeColor = sharedPreferences.getString("theme_color", resources.getString(R.string.theme_color)); + switch (themeColor) { + case "blue": + switch (fontSize) { + case "medium": + return dark ? R.style.ConversationsTheme_Dark_Dialog_Medium : R.style.ConversationsTheme_Dialog_Medium; + case "large": + return dark ? R.style.ConversationsTheme_Dark_Dialog_Large : R.style.ConversationsTheme_Dialog_Large; + default: + return dark ? R.style.ConversationsTheme_Dark_Dialog : R.style.ConversationsTheme_Dialog; + } + case "orange": + switch (fontSize) { + case "medium": + return dark ? R.style.ConversationsTheme_Orange_Dark_Dialog_Medium : R.style.ConversationsTheme_Orange_Dialog_Medium; + case "large": + return dark ? R.style.ConversationsTheme_Orange_Dark_Dialog_Large : R.style.ConversationsTheme_Orange_Dialog_Large; + default: + return dark ? R.style.ConversationsTheme_Orange_Dark_Dialog : R.style.ConversationsTheme_Orange_Dialog; + } default: return dark ? R.style.ConversationsTheme_Dark_Dialog : R.style.ConversationsTheme_Dialog; } @@ -100,6 +132,9 @@ public class ThemeHelper { case R.style.ConversationsTheme_Dark: case R.style.ConversationsTheme_Dark_Large: case R.style.ConversationsTheme_Dark_Medium: + case R.style.ConversationsTheme_Orange_Dark: + case R.style.ConversationsTheme_Orange_Dark_Large: + case R.style.ConversationsTheme_Orange_Dark_Medium: return true; default: return false; diff --git a/src/main/res/drawable/message_bubble_received_light_orange_dark_private.xml b/src/main/res/drawable/message_bubble_received_light_orange_dark_private.xml new file mode 100644 index 000000000..cf7d44c87 --- /dev/null +++ b/src/main/res/drawable/message_bubble_received_light_orange_dark_private.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> + <stroke android:width="2dp" android:color="@color/accent_orange"/> + <corners + android:topLeftRadius="0dp" + android:topRightRadius="5dp" + android:bottomRightRadius="5dp" + android:bottomLeftRadius="5dp" /> + <padding + android:bottom="2dp" + android:left="6dp" + android:right="6dp" + android:top="2dp" /> + <solid android:color="@color/darkwhite" /> +</shape>
\ No newline at end of file diff --git a/src/main/res/drawable/message_bubble_received_light_orange_private.xml b/src/main/res/drawable/message_bubble_received_light_orange_private.xml new file mode 100644 index 000000000..e22a46996 --- /dev/null +++ b/src/main/res/drawable/message_bubble_received_light_orange_private.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> + <stroke android:width="2dp" android:color="@color/accent_orange"/> + <corners + android:topLeftRadius="0dp" + android:topRightRadius="5dp" + android:bottomRightRadius="5dp" + android:bottomLeftRadius="5dp" /> + <padding + android:bottom="2dp" + android:left="6dp" + android:right="6dp" + android:top="2dp" /> + <solid android:color="@color/lightwhite" /> +</shape>
\ No newline at end of file diff --git a/src/main/res/drawable/message_bubble_received_warning_orange_dark_private.xml b/src/main/res/drawable/message_bubble_received_warning_orange_dark_private.xml new file mode 100644 index 000000000..5f0525113 --- /dev/null +++ b/src/main/res/drawable/message_bubble_received_warning_orange_dark_private.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> + <stroke android:width="2dp" android:color="@color/accent_orange"/> + <corners + android:topLeftRadius="0dp" + android:topRightRadius="5dp" + android:bottomRightRadius="5dp" + android:bottomLeftRadius="5dp" /> + <padding + android:bottom="4dp" + android:left="6dp" + android:right="6dp" + android:top="4dp" /> + <solid android:color="@color/darkred" /> +</shape>
\ No newline at end of file diff --git a/src/main/res/drawable/message_bubble_received_warning_orange_private.xml b/src/main/res/drawable/message_bubble_received_warning_orange_private.xml new file mode 100644 index 000000000..08bd30406 --- /dev/null +++ b/src/main/res/drawable/message_bubble_received_warning_orange_private.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> + <stroke android:width="2dp" android:color="@color/accent_orange"/> + <corners + android:topLeftRadius="0dp" + android:topRightRadius="5dp" + android:bottomRightRadius="5dp" + android:bottomLeftRadius="5dp" /> + <padding + android:bottom="4dp" + android:left="6dp" + android:right="6dp" + android:top="4dp" /> + <solid android:color="@color/lightred" /> +</shape>
\ No newline at end of file diff --git a/src/main/res/drawable/message_bubble_sent_dark_orange.xml b/src/main/res/drawable/message_bubble_sent_dark_orange.xml new file mode 100644 index 000000000..6e81cabe7 --- /dev/null +++ b/src/main/res/drawable/message_bubble_sent_dark_orange.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> + <corners + android:topLeftRadius="5dp" + android:topRightRadius="5dp" + android:bottomRightRadius="0dp" + android:bottomLeftRadius="5dp" /> + <padding + android:bottom="4dp" + android:left="6dp" + android:right="6dp" + android:top="4dp" /> + <solid android:color="@color/darkorange" /> +</shape>
\ No newline at end of file diff --git a/src/main/res/drawable/message_bubble_sent_dark_orange_private.xml b/src/main/res/drawable/message_bubble_sent_dark_orange_private.xml new file mode 100644 index 000000000..33b726220 --- /dev/null +++ b/src/main/res/drawable/message_bubble_sent_dark_orange_private.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> + <stroke android:width="2dp" android:color="@color/accent_orange"/> + <corners + android:topLeftRadius="5dp" + android:topRightRadius="5dp" + android:bottomRightRadius="0dp" + android:bottomLeftRadius="5dp" /> + <padding + android:bottom="4dp" + android:left="6dp" + android:right="6dp" + android:top="4dp" /> + <solid android:color="@color/darkorange" /> +</shape>
\ No newline at end of file diff --git a/src/main/res/drawable/message_bubble_sent_orange.xml b/src/main/res/drawable/message_bubble_sent_orange.xml new file mode 100644 index 000000000..a6ab35a46 --- /dev/null +++ b/src/main/res/drawable/message_bubble_sent_orange.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> + <corners + android:topLeftRadius="5dp" + android:topRightRadius="5dp" + android:bottomRightRadius="0dp" + android:bottomLeftRadius="5dp" /> + <padding + android:bottom="4dp" + android:left="6dp" + android:right="6dp" + android:top="4dp" /> + <solid android:color="@color/lightorange" /> +</shape>
\ No newline at end of file diff --git a/src/main/res/drawable/message_bubble_sent_orange_private.xml b/src/main/res/drawable/message_bubble_sent_orange_private.xml new file mode 100644 index 000000000..fca639dfd --- /dev/null +++ b/src/main/res/drawable/message_bubble_sent_orange_private.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> + <stroke android:width="2dp" android:color="@color/accent_orange"/> + <corners + android:topLeftRadius="5dp" + android:topRightRadius="5dp" + android:bottomRightRadius="0dp" + android:bottomLeftRadius="5dp" /> + <padding + android:bottom="4dp" + android:left="6dp" + android:right="6dp" + android:top="4dp" /> + <solid android:color="@color/lightorange" /> +</shape>
\ No newline at end of file diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml index 8cb8025d2..4e2065d63 100644 --- a/src/main/res/values/arrays.xml +++ b/src/main/res/values/arrays.xml @@ -10,6 +10,14 @@ <item>dark</item> <item>auto</item> </string-array> + <string-array name="themecolors"> + <item>@string/pref_theme_blue</item> + <item>@string/pref_theme_orange</item> + </string-array> + <string-array name="themecolor_values"> + <item>blue</item> + <item>orange</item> + </string-array> <string-array name="filesizes"> <item>@string/never</item> diff --git a/src/main/res/values/colors.xml b/src/main/res/values/colors.xml index 3b9c7c3df..e8f3b0d79 100644 --- a/src/main/res/values/colors.xml +++ b/src/main/res/values/colors.xml @@ -3,6 +3,13 @@ <color name="realgreen">#ff388e3c</color> <!-- green 700 --> <color name="primary">#ff0D47A1</color> <!-- blue 900 --> <color name="primary_dark">#ff1A237E</color> <!-- indigo 900 --> + + <color name="primary_orange">#ffe59400</color> + <color name="primary_dark_orange">#ffB27300</color> + <color name="primary_orange_dark">#ffce8500</color> + <color name="primary_dark_orange_dark">#ffa06700</color> + <color name="accent_orange">#ffffa500 </color> + <color name="accent">#ff0091ea</color> <!-- light blue accent --> <color name="black">#ff000000</color> <color name="black87">#de000309</color> @@ -32,12 +39,11 @@ <color name="red500">#fff44336</color> <!-- red 500 --> <color name="red700">#ffd50000</color> <!-- red 700 --> <color name="orange500">#ffff9800</color> <!-- orange 500 --> - <color name="bubble">#ff37474f</color> <!-- blue grey 800 --> <color name="realwhite">#ffffffff</color> <!-- white --> <!-- bubbles --> - <color name="lightwhite">#fafafa</color> <!-- green 50 --> - <color name="lightblue">#bbdefb</color> <!-- blue 100 --> + <color name="lightwhite">#fffafafa</color> <!-- green 50 --> + <color name="lightblue">#ffbbdefb</color> <!-- blue 100 --> <color name="lightred">#ffffcdd2</color> <!-- red 100 --> <color name="lightgreen">#ffc8e6c9</color> <!-- green 100 --> <color name="darkwhite">#ff424242</color> <!-- grey 800 --> @@ -45,6 +51,9 @@ <color name="darkred">#ffb71c1c</color> <!-- red 900 --> <color name="darkgreen">#ff1b5e20</color> <!-- green 900 --> + <color name="lightorange">#fffff6e5</color> <!-- blue 100 --> + <color name="darkorange">#ff4c3100</color> + <color name="online">#ff388e3c</color> <!-- green 700 --> <color name="away">#ffff9800</color> <!-- orange 500 --> <color name="notavailable">#fff44336</color> <!-- red 500 --> diff --git a/src/main/res/values/defaults.xml b/src/main/res/values/defaults.xml index 26d1179ae..64e8a648c 100644 --- a/src/main/res/values/defaults.xml +++ b/src/main/res/values/defaults.xml @@ -68,6 +68,7 @@ <string name="quick_action">recent</string> <string name="omemo_setting_default">default_off</string> <string name="theme">auto</string> + <string name="theme_color">blue</string> <string name="default_font_size">small</string> <string name="default_channel_discovery">JABBER_NETWORK</string> diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index e0d3b9120..c525cdfc1 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -741,7 +741,7 @@ <string name="pref_theme_light">Light theme</string> <string name="pref_theme_dark">Dark theme</string> <string name="pref_theme_auto">Automatic</string> - <string name="pref_theme_options_summary">Select the color palette</string> + <string name="pref_theme_options_summary">Select the theme brightness</string> <string name="pref_theme_options">Theme</string> <string name="chooce_account">Choose account</string> <string name="pref_font_size">Font Size</string> @@ -989,4 +989,8 @@ <string name="pref_notification_grace_period">Grace Period</string> <string name="pref_notification_grace_period_summary">The length of time notifications are silenced after detecting activity on one of your other devices.</string> <string name="ask_for_writeaccess">Please ask for write access</string> + <string name="pref_theme_blue">blue</string> + <string name="pref_theme_orange">orange</string> + <string name="pref_theme_color_options_summary">Select the theme color palette</string> + <string name="pref_theme_color_options">Theme color</string> </resources> diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml index cebd97038..de539df44 100644 --- a/src/main/res/values/themes.xml +++ b/src/main/res/values/themes.xml @@ -319,6 +319,21 @@ <item name="ic_settings_about" type="reference">@drawable/ic_help_circle_white_24dp</item> </style> + <style name="ConversationsTheme.Orange" parent="ConversationsTheme"> + <item name="colorPrimary">@color/primary_orange</item> + <item name="colorPrimaryDark">@color/primary_dark_orange</item> + <item name="colorAccent">@color/accent_orange</item> + <item name="colorControlNormal">@color/accent_orange</item> + <item name="colorControlActivated">@color/accent_orange</item> + </style> + + <style name="ConversationsTheme.Orange.Dark" parent="ConversationsTheme.Dark"> + <item name="colorPrimary">@color/primary_orange_dark</item> + <item name="colorPrimaryDark">@color/primary_dark_orange_dark</item> + <item name="colorAccent">@color/accent_orange</item> + <item name="colorControlNormal">@color/accent_orange</item> + <item name="colorControlActivated">@color/accent_orange</item> + </style> <style name="ConversationsTheme.Dialog" parent="@style/Theme.AppCompat.Light.Dialog"> <item name="colorPrimary">@color/primary</item> @@ -332,6 +347,12 @@ <item name="android:windowNoTitle">true</item> </style> + <style name="ConversationsTheme.Orange.Dialog" parent="ConversationsTheme.Dialog"> + <item name="colorPrimary">@color/primary_orange</item> + <item name="colorPrimaryDark">@color/primary_dark_orange</item> + <item name="colorAccent">@color/accent_orange</item> + </style> + <style name="ConversationsTheme.Dark.Dialog" parent="@style/Theme.AppCompat.Dialog"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> @@ -343,26 +364,52 @@ <item name="android:windowNoTitle">true</item> </style> + <style name="ConversationsTheme.Orange.Dark.Dialog" parent="ConversationsTheme.Dark.Dialog"> + <item name="colorPrimary">@color/primary_orange_dark</item> + <item name="colorPrimaryDark">@color/primary_dark_orange_dark</item> + <item name="colorAccent">@color/accent_orange</item> + </style> + <style name="ConversationsTheme.Dialog.Medium" parent="ConversationsTheme.Dialog"> <item name="TextSizeBody2">16sp</item> <item name="TextSizeDisplay2">51sp</item> </style> + <style name="ConversationsTheme.Orange.Dialog.Medium" parent="ConversationsTheme.Orange.Dialog"> + <item name="TextSizeBody2">16sp</item> + <item name="TextSizeDisplay2">51sp</item> + </style> + <style name="ConversationsTheme.Dark.Dialog.Medium" parent="ConversationsTheme.Dark.Dialog"> <item name="TextSizeBody2">16sp</item> <item name="TextSizeDisplay2">51sp</item> </style> + <style name="ConversationsTheme.Orange.Dark.Dialog.Medium" parent="ConversationsTheme.Orange.Dark.Dialog"> + <item name="TextSizeBody2">16sp</item> + <item name="TextSizeDisplay2">51sp</item> + </style> + <style name="ConversationsTheme.Dialog.Large" parent="ConversationsTheme.Dialog"> <item name="TextSizeBody2">18sp</item> <item name="TextSizeDisplay2">56sp</item> </style> + <style name="ConversationsTheme.Orange.Dialog.Large" parent="ConversationsTheme.Orange.Dialog"> + <item name="TextSizeBody2">18sp</item> + <item name="TextSizeDisplay2">56sp</item> + </style> + <style name="ConversationsTheme.Dark.Dialog.Large" parent="ConversationsTheme.Dark.Dialog"> <item name="TextSizeBody2">18sp</item> <item name="TextSizeTitle">56sp</item> </style> + <style name="ConversationsTheme.Orange.Dark.Dialog.Large" parent="ConversationsTheme.Orange.Dark.Dialog"> + <item name="TextSizeBody2">18sp</item> + <item name="TextSizeTitle">56sp</item> + </style> + <style name="ConversationsTheme.FullScreen" parent="@style/Theme.AppCompat.Light"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> @@ -407,6 +454,48 @@ <item name="TextSizeHeadline">20sp</item> </style> + <style name="ConversationsTheme.Orange.Medium" parent="ConversationsTheme.Orange"> + <item name="TextSizeCaption">14sp</item> + <item name="TextSizeBody1">16sp</item> + <item name="TextSizeBody2">16sp</item> + <item name="TextSizeSubhead">18sp</item> + <item name="TextSizeTitle">22sp</item> + <item name="TextSizeInput">18sp</item> + <item name="TextSeparation">6sp</item> + <item name="IconSize">20sp</item> + <item name="TextSizeInfo">14sp</item> + <item name="TextSizeBody">16sp</item> + <item name="TextSizeHeadline">20sp</item> + </style> + + <style name="ConversationsTheme.Orange.Dark.Medium" parent="ConversationsTheme.Orange.Dark"> + <item name="TextSizeCaption">14sp</item> + <item name="TextSizeBody1">16sp</item> + <item name="TextSizeBody2">16sp</item> + <item name="TextSizeSubhead">18sp</item> + <item name="TextSizeTitle">22sp</item> + <item name="TextSizeInput">18sp</item> + <item name="TextSeparation">6sp</item> + <item name="IconSize">20sp</item> + <item name="TextSizeInfo">14sp</item> + <item name="TextSizeBody">16sp</item> + <item name="TextSizeHeadline">20sp</item> + </style> + + <style name="ConversationsTheme.Large" parent="ConversationsTheme"> + <item name="TextSizeCaption">16sp</item> + <item name="TextSizeBody1">18sp</item> + <item name="TextSizeBody2">18sp</item> + <item name="TextSizeSubhead">20sp</item> + <item name="TextSizeTitle">24sp</item> + <item name="TextSizeInput">20sp</item> + <item name="TextSeparation">7sp</item> + <item name="IconSize">22sp</item> + <item name="TextSizeInfo">16sp</item> + <item name="TextSizeBody">18sp</item> + <item name="TextSizeHeadline">22sp</item> + </style> + <style name="ConversationsTheme.Dark.Large" parent="ConversationsTheme.Dark"> <item name="TextSizeCaption">16sp</item> <item name="TextSizeBody1">18sp</item> @@ -421,7 +510,21 @@ <item name="TextSizeHeadline">22sp</item> </style> - <style name="ConversationsTheme.Large" parent="ConversationsTheme"> + <style name="ConversationsTheme.Orange.Large" parent="ConversationsTheme.Orange"> + <item name="TextSizeCaption">16sp</item> + <item name="TextSizeBody1">18sp</item> + <item name="TextSizeBody2">18sp</item> + <item name="TextSizeSubhead">20sp</item> + <item name="TextSizeTitle">24sp</item> + <item name="TextSizeInput">20sp</item> + <item name="TextSeparation">7sp</item> + <item name="IconSize">22sp</item> + <item name="TextSizeInfo">16sp</item> + <item name="TextSizeBody">18sp</item> + <item name="TextSizeHeadline">22sp</item> + </style> + + <style name="ConversationsTheme.Orange.Dark.Large" parent="ConversationsTheme.Orange.Dark"> <item name="TextSizeCaption">16sp</item> <item name="TextSizeBody1">18sp</item> <item name="TextSizeBody2">18sp</item> diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml index d3404a2e1..2ca6ce1e9 100644 --- a/src/main/res/xml/preferences.xml +++ b/src/main/res/xml/preferences.xml @@ -22,6 +22,13 @@ android:summary="@string/pref_theme_options_summary" android:title="@string/pref_theme_options" /> <ListPreference + android:defaultValue="@string/theme_color" + android:entries="@array/themecolors" + android:entryValues="@array/themecolor_values" + android:key="theme_color" + android:summary="@string/pref_theme_color_options_summary" + android:title="@string/pref_theme_color_options" /> + <ListPreference android:defaultValue="@string/default_font_size" android:entries="@array/font_size_entries" android:entryValues="@array/font_size_entry_values" |