mirror of https://github.com/tuskyapp/Tusky.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.6 KiB
68 lines
2.6 KiB
/* 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 |
|
* <http://www.gnu.org/licenses/>. */ |
|
|
|
package com.keylesspalace.tusky; |
|
|
|
import android.content.Context; |
|
import android.graphics.Color; |
|
import android.graphics.PorterDuff; |
|
import android.graphics.drawable.Drawable; |
|
import android.support.annotation.AttrRes; |
|
import android.support.annotation.ColorInt; |
|
import android.support.annotation.DrawableRes; |
|
import android.support.v4.content.ContextCompat; |
|
import android.util.TypedValue; |
|
import android.widget.ImageView; |
|
|
|
class ThemeUtils { |
|
static Drawable getDrawable(Context context, @AttrRes int attribute, |
|
@DrawableRes int fallbackDrawable) { |
|
TypedValue value = new TypedValue(); |
|
@DrawableRes int resourceId; |
|
if (context.getTheme().resolveAttribute(attribute, value, true)) { |
|
resourceId = value.resourceId; |
|
} else { |
|
resourceId = fallbackDrawable; |
|
} |
|
return ContextCompat.getDrawable(context, resourceId); |
|
} |
|
|
|
static @DrawableRes int getDrawableId(Context context, @AttrRes int attribute, |
|
@DrawableRes int fallbackDrawableId) { |
|
TypedValue value = new TypedValue(); |
|
if (context.getTheme().resolveAttribute(attribute, value, true)) { |
|
return value.resourceId; |
|
} else { |
|
return fallbackDrawableId; |
|
} |
|
} |
|
|
|
static @ColorInt int getColor(Context context, @AttrRes int attribute) { |
|
TypedValue value = new TypedValue(); |
|
if (context.getTheme().resolveAttribute(attribute, value, true)) { |
|
return value.data; |
|
} else { |
|
return Color.BLACK; |
|
} |
|
} |
|
|
|
static void setImageViewTint(ImageView view, @AttrRes int attribute) { |
|
view.setColorFilter(getColor(view.getContext(), attribute), PorterDuff.Mode.SRC_IN); |
|
} |
|
|
|
static void setDrawableTint(Context context, Drawable drawable, @AttrRes int attribute) { |
|
drawable.setColorFilter(getColor(context, attribute), PorterDuff.Mode.SRC_IN); |
|
} |
|
}
|
|
|