diff --git a/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java b/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java
index 41ef87fa..b222c91c 100644
--- a/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java
+++ b/app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java
@@ -626,11 +626,13 @@ public class ComposeActivity extends BaseActivity {
private void enableMediaPicking() {
mediaPick.setEnabled(true);
+ ThemeUtils.setImageViewTint(mediaPick, R.attr.compose_media_button_tint);
mediaPick.setImageResource(R.drawable.ic_media);
}
private void disableMediaPicking() {
mediaPick.setEnabled(false);
+ ThemeUtils.setImageViewTint(mediaPick, R.attr.compose_media_button_disabled_tint);
mediaPick.setImageResource(R.drawable.ic_media_disabled);
}
diff --git a/app/src/main/java/com/keylesspalace/tusky/StatusButton.java b/app/src/main/java/com/keylesspalace/tusky/StatusButton.java
deleted file mode 100644
index 926c1224..00000000
--- a/app/src/main/java/com/keylesspalace/tusky/StatusButton.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright 2017 Andrew Dawson
- *
- * This file is part of Tusky.
- *
- * Tusky is free software: you can redistribute it and/or modify it under the terms of the GNU
- * General Public License as published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * Tusky is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
- * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
- * Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with Tusky. If not, see
- * . */
-
-package com.keylesspalace.tusky;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.support.v7.widget.AppCompatImageButton;
-import android.util.AttributeSet;
-
-public class StatusButton extends AppCompatImageButton {
- private static final int[] STATE_MARKED = { R.attr.state_marked };
-
- private boolean marked;
-
- public StatusButton(Context context, AttributeSet attributeSet) {
- super(context, attributeSet);
- TypedArray array = context.getTheme().obtainStyledAttributes(
- attributeSet, R.styleable.StatusButton, 0, 0);
- try {
- marked = array.getBoolean(R.styleable.StatusButton_state_marked, false);
- } finally {
- array.recycle();
- }
- }
-
- @Override
- public int[] onCreateDrawableState(int extraSpace) {
- if (marked) {
- extraSpace += 1;
- }
- int[] drawableState = super.onCreateDrawableState(extraSpace);
- if (marked) {
- mergeDrawableStates(drawableState, STATE_MARKED);
- }
- return drawableState;
- }
-
- public void setMarked(boolean marked) {
- this.marked = marked;
- }
-}
diff --git a/app/src/main/java/com/keylesspalace/tusky/StatusViewHolder.java b/app/src/main/java/com/keylesspalace/tusky/StatusViewHolder.java
index 7ded23d1..3b3e3595 100644
--- a/app/src/main/java/com/keylesspalace/tusky/StatusViewHolder.java
+++ b/app/src/main/java/com/keylesspalace/tusky/StatusViewHolder.java
@@ -44,8 +44,8 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
private View rebloggedBar;
private TextView rebloggedByDisplayName;
private ImageButton replyButton;
- private StatusButton reblogButton;
- private StatusButton favouriteButton;
+ private ImageButton reblogButton;
+ private ImageButton favouriteButton;
private ImageButton moreButton;
private boolean favourited;
private boolean reblogged;
@@ -71,8 +71,8 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
rebloggedBar = itemView.findViewById(R.id.status_reblogged_bar);
rebloggedByDisplayName = (TextView) itemView.findViewById(R.id.status_reblogged);
replyButton = (ImageButton) itemView.findViewById(R.id.status_reply);
- reblogButton = (StatusButton) itemView.findViewById(R.id.status_reblog);
- favouriteButton = (StatusButton) itemView.findViewById(R.id.status_favourite);
+ reblogButton = (ImageButton) itemView.findViewById(R.id.status_reblog);
+ favouriteButton = (ImageButton) itemView.findViewById(R.id.status_favourite);
moreButton = (ImageButton) itemView.findViewById(R.id.status_more);
reblogged = false;
favourited = false;
@@ -189,21 +189,33 @@ public class StatusViewHolder extends RecyclerView.ViewHolder {
public void setReblogged(boolean reblogged) {
this.reblogged = reblogged;
- reblogButton.setMarked(reblogged);
+ int attribute;
+ if (reblogged) {
+ attribute = R.attr.status_reblog_button_marked_tint;
+ } else {
+ attribute = R.attr.status_reblog_button_tint;
+ }
+ ThemeUtils.setImageViewTint(reblogButton, attribute);
}
+ /** This should only be called after setReblogged, in order to override the tint correctly. */
public void setRebloggingEnabled(boolean enabled) {
reblogButton.setEnabled(enabled);
- if (enabled) {
- reblogButton.setImageResource(R.drawable.ic_reblog);
- } else {
+ if (!enabled) {
+ ThemeUtils.setImageViewTint(reblogButton, R.attr.status_reblog_button_disabled_tint);
reblogButton.setImageResource(R.drawable.ic_reblog_disabled);
}
}
public void setFavourited(boolean favourited) {
this.favourited = favourited;
- favouriteButton.setMarked(favourited);
+ int attribute;
+ if (favourited) {
+ attribute = R.attr.status_favourite_button_marked_tint;
+ } else {
+ attribute = R.attr.status_favourite_button_tint;
+ }
+ ThemeUtils.setImageViewTint(favouriteButton, attribute);
}
public void setMediaPreviews(final Status.MediaAttachment[] attachments,
diff --git a/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java b/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java
index 8ca91612..8db45fac 100644
--- a/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java
+++ b/app/src/main/java/com/keylesspalace/tusky/ThemeUtils.java
@@ -16,9 +16,11 @@
package com.keylesspalace.tusky;
import android.content.Context;
+import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
import android.util.TypedValue;
+import android.widget.ImageView;
public class ThemeUtils {
public static Drawable getDrawable(Context context, int attribute, int fallbackDrawable) {
@@ -49,4 +51,8 @@ public class ThemeUtils {
return android.R.color.black;
}
}
+
+ public static void setImageViewTint(ImageView view, int attribute) {
+ view.setColorFilter(getColor(view.getContext(), attribute), PorterDuff.Mode.SRC_IN);
+ }
}
diff --git a/app/src/main/res/color/favourite_button_dark.xml b/app/src/main/res/color/favourite_button_dark.xml
deleted file mode 100644
index fe6dc5a8..00000000
--- a/app/src/main/res/color/favourite_button_dark.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/color/favourite_button_light.xml b/app/src/main/res/color/favourite_button_light.xml
deleted file mode 100644
index c9511a3c..00000000
--- a/app/src/main/res/color/favourite_button_light.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/color/media_button_dark.xml b/app/src/main/res/color/media_button_dark.xml
deleted file mode 100644
index 7f29d866..00000000
--- a/app/src/main/res/color/media_button_dark.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/color/media_button_light.xml b/app/src/main/res/color/media_button_light.xml
deleted file mode 100644
index 73da3f03..00000000
--- a/app/src/main/res/color/media_button_light.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/color/reblog_button_dark.xml b/app/src/main/res/color/reblog_button_dark.xml
deleted file mode 100644
index cd05a725..00000000
--- a/app/src/main/res/color/reblog_button_dark.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/color/reblog_button_light.xml b/app/src/main/res/color/reblog_button_light.xml
deleted file mode 100644
index a2fb223c..00000000
--- a/app/src/main/res/color/reblog_button_light.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_compose.xml b/app/src/main/res/layout/activity_compose.xml
index 7fb1ce9b..e8d732ee 100644
--- a/app/src/main/res/layout/activity_compose.xml
+++ b/app/src/main/res/layout/activity_compose.xml
@@ -16,7 +16,6 @@
android:layout_height="48dp"
app:srcCompat="@drawable/ic_media"
style="?attr/image_button_style"
- android:tint="?attr/compose_media_button_tint"
android:id="@+id/compose_photo_pick"
android:layout_marginLeft="8dp" />
diff --git a/app/src/main/res/layout/item_status.xml b/app/src/main/res/layout/item_status.xml
index ae946930..3beb77c1 100644
--- a/app/src/main/res/layout/item_status.xml
+++ b/app/src/main/res/layout/item_status.xml
@@ -209,10 +209,10 @@
android:layout_height="match_parent"
android:layout_weight="1" />
-
@@ -221,10 +221,10 @@
android:layout_height="match_parent"
android:layout_weight="1" />
-
diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml
index e48b50a9..f1a25182 100644
--- a/app/src/main/res/values/attrs.xml
+++ b/app/src/main/res/values/attrs.xml
@@ -14,8 +14,11 @@
-
-
+
+
+
+
+
@@ -26,6 +29,7 @@
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index dfa06414..3aaf8769 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -20,12 +20,19 @@
#44A673
#FFFFFF
#CFCFCF
+ #CFCFCF
+ #00DFAF
+ #6F6F6F
+ #CFCFCF
+ #DFCF00
#303030
#2F2F2F
#A4B4BC
#000000
#4C534B
#000000
+ #FFFFFF
+ #8F8F8F
#AFBFCF
#9F9F9F
#CFCFCF
@@ -46,12 +53,19 @@
#f6f7f7
#000000
#2F2F2F
+ #4F4F4F
+ #009F6F
+ #BFBFBF
+ #4F4F4F
+ #BFAF00
#B0B0B0
#CFCFCF
#34444C
#CFCFCF
#9F9F9F
#EFEFEF
+ #000000
+ #8F8F8F
#2F5F6F
#7F7F7F
#1F1F1F
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 560f19b0..2c8b7246 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -27,8 +27,11 @@
- @color/toolbar_background_dark
- @color/toolbar_icon_dark
- @style/AppTheme.ImageButton.Dark
- - @style/AppTheme.ReblogButton.Dark
- - @style/AppTheme.FavouriteButton.Dark
+ - @color/status_reblog_button_dark
+ - @color/status_reblog_button_marked_dark
+ - @color/status_reblog_button_disabled_dark
+ - @color/status_favourite_button_dark
+ - @color/status_favourite_button_marked_dark
- @drawable/toggle_small
- @color/sensitive_media_warning_background_dark
- @color/status_text_secondary_dark
@@ -36,7 +39,8 @@
- @drawable/status_divider_dark
- @drawable/tab_page_margin_dark
- @color/account_header_background_dark
- - @color/media_button_dark
+ - @color/compose_media_button_dark
+ - @color/compose_media_button_disabled_dark
- @color/compose_mention_dark
- @color/notification_content_faded_dark
- @color/notification_icon_tint_dark
@@ -46,14 +50,6 @@
- @color/image_button_dark
-
-
-
-
-
-
-
-