package com.reactnativenavigation.params;
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.annotation.ColorInt;
import com.reactnativenavigation.utils.TypefaceLoader;
public class StyleParams {
public Bundle params;
public StyleParams(Bundle params) {
this.params = params;
}
public static class Color {
@ColorInt
private Integer color = null;
public Color() {
color = null;
}
public Color(Integer color) {
this.color = color;
}
public boolean hasColor() {
return color != null;
}
@ColorInt
public int getColor() {
if (!hasColor()) {
throw new RuntimeException("Color undefined");
}
return color;
}
public static Color parse(Bundle bundle, String key) {
return bundle.containsKey(key) ? new Color(bundle.getInt(key)) : new Color();
}
public String getHexColor() {
return String.format("#%06X", (0xFFFFFF & getColor()));
}
public int getColor(int defaultColor) {
return hasColor() ? getColor() : defaultColor;
}
}
public static class Font {
private Typeface typeface;
public Font(String font) {
typeface = new TypefaceLoader(font).getTypeFace();
}
public Font() {
}
public boolean hasFont() {
return typeface != null;
}
public Typeface get() {
if (typeface == null) {
throw new RuntimeException("Font undefined");
}
return typeface;
}
}
public Orientation orientation;
public Color statusBarColor;
public Color contextualMenuStatusBarColor;
public Color contextualMenuButtonsColor;
public Color contextualMenuBackgroundColor;
public Color topBarColor;
public CollapsingTopBarParams collapsingTopBarParams;
public boolean topBarCollapseOnScroll;
public boolean topBarElevationShadowEnabled;
public boolean topTabsHidden;
public boolean drawScreenBelowTopBar;
public boolean titleBarHidden;
public boolean titleBarHideOnScroll;
public boolean topBarTransparent;
public boolean topBarTranslucent;
public Color titleBarTitleColor;
public Color titleBarSubtitleColor;
public Color titleBarButtonColor;
public Color titleBarDisabledButtonColor;
public Font titleBarTitleFont;
public boolean titleBarTitleTextCentered;
public boolean backButtonHidden;
public Color topTabTextColor;
public Color topTabIconColor;
public Color selectedTopTabTextColor;
public Color selectedTopTabIconColor;
public int selectedTopTabIndicatorHeight;
public Color selectedTopTabIndicatorColor;
public boolean topTabsScrollable;
public Color screenBackgroundColor;
public boolean drawScreenAboveBottomTabs;
public Color snackbarButtonColor;
public boolean bottomTabsHidden;
public boolean bottomTabsHiddenOnScroll;
public Color bottomTabsColor;
public Color selectedBottomTabsButtonColor;
public Color bottomTabsButtonColor;
public boolean forceTitlesDisplay;
public Color bottomTabBadgeTextColor;
public Color bottomTabBadgeBackgroundColor;
public Font bottomTabFontFamily;
public Color navigationBarColor;
}