fab: properly get theme color
Harsh changed this before, but my original way is what the support library does internally. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
parent
dea60e13c0
commit
d636e13717
@ -7,7 +7,6 @@
|
|||||||
package com.wireguard.android.widget.fab;
|
package com.wireguard.android.widget.fab;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
import android.graphics.*;
|
import android.graphics.*;
|
||||||
import android.graphics.Paint.Style;
|
import android.graphics.Paint.Style;
|
||||||
@ -19,7 +18,6 @@ import android.support.annotation.*;
|
|||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.support.v7.widget.AppCompatImageButton;
|
import android.support.v7.widget.AppCompatImageButton;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.TypedValue;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.wireguard.android.R;
|
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) {
|
public static int getColorFromTheme(final Context context, final int themeResource, @ColorRes final int fallback) {
|
||||||
final TypedValue typedValue = new TypedValue();
|
final TypedArray a = context.obtainStyledAttributes(new int[]{themeResource});
|
||||||
final Resources.Theme theme = context.getTheme();
|
try {
|
||||||
theme.resolveAttribute(themeResource, typedValue, true);
|
return a.getColor(0, ContextCompat.getColor(context, fallback));
|
||||||
@ColorInt final int color = typedValue.data;
|
} finally {
|
||||||
return color == 0 ? fallback : color;
|
a.recycle();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void init(final Context context, final AttributeSet attributeSet) {
|
void init(final Context context, final AttributeSet attributeSet) {
|
||||||
@ -222,6 +220,7 @@ public class FloatingActionButton extends AppCompatImageButton {
|
|||||||
|
|
||||||
final LayerDrawable layerDrawable = new LayerDrawable(
|
final LayerDrawable layerDrawable = new LayerDrawable(
|
||||||
new Drawable[]{
|
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),
|
getResources().getDrawable(mSize == SIZE_NORMAL ? R.drawable.fab_bg_normal : R.drawable.fab_bg_mini, null),
|
||||||
createFillDrawable(strokeWidth),
|
createFillDrawable(strokeWidth),
|
||||||
createOuterStrokeDrawable(strokeWidth),
|
createOuterStrokeDrawable(strokeWidth),
|
||||||
|
Loading…
Reference in New Issue
Block a user