com.facebook.react.views.text.DefaultStyleValuesUtil Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of react-native Show documentation
Show all versions of react-native Show documentation
A framework for building native apps with React
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
package com.facebook.react.views.text;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
/**
* Utility class that access default values from style
*/
public final class DefaultStyleValuesUtil {
private DefaultStyleValuesUtil() {
throw new AssertionError("Never invoke this for an Utility class!");
}
/**
* Utility method that returns the default text hint color as define by the theme
*
* @param context The Context
* @return The ColorStateList for the hint text as defined in the style
*/
public static ColorStateList getDefaultTextColorHint(Context context) {
return getDefaultTextAttribute(context, android.R.attr.textColorHint);
}
/**
* Utility method that returns the default text color as define by the theme
*
* @param context The Context
* @return The ColorStateList for the text as defined in the style
*/
public static ColorStateList getDefaultTextColor(Context context) {
return getDefaultTextAttribute(context, android.R.attr.textColor);
}
/**
* Utility method that returns the default text highlight color as define by the theme
*
* @param context The Context
* @return The int for the highlight color as defined in the style
*/
public static int getDefaultTextColorHighlight(Context context) {
return getDefaultTextAttribute(context, android.R.attr.textColorHighlight).getDefaultColor();
}
private static ColorStateList getDefaultTextAttribute(Context context, int attribute) {
Resources.Theme theme = context.getTheme();
TypedArray textAppearances = null;
try {
textAppearances = theme.obtainStyledAttributes(new int[]{attribute});
ColorStateList textColor = textAppearances.getColorStateList(0);
return textColor;
} finally {
if (textAppearances != null) {
textAppearances.recycle();
}
}
}
}