mirror of
https://github.com/material-components/material-components-android.git
synced 2026-02-20 08:39:55 +08:00
Build support libs with AAPT2
Use AAPT2 to build the framework support libraries. Apps built with AAPT2 can more efficiently link against these libraries by specifying their module name in LOCAL_STATIC_ANDROID_LIBRARIES. Ex: LOCAL_STATIC_ANDROID_LIBRARIES := android-support-v7-appcompat android-support-v4 Apps built with AAPT2 do not need to specify --auto-add-overlay or --extra-packages, as these are automatically added as needed by the build system. This change will not affect any apps that currently depend on the support libraries. This is because they import the resources directly. We use LOCAL_JAR_EXCLUDE_FILES := none only to support javac when building javadoc. Jack builds are correct because the build system passes in the latest generated R.java ahead of any previous ones packaged in classes.jack. This means we can dynamically reference a support lib module, correctly seeing non-final R.java. Then at app package time, we only include the final R.java generated by the AAPT2 packaging step. Bug:25958912 Change-Id: I71bff080ff2694aa3df1c8a67d933e2daab0f245 GitOrigin-RevId=0dac8d82e2a249d7c9c42ab259389e11cac15400 PiperOrigin-RevId: 140560475
This commit is contained in:
parent
e89eec227d
commit
ecc159f2e4
55
Android.mk
55
Android.mk
@ -14,22 +14,23 @@
|
||||
|
||||
LOCAL_PATH := $(call my-dir)
|
||||
|
||||
# Android libraries referenced by this module's resources.
|
||||
resource_libs := \
|
||||
android-support-v7-appcompat \
|
||||
android-support-v7-recyclerview
|
||||
|
||||
# Build the resources using the latest applicable SDK version.
|
||||
# We do this here because the final static library must be compiled with an older
|
||||
# SDK version than the resources. The resources library and the R class that it
|
||||
# contains will not be linked into the final static library.
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_USE_AAPT2 := true
|
||||
LOCAL_MODULE := android-support-design-res
|
||||
LOCAL_SDK_VERSION := $(SUPPORT_CURRENT_SDK_VERSION)
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, dummy)
|
||||
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res \
|
||||
frameworks/support/v7/appcompat/res \
|
||||
frameworks/support/v7/recyclerview/res
|
||||
LOCAL_AAPT_FLAGS := \
|
||||
--auto-add-overlay \
|
||||
--extra-packages android.support.v7.appcompat \
|
||||
--extra-packages android.support.v7.recyclerview \
|
||||
--no-version-vectors
|
||||
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
|
||||
LOCAL_SHARED_ANDROID_LIBRARIES := $(resource_libs)
|
||||
LOCAL_AAPT_FLAGS := --no-version-vectors
|
||||
LOCAL_JAR_EXCLUDE_FILES := none
|
||||
LOCAL_JAVA_LANGUAGE_VERSION := 1.7
|
||||
include $(BUILD_STATIC_JAVA_LIBRARY)
|
||||
@ -42,7 +43,8 @@ include $(CLEAR_VARS)
|
||||
LOCAL_MODULE := android-support-design-base
|
||||
LOCAL_SDK_VERSION := 7
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, base)
|
||||
LOCAL_JAVA_LIBRARIES := android-support-design-res \
|
||||
LOCAL_JAVA_LIBRARIES := \
|
||||
android-support-design-res \
|
||||
android-support-v4 \
|
||||
android-support-v7-appcompat \
|
||||
android-support-v7-recyclerview
|
||||
@ -57,7 +59,8 @@ LOCAL_MODULE := android-support-design-eclair-mr1
|
||||
LOCAL_SDK_VERSION := 7
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, eclair-mr1)
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := android-support-design-base
|
||||
LOCAL_JAVA_LIBRARIES := android-support-design-res \
|
||||
LOCAL_JAVA_LIBRARIES := \
|
||||
android-support-design-res \
|
||||
android-support-v4 \
|
||||
android-support-v7-appcompat \
|
||||
android-support-v7-recyclerview
|
||||
@ -72,7 +75,8 @@ LOCAL_MODULE := android-support-design-honeycomb
|
||||
LOCAL_SDK_VERSION := 11
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, honeycomb)
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := android-support-design-eclair-mr1
|
||||
LOCAL_JAVA_LIBRARIES := android-support-design-res \
|
||||
LOCAL_JAVA_LIBRARIES := \
|
||||
android-support-design-res \
|
||||
android-support-v4 \
|
||||
android-support-v7-appcompat \
|
||||
android-support-v7-recyclerview
|
||||
@ -87,7 +91,8 @@ LOCAL_MODULE := android-support-design-honeycomb-mr1
|
||||
LOCAL_SDK_VERSION := 12
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, honeycomb-mr1)
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := android-support-design-honeycomb
|
||||
LOCAL_JAVA_LIBRARIES := android-support-design-res \
|
||||
LOCAL_JAVA_LIBRARIES := \
|
||||
android-support-design-res \
|
||||
android-support-v4 \
|
||||
android-support-v7-appcompat \
|
||||
android-support-v7-recyclerview
|
||||
@ -102,7 +107,8 @@ LOCAL_MODULE := android-support-design-ics
|
||||
LOCAL_SDK_VERSION := 14
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, ics)
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := android-support-design-honeycomb-mr1
|
||||
LOCAL_JAVA_LIBRARIES := android-support-design-res \
|
||||
LOCAL_JAVA_LIBRARIES := \
|
||||
android-support-design-res \
|
||||
android-support-v4 \
|
||||
android-support-v7-appcompat \
|
||||
android-support-v7-recyclerview
|
||||
@ -117,7 +123,8 @@ LOCAL_MODULE := android-support-design-lollipop
|
||||
LOCAL_SDK_VERSION := 21
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, lollipop)
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := android-support-design-ics
|
||||
LOCAL_JAVA_LIBRARIES := android-support-design-res \
|
||||
LOCAL_JAVA_LIBRARIES := \
|
||||
android-support-design-res \
|
||||
android-support-v4 \
|
||||
android-support-v7-appcompat \
|
||||
android-support-v7-recyclerview
|
||||
@ -127,18 +134,24 @@ include $(BUILD_STATIC_JAVA_LIBRARY)
|
||||
support_module_src_files += $(LOCAL_SRC_FILES)
|
||||
|
||||
# Here is the final static library that apps can link against.
|
||||
# The R class is automatically excluded from the generated library.
|
||||
# Applications that use this library must specify LOCAL_RESOURCE_DIR
|
||||
# in their makefiles to include the resources in their package.
|
||||
# Applications that use this library must specify
|
||||
#
|
||||
# LOCAL_STATIC_ANDROID_LIBRARIES := \
|
||||
# android-support-design \
|
||||
# android-support-v7-appcompat \
|
||||
# android-support-v7-recyclerview \
|
||||
# android-support-v4
|
||||
#
|
||||
# in their makefiles to include the resources and their dependencies in their package.
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_USE_AAPT2 := true
|
||||
LOCAL_MODULE := android-support-design
|
||||
LOCAL_SDK_VERSION := $(SUPPORT_CURRENT_SDK_VERSION)
|
||||
LOCAL_SRC_FILES := $(call all-java-files-under, src)
|
||||
LOCAL_STATIC_JAVA_LIBRARIES := android-support-design-lollipop
|
||||
LOCAL_JAVA_LIBRARIES := android-support-design-res \
|
||||
android-support-v4 \
|
||||
android-support-v7-appcompat \
|
||||
android-support-v7-recyclerview
|
||||
LOCAL_STATIC_ANDROID_LIBRARIES := android-support-design-res
|
||||
LOCAL_SHARED_ANDROID_LIBRARIES := $(resource_libs) android-support-v4
|
||||
LOCAL_JAR_EXCLUDE_FILES := none
|
||||
LOCAL_JAVA_LANGUAGE_VERSION := 1.7
|
||||
include $(BUILD_STATIC_JAVA_LIBRARY)
|
||||
|
||||
|
||||
@ -108,7 +108,8 @@ public class NavigationMenuItemView extends ForegroundLinearLayout implements Me
|
||||
|
||||
private StateListDrawable createDefaultBackground() {
|
||||
TypedValue value = new TypedValue();
|
||||
if (getContext().getTheme().resolveAttribute(R.attr.colorControlHighlight, value, true)) {
|
||||
if (getContext().getTheme().resolveAttribute(
|
||||
android.support.v7.appcompat.R.attr.colorControlHighlight, value, true)) {
|
||||
StateListDrawable drawable = new StateListDrawable();
|
||||
drawable.addState(CHECKED_STATE_SET, new ColorDrawable(value.data));
|
||||
drawable.addState(EMPTY_STATE_SET, new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
@ -194,19 +194,26 @@ final class CollapsingTextHelper {
|
||||
}
|
||||
|
||||
void setCollapsedTextAppearance(int resId) {
|
||||
TypedArray a = mView.getContext().obtainStyledAttributes(resId, R.styleable.TextAppearance);
|
||||
if (a.hasValue(R.styleable.TextAppearance_android_textColor)) {
|
||||
TypedArray a = mView.getContext().obtainStyledAttributes(resId,
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance);
|
||||
if (a.hasValue(android.support.v7.appcompat.R.styleable.TextAppearance_android_textColor)) {
|
||||
mCollapsedTextColor = a.getColor(
|
||||
R.styleable.TextAppearance_android_textColor, mCollapsedTextColor);
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_textColor,
|
||||
mCollapsedTextColor);
|
||||
}
|
||||
if (a.hasValue(R.styleable.TextAppearance_android_textSize)) {
|
||||
if (a.hasValue(android.support.v7.appcompat.R.styleable.TextAppearance_android_textSize)) {
|
||||
mCollapsedTextSize = a.getDimensionPixelSize(
|
||||
R.styleable.TextAppearance_android_textSize, (int) mCollapsedTextSize);
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_textSize,
|
||||
(int) mCollapsedTextSize);
|
||||
}
|
||||
mCollapsedShadowColor = a.getInt(R.styleable.TextAppearance_android_shadowColor, 0);
|
||||
mCollapsedShadowDx = a.getFloat(R.styleable.TextAppearance_android_shadowDx, 0);
|
||||
mCollapsedShadowDy = a.getFloat(R.styleable.TextAppearance_android_shadowDy, 0);
|
||||
mCollapsedShadowRadius = a.getFloat(R.styleable.TextAppearance_android_shadowRadius, 0);
|
||||
mCollapsedShadowColor = a.getInt(
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_shadowColor, 0);
|
||||
mCollapsedShadowDx = a.getFloat(
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_shadowDx, 0);
|
||||
mCollapsedShadowDy = a.getFloat(
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_shadowDy, 0);
|
||||
mCollapsedShadowRadius = a.getFloat(
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_shadowRadius, 0);
|
||||
a.recycle();
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 16) {
|
||||
@ -217,19 +224,26 @@ final class CollapsingTextHelper {
|
||||
}
|
||||
|
||||
void setExpandedTextAppearance(int resId) {
|
||||
TypedArray a = mView.getContext().obtainStyledAttributes(resId, R.styleable.TextAppearance);
|
||||
if (a.hasValue(R.styleable.TextAppearance_android_textColor)) {
|
||||
TypedArray a = mView.getContext().obtainStyledAttributes(resId,
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance);
|
||||
if (a.hasValue(android.support.v7.appcompat.R.styleable.TextAppearance_android_textColor)) {
|
||||
mExpandedTextColor = a.getColor(
|
||||
R.styleable.TextAppearance_android_textColor, mExpandedTextColor);
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_textColor,
|
||||
mExpandedTextColor);
|
||||
}
|
||||
if (a.hasValue(R.styleable.TextAppearance_android_textSize)) {
|
||||
if (a.hasValue(android.support.v7.appcompat.R.styleable.TextAppearance_android_textSize)) {
|
||||
mExpandedTextSize = a.getDimensionPixelSize(
|
||||
R.styleable.TextAppearance_android_textSize, (int) mExpandedTextSize);
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_textSize,
|
||||
(int) mExpandedTextSize);
|
||||
}
|
||||
mExpandedShadowColor = a.getInt(R.styleable.TextAppearance_android_shadowColor, 0);
|
||||
mExpandedShadowDx = a.getFloat(R.styleable.TextAppearance_android_shadowDx, 0);
|
||||
mExpandedShadowDy = a.getFloat(R.styleable.TextAppearance_android_shadowDy, 0);
|
||||
mExpandedShadowRadius = a.getFloat(R.styleable.TextAppearance_android_shadowRadius, 0);
|
||||
mExpandedShadowColor = a.getInt(
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_shadowColor, 0);
|
||||
mExpandedShadowDx = a.getFloat(
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_shadowDx, 0);
|
||||
mExpandedShadowDy = a.getFloat(
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_shadowDy, 0);
|
||||
mExpandedShadowRadius = a.getFloat(
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_shadowRadius, 0);
|
||||
a.recycle();
|
||||
|
||||
if (Build.VERSION.SDK_INT >= 16) {
|
||||
|
||||
@ -179,7 +179,7 @@ public class CollapsingToolbarLayout extends FrameLayout {
|
||||
mCollapsingTextHelper.setExpandedTextAppearance(
|
||||
R.style.TextAppearance_Design_CollapsingToolbar_Expanded);
|
||||
mCollapsingTextHelper.setCollapsedTextAppearance(
|
||||
R.style.TextAppearance_AppCompat_Widget_ActionBar_Title);
|
||||
android.support.v7.appcompat.R.style.TextAppearance_AppCompat_Widget_ActionBar_Title);
|
||||
|
||||
// Now overlay any custom text appearances
|
||||
if (a.hasValue(R.styleable.CollapsingToolbarLayout_expandedTitleTextAppearance)) {
|
||||
|
||||
@ -413,7 +413,8 @@ public class NavigationView extends ScrimInsetsFrameLayout {
|
||||
return null;
|
||||
}
|
||||
ColorStateList baseColor = getResources().getColorStateList(value.resourceId);
|
||||
if (!getContext().getTheme().resolveAttribute(R.attr.colorPrimary, value, true)) {
|
||||
if (!getContext().getTheme().resolveAttribute(
|
||||
android.support.v7.appcompat.R.attr.colorPrimary, value, true)) {
|
||||
return null;
|
||||
}
|
||||
int colorPrimary = value.data;
|
||||
|
||||
@ -299,10 +299,12 @@ public class TabLayout extends HorizontalScrollView {
|
||||
|
||||
// Text colors/sizes come from the text appearance first
|
||||
final TypedArray ta = context.obtainStyledAttributes(mTabTextAppearance,
|
||||
R.styleable.TextAppearance);
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance);
|
||||
try {
|
||||
mTabTextSize = ta.getDimensionPixelSize(R.styleable.TextAppearance_android_textSize, 0);
|
||||
mTabTextColors = ta.getColorStateList(R.styleable.TextAppearance_android_textColor);
|
||||
mTabTextSize = ta.getDimensionPixelSize(
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_textSize, 0);
|
||||
mTabTextColors = ta.getColorStateList(
|
||||
android.support.v7.appcompat.R.styleable.TextAppearance_android_textColor);
|
||||
} finally {
|
||||
ta.recycle();
|
||||
}
|
||||
|
||||
@ -494,7 +494,7 @@ public class TextInputLayout extends LinearLayout {
|
||||
// Probably caused by our theme not extending from Theme.Design*. Instead
|
||||
// we manually set something appropriate
|
||||
mErrorView.setTextAppearance(getContext(),
|
||||
R.style.TextAppearance_AppCompat_Caption);
|
||||
android.support.v7.appcompat.R.style.TextAppearance_AppCompat_Caption);
|
||||
mErrorView.setTextColor(ContextCompat.getColor(
|
||||
getContext(), R.color.design_textinput_error_color_light));
|
||||
}
|
||||
@ -615,7 +615,7 @@ public class TextInputLayout extends LinearLayout {
|
||||
// Probably caused by our theme not extending from Theme.Design*. Instead
|
||||
// we manually set something appropriate
|
||||
mCounterView.setTextAppearance(getContext(),
|
||||
R.style.TextAppearance_AppCompat_Caption);
|
||||
android.support.v7.appcompat.R.style.TextAppearance_AppCompat_Caption);
|
||||
mCounterView.setTextColor(ContextCompat.getColor(
|
||||
getContext(), R.color.design_textinput_error_color_light));
|
||||
}
|
||||
|
||||
@ -22,7 +22,9 @@ import android.support.design.R;
|
||||
|
||||
class ThemeUtils {
|
||||
|
||||
private static final int[] APPCOMPAT_CHECK_ATTRS = { R.attr.colorPrimary };
|
||||
private static final int[] APPCOMPAT_CHECK_ATTRS = {
|
||||
android.support.v7.appcompat.R.attr.colorPrimary
|
||||
};
|
||||
|
||||
static void checkAppCompatTheme(Context context) {
|
||||
TypedArray a = context.obtainStyledAttributes(APPCOMPAT_CHECK_ATTRS);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user