summaryrefslogtreecommitdiffhomepage
path: root/app
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-06-05 02:36:52 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-06-05 02:44:32 +0200
commit607a4deab2f4d52b4987a8756c42550e32ff187c (patch)
tree19968e0a13175245b9257c28614aad38d12b885e /app
parentf5eb9cd4545b2f022a947312ea395b3c991051cb (diff)
fab: properly get theme color
Harsh changed this before, but my original way is what the support library does internally.
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/com/wireguard/android/widget/fab/FloatingActionButton.java15
1 files changed, 7 insertions, 8 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 de9b8f37..6ef38b56 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,7 +7,6 @@
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;
@@ -19,7 +18,6 @@ import android.support.annotation.*;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.AppCompatImageButton;
import android.util.AttributeSet;
-import android.util.TypedValue;
import android.widget.TextView;
import com.wireguard.android.R;
@@ -60,12 +58,12 @@ public class FloatingActionButton extends AppCompatImageButton {
}
public static int getColorFromTheme(final Context context, final int themeResource, @ColorRes final int fallback) {
- 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;
-
+ final TypedArray a = context.obtainStyledAttributes(new int[]{themeResource});
+ try {
+ return a.getColor(0, ContextCompat.getColor(context, fallback));
+ } finally {
+ a.recycle();
+ }
}
void init(final Context context, final AttributeSet attributeSet) {
@@ -222,6 +220,7 @@ public class FloatingActionButton extends AppCompatImageButton {
final LayerDrawable layerDrawable = new LayerDrawable(
new Drawable[]{
+ //TODO(msf); replace these pngs with programatic elevation
getResources().getDrawable(mSize == SIZE_NORMAL ? R.drawable.fab_bg_normal : R.drawable.fab_bg_mini, null),
createFillDrawable(strokeWidth),
createOuterStrokeDrawable(strokeWidth),