Created
August 26, 2015 03:59
-
-
Save mgp/8b813d26a34b90a9d8da to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public Toolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { | |
super(context, attrs, defStyleAttr); | |
// Need to use getContext() here so that we use the themed context | |
final TintTypedArray a = TintTypedArray.obtainStyledAttributes(getContext(), attrs, | |
R.styleable.Toolbar, defStyleAttr, 0); | |
mTitleTextAppearance = a.getResourceId(R.styleable.Toolbar_titleTextAppearance, 0); | |
mSubtitleTextAppearance = a.getResourceId(R.styleable.Toolbar_subtitleTextAppearance, 0); | |
mGravity = a.getInteger(R.styleable.Toolbar_android_gravity, mGravity); | |
mButtonGravity = Gravity.TOP; | |
mTitleMarginStart = mTitleMarginEnd = mTitleMarginTop = mTitleMarginBottom = | |
a.getDimensionPixelOffset(R.styleable.Toolbar_titleMargins, 0); | |
final int marginStart = a.getDimensionPixelOffset(R.styleable.Toolbar_titleMarginStart, -1); | |
if (marginStart >= 0) { | |
mTitleMarginStart = marginStart; | |
} | |
final int marginEnd = a.getDimensionPixelOffset(R.styleable.Toolbar_titleMarginEnd, -1); | |
if (marginEnd >= 0) { | |
mTitleMarginEnd = marginEnd; | |
} | |
final int marginTop = a.getDimensionPixelOffset(R.styleable.Toolbar_titleMarginTop, -1); | |
if (marginTop >= 0) { | |
mTitleMarginTop = marginTop; | |
} | |
final int marginBottom = a.getDimensionPixelOffset(R.styleable.Toolbar_titleMarginBottom, | |
-1); | |
if (marginBottom >= 0) { | |
mTitleMarginBottom = marginBottom; | |
} | |
mMaxButtonHeight = a.getDimensionPixelSize(R.styleable.Toolbar_maxButtonHeight, -1); | |
final int contentInsetStart = | |
a.getDimensionPixelOffset(R.styleable.Toolbar_contentInsetStart, | |
RtlSpacingHelper.UNDEFINED); | |
final int contentInsetEnd = | |
a.getDimensionPixelOffset(R.styleable.Toolbar_contentInsetEnd, | |
RtlSpacingHelper.UNDEFINED); | |
final int contentInsetLeft = | |
a.getDimensionPixelSize(R.styleable.Toolbar_contentInsetLeft, 0); | |
final int contentInsetRight = | |
a.getDimensionPixelSize(R.styleable.Toolbar_contentInsetRight, 0); | |
mContentInsets.setAbsolute(contentInsetLeft, contentInsetRight); | |
if (contentInsetStart != RtlSpacingHelper.UNDEFINED || | |
contentInsetEnd != RtlSpacingHelper.UNDEFINED) { | |
mContentInsets.setRelative(contentInsetStart, contentInsetEnd); | |
} | |
mCollapseIcon = a.getDrawable(R.styleable.Toolbar_collapseIcon); | |
mCollapseDescription = a.getText(R.styleable.Toolbar_collapseContentDescription); | |
final CharSequence title = a.getText(R.styleable.Toolbar_title); | |
if (!TextUtils.isEmpty(title)) { | |
setTitle(title); | |
} | |
final CharSequence subtitle = a.getText(R.styleable.Toolbar_subtitle); | |
if (!TextUtils.isEmpty(subtitle)) { | |
setSubtitle(subtitle); | |
} | |
// Set the default context, since setPopupTheme() may be a no-op. | |
mPopupContext = getContext(); | |
setPopupTheme(a.getResourceId(R.styleable.Toolbar_popupTheme, 0)); | |
final Drawable navIcon = a.getDrawable(R.styleable.Toolbar_navigationIcon); | |
if (navIcon != null) { | |
setNavigationIcon(navIcon); | |
} | |
final CharSequence navDesc = a.getText(R.styleable.Toolbar_navigationContentDescription); | |
if (!TextUtils.isEmpty(navDesc)) { | |
setNavigationContentDescription(navDesc); | |
} | |
a.recycle(); | |
// Keep the TintManager in case we need it later | |
mTintManager = a.getTintManager(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment