diff options
author | 2018-06-01 17:11:22 +0530 | |
---|---|---|
committer | 2018-06-01 18:42:19 +0530 | |
commit | 4edfdd8f3bf39fb578ef61e0c21cd06d0bb8a15d (patch) | |
tree | 0e0d93c561a8d458daf64f62201cab58daa7ff1b | |
parent | theme: add dark theme with toggle (diff) | |
download | wireguard-android-4edfdd8f3bf39fb578ef61e0c21cd06d0bb8a15d.tar.xz wireguard-android-4edfdd8f3bf39fb578ef61e0c21cd06d0bb8a15d.zip |
FloatingActionButton: Make attribute grabbing not be terrible
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
-rw-r--r-- | app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButton.java | 16 | ||||
-rw-r--r-- | app/src/main/res/values/colors.xml | 3 | ||||
-rw-r--r-- | app/src/main/res/values/styles.xml | 2 |
3 files changed, 10 insertions, 11 deletions
diff --git a/app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButton.java b/app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButton.java index a8d937ef..d132be59 100644 --- a/app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButton.java +++ b/app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButton.java @@ -7,6 +7,7 @@ package com.wireguard.android.widget.fab; import android.content.Context; +import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.*; import android.graphics.Paint.Style; @@ -16,9 +17,9 @@ import android.graphics.drawable.ShapeDrawable.ShaderFactory; import android.graphics.drawable.shapes.OvalShape; import android.support.annotation.*; import android.support.v4.content.ContextCompat; -import android.support.v7.app.AppCompatDelegate; import android.support.v7.widget.AppCompatImageButton; import android.util.AttributeSet; +import android.util.TypedValue; import android.widget.TextView; import com.wireguard.android.R; @@ -58,14 +59,13 @@ public class FloatingActionButton extends AppCompatImageButton { init(context, attrs); } - //TODO(msf): make not terrible public static int getColorFromTheme(final Context context, final int themeResource, @ColorRes final int fallback) { - TypedArray a = context.getTheme().obtainStyledAttributes(new int[]{themeResource}); - try { - return a.getColor(0, ContextCompat.getColor(context, fallback)); - } finally { - a.recycle(); - } + final TypedValue typedValue = new TypedValue(); + final Resources.Theme theme = context.getTheme(); + theme.resolveAttribute(themeResource, typedValue, true); + @ColorInt final int color = typedValue.data; + return color == 0 ? fallback : color; + } void init(final Context context, final AttributeSet attributeSet) { diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index bb3b6e9b..09be7e8f 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,6 +3,5 @@ <!-- TODO(msf): remove these two hard-coded colors --> <color name="list_item_activated">#cfd8dc</color> <!-- Blue Grey 200 --> <color name="list_item_ripple">#808e95</color> <!-- Blue Grey 200 dark --> - - <!-- TODO(zx2c4): set this once we have a color decided - <color name="accent">#2196F3</color> --> + <color name="accent">#2196F3</color> </resources> diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f5cd3814..ea2b1434 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -2,7 +2,7 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar"> - <!--TODO(zx2c4): set this once we have a color decided: <item name="colorAccent">@color/accent</item>--> + <item name="colorAccent">@color/accent</item> </style> <style name="SettingsTheme" parent="AppTheme"> |