diff --git a/library/eclair-mr1/res/drawable/suw_card_bg_dark.xml b/library/eclair-mr1/res/drawable/suw_card_bg_dark.xml index e3d29d7..cd115cf 100644 --- a/library/eclair-mr1/res/drawable/suw_card_bg_dark.xml +++ b/library/eclair-mr1/res/drawable/suw_card_bg_dark.xml @@ -16,12 +16,13 @@ --> + xmlns:tools="http://schemas.android.com/tools" android:shape="rectangle"> - + + diff --git a/library/eclair-mr1/res/drawable/suw_card_bg_light.xml b/library/eclair-mr1/res/drawable/suw_card_bg_light.xml index b6d6233..cd40dbe 100644 --- a/library/eclair-mr1/res/drawable/suw_card_bg_light.xml +++ b/library/eclair-mr1/res/drawable/suw_card_bg_light.xml @@ -16,12 +16,13 @@ --> + xmlns:tools="http://schemas.android.com/tools" android:shape="rectangle"> - + + diff --git a/library/eclair-mr1/res/drawable/suw_navbar_btn_bg_dark.xml b/library/eclair-mr1/res/drawable/suw_navbar_btn_bg_dark.xml index 7f7f378..f4131e5 100644 --- a/library/eclair-mr1/res/drawable/suw_navbar_btn_bg_dark.xml +++ b/library/eclair-mr1/res/drawable/suw_navbar_btn_bg_dark.xml @@ -15,10 +15,12 @@ limitations under the License. --> - + - + + diff --git a/library/eclair-mr1/res/drawable/suw_navbar_btn_bg_light.xml b/library/eclair-mr1/res/drawable/suw_navbar_btn_bg_light.xml index 15b567c..5d3bcfa 100644 --- a/library/eclair-mr1/res/drawable/suw_navbar_btn_bg_light.xml +++ b/library/eclair-mr1/res/drawable/suw_navbar_btn_bg_light.xml @@ -15,10 +15,13 @@ limitations under the License. --> - + - + + diff --git a/library/eclair-mr1/test/src/com/android/setupwizardlib/test/RichTextViewTest.java b/library/eclair-mr1/test/src/com/android/setupwizardlib/test/RichTextViewTest.java index 31b9561..2e2b01e 100644 --- a/library/eclair-mr1/test/src/com/android/setupwizardlib/test/RichTextViewTest.java +++ b/library/eclair-mr1/test/src/com/android/setupwizardlib/test/RichTextViewTest.java @@ -20,6 +20,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import android.annotation.SuppressLint; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; @@ -96,6 +97,7 @@ public class RichTextViewTest { } + @SuppressLint("SetTextI18n") // It's OK. This is just a test. @Test public void testTextContainingNoLinksAreNotFocusable() { RichTextView textView = new RichTextView(InstrumentationRegistry.getContext()); @@ -108,6 +110,7 @@ public class RichTextViewTest { // Based on the text contents of the text view, the "focusable" property of the element // should also be automatically changed. + @SuppressLint("SetTextI18n") // It's OK. This is just a test. @Test public void testRichTxtViewFocusChangesWithTextChange() { RichTextView textView = new RichTextView(InstrumentationRegistry.getContext()); diff --git a/library/full-support/res/layout/suw_glif_preference_template_header.xml b/library/full-support/res/layout/suw_glif_preference_template_header.xml index 6377616..b870251 100644 --- a/library/full-support/res/layout/suw_glif_preference_template_header.xml +++ b/library/full-support/res/layout/suw_glif_preference_template_header.xml @@ -16,9 +16,12 @@ --> + android:orientation="vertical" + tools:ignore="UnusedResources"> + - + @layout/suw_preference_recycler_view_header @layout/suw_preference_template_header @layout/suw_recycler_template_header - @layout/suw_recycler_template_header_collapsed + + @layout/suw_recycler_template_header_collapsed + @layout/suw_glif_blank_template_compact @layout/suw_glif_recycler_template_compact diff --git a/library/full-support/src/com/android/setupwizardlib/view/HeaderRecyclerView.java b/library/full-support/src/com/android/setupwizardlib/view/HeaderRecyclerView.java index f9f1b2b..8eae9c0 100644 --- a/library/full-support/src/com/android/setupwizardlib/view/HeaderRecyclerView.java +++ b/library/full-support/src/com/android/setupwizardlib/view/HeaderRecyclerView.java @@ -16,6 +16,7 @@ package com.android.setupwizardlib.view; +import android.annotation.SuppressLint; import android.content.Context; import android.content.res.TypedArray; import android.os.Build; @@ -116,6 +117,8 @@ public class HeaderRecyclerView extends RecyclerView { setHasStableIds(mAdapter.hasStableIds()); } + @SuppressLint("InlinedApi") // MATCH_PARENT is the same constant as FILL_PARENT available + // on earlier versions. @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { /* diff --git a/library/main/AndroidManifest.xml b/library/main/AndroidManifest.xml index 308a7e5..1c9c5ee 100644 --- a/library/main/AndroidManifest.xml +++ b/library/main/AndroidManifest.xml @@ -15,11 +15,6 @@ limitations under the License. --> - - - + diff --git a/library/main/res/animator-ldrtl-v11/suw_slide_back_in.xml b/library/main/res/animator-ldrtl-v11/suw_slide_back_in.xml index 195c8b1..a01dcd8 100644 --- a/library/main/res/animator-ldrtl-v11/suw_slide_back_in.xml +++ b/library/main/res/animator-ldrtl-v11/suw_slide_back_in.xml @@ -19,8 +19,11 @@ setXFraction(float) and getXFraction methods implemented. Also make sure these 2 methods are not stripped out by proguard. --> + android:valueTo="0" + tools:ignore="UnusedResources" /> + diff --git a/library/main/res/animator-ldrtl-v11/suw_slide_back_out.xml b/library/main/res/animator-ldrtl-v11/suw_slide_back_out.xml index a910233..59760ca 100644 --- a/library/main/res/animator-ldrtl-v11/suw_slide_back_out.xml +++ b/library/main/res/animator-ldrtl-v11/suw_slide_back_out.xml @@ -19,8 +19,11 @@ setXFraction(float) and getXFraction methods implemented. Also make sure these 2 methods are not stripped out by proguard. --> + android:valueTo="-1.0" + tools:ignore="UnusedResources" /> + diff --git a/library/main/res/animator-ldrtl-v11/suw_slide_next_in.xml b/library/main/res/animator-ldrtl-v11/suw_slide_next_in.xml index 1b8c68e..a673f40 100644 --- a/library/main/res/animator-ldrtl-v11/suw_slide_next_in.xml +++ b/library/main/res/animator-ldrtl-v11/suw_slide_next_in.xml @@ -19,8 +19,11 @@ setXFraction(float) and getXFraction methods implemented. Also make sure these 2 methods are not stripped out by proguard. --> + android:valueTo="0" + tools:ignore="UnusedResources" /> + diff --git a/library/main/res/animator-ldrtl-v11/suw_slide_next_out.xml b/library/main/res/animator-ldrtl-v11/suw_slide_next_out.xml index 9442096..262e085 100644 --- a/library/main/res/animator-ldrtl-v11/suw_slide_next_out.xml +++ b/library/main/res/animator-ldrtl-v11/suw_slide_next_out.xml @@ -19,8 +19,11 @@ setXFraction(float) and getXFraction methods implemented. Also make sure these 2 methods are not stripped out by proguard. --> + android:valueTo="1.0" + tools:ignore="UnusedResources" /> + diff --git a/library/main/res/drawable-v21/suw_card_bg.xml b/library/main/res/drawable-v21/suw_card_bg.xml index 13d1d4e..f79ca4c 100644 --- a/library/main/res/drawable-v21/suw_card_bg.xml +++ b/library/main/res/drawable-v21/suw_card_bg.xml @@ -15,8 +15,11 @@ limitations under the License. --> + + xmlns:tools="http://schemas.android.com/tools" + android:shape="rectangle" + tools:ignore="UnusedResources"> + android:orientation="horizontal" + tools:ignore="DisableBaselineAlignment"> + + android:orientation="horizontal" + tools:ignore="DisableBaselineAlignment,UnusedResources"> + + + android:orientation="horizontal" + tools:ignore="DisableBaselineAlignment,UnusedResources"> + + + android:layout_height="wrap_content" + android:contentDescription="@null" /> diff --git a/library/main/res/layout/suw_navbar_view.xml b/library/main/res/layout/suw_navbar_view.xml index 38d0ce6..9a57a32 100644 --- a/library/main/res/layout/suw_navbar_view.xml +++ b/library/main/res/layout/suw_navbar_view.xml @@ -15,7 +15,8 @@ limitations under the License. --> - + + android:drawableStart="@drawable/suw_navbar_ic_back" + tools:ignore="RtlHardcoded" /> + + android:visibility="gone" + tools:ignore="RtlHardcoded" /> + + android:text="@string/suw_next_button_label" + tools:ignore="RtlHardcoded" /> + diff --git a/library/main/res/layout/suw_no_scroll_template_header.xml b/library/main/res/layout/suw_no_scroll_template_header.xml index 413b329..48049a1 100644 --- a/library/main/res/layout/suw_no_scroll_template_header.xml +++ b/library/main/res/layout/suw_no_scroll_template_header.xml @@ -56,7 +56,9 @@ android:id="@+id/suw_layout_content" android:layout_width="match_parent" android:layout_height="0dp" - android:layout_weight="1" /> + android:layout_weight="1" + tools:ignore="NestedWeights" /> + diff --git a/library/main/res/values/dimens.xml b/library/main/res/values/dimens.xml index ef2471e..a7c42de 100644 --- a/library/main/res/values/dimens.xml +++ b/library/main/res/values/dimens.xml @@ -15,7 +15,7 @@ limitations under the License. --> - + 40dp @@ -28,7 +28,6 @@ 1dp 24dp 15dp - 16sp 0dp 16dp @@ -60,8 +59,6 @@ 16dp 28dp - 256dp - 0dp @@ -95,11 +92,15 @@ 15dp 20dp - 88dp - 40dp + + 88dp + + 40dp - 72dp - 24dp + + 72dp + + 24dp 1dp @@ -107,7 +108,8 @@ 56dp - 6dp + + 6dp 10dp 56dp 24dp @@ -119,7 +121,9 @@ -7dp 7dp - 16dp - 0dp + + 16dp + + 0dp diff --git a/library/main/res/values/layouts.xml b/library/main/res/values/layouts.xml index 74a6479..08fdef4 100644 --- a/library/main/res/values/layouts.xml +++ b/library/main/res/values/layouts.xml @@ -15,18 +15,35 @@ limitations under the License. --> - + @layout/suw_template_header - @layout/suw_template_header_collapsed + + + + @layout/suw_template_header_collapsed + @layout/suw_list_template_header - @layout/suw_list_template_header_collapsed - @layout/suw_no_scroll_template_header - @layout/suw_no_scroll_template_header_collapsed + + + + @layout/suw_list_template_header_collapsed + + + + @layout/suw_no_scroll_template_header + + + + @layout/suw_no_scroll_template_header_collapsed @layout/suw_glif_template_compact + @layout/suw_glif_list_template_compact - @layout/suw_glif_blank_template_compact + + + + @layout/suw_glif_blank_template_compact diff --git a/library/main/res/values/styles.xml b/library/main/res/values/styles.xml index 731f5a1..e248515 100644 --- a/library/main/res/values/styles.xml +++ b/library/main/res/values/styles.xml @@ -28,7 +28,8 @@ - - - @@ -57,7 +60,8 @@ ?android:attr/textColorSecondary - - - @@ -103,7 +109,7 @@ diff --git a/library/main/src/com/android/setupwizardlib/GlifLayout.java b/library/main/src/com/android/setupwizardlib/GlifLayout.java index 4a38cad..13d35fe 100644 --- a/library/main/src/com/android/setupwizardlib/GlifLayout.java +++ b/library/main/src/com/android/setupwizardlib/GlifLayout.java @@ -16,6 +16,7 @@ package com.android.setupwizardlib; +import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.content.Context; import android.content.res.ColorStateList; @@ -220,6 +221,7 @@ public class GlifLayout extends TemplateLayout { return mPrimaryColor; } + @SuppressLint("InlinedApi") // View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN is guarded by SDK check private void setGlifPatternColor(ColorStateList color) { if (Build.VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) { setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); diff --git a/library/main/src/com/android/setupwizardlib/SetupWizardLayout.java b/library/main/src/com/android/setupwizardlib/SetupWizardLayout.java index ce4896f..79d9222 100644 --- a/library/main/src/com/android/setupwizardlib/SetupWizardLayout.java +++ b/library/main/src/com/android/setupwizardlib/SetupWizardLayout.java @@ -122,7 +122,7 @@ public class SetupWizardLayout extends TemplateLayout { // Set the illustration aspect ratio. See Illustration.setAspectRatio(float). This will - // override suwIllustrationPaddingTop if its value is not 0. + // override suwDecorPaddingTop if its value is not 0. float illustrationAspectRatio = a.getFloat( R.styleable.SuwSetupWizardLayout_suwIllustrationAspectRatio, -1f); if (illustrationAspectRatio == -1f) { diff --git a/library/main/src/com/android/setupwizardlib/util/DrawableLayoutDirectionHelper.java b/library/main/src/com/android/setupwizardlib/util/DrawableLayoutDirectionHelper.java index bf4c0c2..b0afaba 100644 --- a/library/main/src/com/android/setupwizardlib/util/DrawableLayoutDirectionHelper.java +++ b/library/main/src/com/android/setupwizardlib/util/DrawableLayoutDirectionHelper.java @@ -16,6 +16,7 @@ package com.android.setupwizardlib.util; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.drawable.Drawable; import android.graphics.drawable.InsetDrawable; @@ -31,6 +32,7 @@ public class DrawableLayoutDirectionHelper { * Creates an {@link android.graphics.drawable.InsetDrawable} according to the layout direction * of {@code view}. */ + @SuppressLint("InlinedApi") // Use of View.LAYOUT_DIRECTION_RTL is guarded by version check public static InsetDrawable createRelativeInsetDrawable(Drawable drawable, int insetStart, int insetTop, int insetEnd, int insetBottom, View view) { boolean isRtl = Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 @@ -43,6 +45,7 @@ public class DrawableLayoutDirectionHelper { * Creates an {@link android.graphics.drawable.InsetDrawable} according to the layout direction * of {@code context}. */ + @SuppressLint("InlinedApi") // Use of View.LAYOUT_DIRECTION_RTL is guarded by version check public static InsetDrawable createRelativeInsetDrawable(Drawable drawable, int insetStart, int insetTop, int insetEnd, int insetBottom, Context context) { boolean isRtl = false; @@ -59,9 +62,10 @@ public class DrawableLayoutDirectionHelper { * Creates an {@link android.graphics.drawable.InsetDrawable} according to * {@code layoutDirection}. */ + @SuppressLint("InlinedApi") // Given layoutDirection will not be View.LAYOUT_DIRECTION_RTL if + // SDK version doesn't support it. public static InsetDrawable createRelativeInsetDrawable(Drawable drawable, int insetStart, int insetTop, int insetEnd, int insetBottom, int layoutDirection) { - //noinspection AndroidLintInlinedApi return createRelativeInsetDrawable(drawable, insetStart, insetTop, insetEnd, insetBottom, layoutDirection == View.LAYOUT_DIRECTION_RTL); } diff --git a/library/self.gradle b/library/self.gradle index e155fee..26020a6 100644 --- a/library/self.gradle +++ b/library/self.gradle @@ -35,11 +35,11 @@ android.sourceSets { android.defaultConfig.testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" android.lintOptions { - // TODO: Fix lint errors and re-enable fatal lint - abortOnError false + abortOnError true htmlReport true textOutput 'stderr' textReport true + warningsAsErrors true xmlReport false } diff --git a/library/test/src/com/android/setupwizardlib/test/DrawableLayoutDirectionHelperTest.java b/library/test/src/com/android/setupwizardlib/test/DrawableLayoutDirectionHelperTest.java index 2038a70..1aba00c 100644 --- a/library/test/src/com/android/setupwizardlib/test/DrawableLayoutDirectionHelperTest.java +++ b/library/test/src/com/android/setupwizardlib/test/DrawableLayoutDirectionHelperTest.java @@ -19,6 +19,7 @@ package com.android.setupwizardlib.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertSame; +import android.annotation.SuppressLint; import android.content.Context; import android.content.res.Configuration; import android.graphics.Color; @@ -46,6 +47,7 @@ public class DrawableLayoutDirectionHelperTest { @Test public void testCreateRelativeInsetDrawableLtr() { final Drawable drawable = new ColorDrawable(Color.RED); + @SuppressLint("InlinedApi") // Testing with inlined constant is OK here final InsetDrawable insetDrawable = DrawableLayoutDirectionHelper.createRelativeInsetDrawable(drawable, 1 /* start */, 2 /* top */, 3 /* end */, 4 /* bottom */, @@ -63,6 +65,7 @@ public class DrawableLayoutDirectionHelperTest { @Test public void testCreateRelativeInsetDrawableRtl() { final Drawable drawable = new ColorDrawable(Color.RED); + @SuppressLint("InlinedApi") // Testing with inlined constant is OK here final InsetDrawable insetDrawable = DrawableLayoutDirectionHelper.createRelativeInsetDrawable(drawable, 1 /* start */, 2 /* top */, 3 /* end */, 4 /* bottom */, @@ -133,6 +136,7 @@ public class DrawableLayoutDirectionHelperTest { } @Override + @SuppressLint("InlinedApi") // Testing with inlined constant is OK here public int getLayoutDirection() { return View.LAYOUT_DIRECTION_RTL; } diff --git a/library/test/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java b/library/test/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java index 72ab637..1e74bad 100644 --- a/library/test/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java +++ b/library/test/src/com/android/setupwizardlib/test/SetupWizardLayoutTest.java @@ -28,6 +28,7 @@ import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Parcelable; +import android.support.annotation.IdRes; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; @@ -51,6 +52,9 @@ import org.junit.runner.RunWith; @SmallTest public class SetupWizardLayoutTest { + @IdRes + private static final int ID1234 = 1234; + private Context mContext; @Before @@ -179,15 +183,13 @@ public class SetupWizardLayoutTest { @Test public void testOnRestoreFromInstanceState() { final SetupWizardLayout layout = new SetupWizardLayout(mContext); - // noinspection ResourceType - layout.setId(1234); + layout.setId(ID1234); SparseArray container = new SparseArray<>(); layout.saveHierarchyState(container); final SetupWizardLayout layout2 = new SetupWizardLayout(mContext); - // noinspection ResourceType - layout2.setId(1234); + layout2.setId(ID1234); layout2.restoreHierarchyState(container); assertFalse("Progress bar should not be shown", layout2.isProgressBarShown()); @@ -196,8 +198,7 @@ public class SetupWizardLayoutTest { @Test public void testOnRestoreFromInstanceStateProgressBarShown() { final SetupWizardLayout layout = new SetupWizardLayout(mContext); - // noinspection ResourceType - layout.setId(1234); + layout.setId(ID1234); layout.setProgressBarShown(true); @@ -205,8 +206,7 @@ public class SetupWizardLayoutTest { layout.saveHierarchyState(container); final SetupWizardLayout layout2 = new SetupWizardLayout(mContext); - // noinspection ResourceType - layout2.setId(1234); + layout2.setId(ID1234); layout2.restoreHierarchyState(container); assertTrue("Progress bar should be shown", layout2.isProgressBarShown()); @@ -215,8 +215,7 @@ public class SetupWizardLayoutTest { @Test public void testOnRestoreFromIncompatibleInstanceState() { final SetupWizardLayout layout = new SetupWizardLayout(mContext); - // noinspection ResourceType - layout.setId(1234); + layout.setId(ID1234); SparseArray container = new SparseArray<>(); container.put(1234, AbsSavedState.EMPTY_STATE);