From 939b955af84a69dd027040664725f3c150683076 Mon Sep 17 00:00:00 2001 From: Aurimas Liutikas Date: Mon, 16 Apr 2018 16:55:01 -0700 Subject: [PATCH 1/4] Migrate setup-wizard-lib to androidx. Test: make setup-wizard-lib Bug: 76692459 Change-Id: I40171e973d442b1a1815e9e7d7c2cc984cb38bac Merged-In: I40171e973d442b1a1815e9e7d7c2cc984cb38bac (cherry picked from commit 4860e4ee4876743b52cb03f2fce3c213ad7a2f6a) --- library/Android.bp | 12 ++++++------ library/common-gingerbread.mk | 8 ++++---- .../res/layout/suw_items_expandable_switch.xml | 2 +- .../gingerbread/res/layout/suw_items_switch.xml | 2 +- .../android/setupwizardlib/items/SwitchItem.java | 3 ++- .../util/LinkAccessibilityHelper.java | 15 ++++++++------- .../setupwizardlib/view/NavigationBarButton.java | 3 ++- .../android/setupwizardlib/view/RichTextView.java | 5 +++-- .../items/ButtonItemDrawingTest.java | 3 ++- .../test/util/DrawingTestActivity.java | 2 +- .../util/LinkAccessibilityHelperTest.java | 9 +++++---- .../setupwizardlib/items/SwitchItemTest.java | 3 ++- .../com/android/setupwizardlib/GlifLayout.java | 7 ++++--- .../setupwizardlib/GlifPatternDrawable.java | 5 +++-- .../setupwizardlib/SetupWizardItemsLayout.java | 3 ++- .../android/setupwizardlib/TemplateLayout.java | 9 +++++---- .../setupwizardlib/items/ReflectionInflater.java | 5 +++-- .../setupwizardlib/items/SimpleInflater.java | 3 ++- .../com/android/setupwizardlib/span/LinkSpan.java | 3 ++- .../template/ButtonFooterMixin.java | 9 +++++---- .../setupwizardlib/template/HeaderMixin.java | 7 ++++--- .../setupwizardlib/template/IconMixin.java | 3 ++- .../setupwizardlib/template/ListMixin.java | 7 ++++--- .../template/ListViewScrollHandlingDelegate.java | 5 +++-- .../setupwizardlib/template/ProgressBarMixin.java | 3 ++- .../template/RequireScrollMixin.java | 7 ++++--- .../ScrollViewScrollHandlingDelegate.java | 5 +++-- .../setupwizardlib/util/FallbackThemeWrapper.java | 3 ++- .../com/android/setupwizardlib/util/Partner.java | 11 ++++++----- .../setupwizardlib/util/SystemBarHelper.java | 3 ++- .../setupwizardlib/util/WizardManagerHelper.java | 5 +++-- .../setupwizardlib/view/BottomScrollView.java | 3 ++- .../view/CheckableLinearLayout.java | 3 ++- .../view/IllustrationVideoView.java | 7 ++++--- .../setupwizardlib/view/NavigationBar.java | 3 ++- .../suw_preference_recycler_view_normal.xml | 2 +- .../res/layout/suw_recycler_template_card.xml | 2 +- .../layout/suw_recycler_template_card_wide.xml | 2 +- .../suw_recycler_template_header_collapsed.xml | 2 +- .../setupwizardlib/DividerItemDecoration.java | 9 +++++---- .../setupwizardlib/GlifPreferenceLayout.java | 3 ++- .../setupwizardlib/GlifRecyclerLayout.java | 7 ++++--- .../SetupWizardPreferenceLayout.java | 3 ++- .../setupwizardlib/SetupWizardRecyclerLayout.java | 9 +++++---- .../setupwizardlib/items/ItemViewHolder.java | 3 ++- .../setupwizardlib/items/RecyclerItemAdapter.java | 5 +++-- .../setupwizardlib/template/RecyclerMixin.java | 13 +++++++------ .../RecyclerViewScrollHandlingDelegate.java | 7 ++++--- .../setupwizardlib/view/HeaderRecyclerView.java | 3 ++- .../items/RecyclerItemAdapterTest.java | 3 ++- .../template/RecyclerMixinTest.java | 5 +++-- .../test/DividerItemDecorationTest.java | 5 +++-- .../test/GlifPreferenceLayoutTest.java | 3 ++- .../test/GlifRecyclerLayoutTest.java | 5 +++-- .../test/HeaderRecyclerViewTest.java | 3 ++- .../test/SetupWizardPreferenceLayoutTest.java | 3 ++- .../test/SetupWizardRecyclerLayoutTest.java | 7 ++++--- .../RecyclerViewScrollHandlingDelegateTest.java | 4 ++-- library/standalone-rules.gradle | 6 +++--- .../template/ButtonFooterMixinTest.java | 3 ++- .../test/ReflectionInflaterTest.java | 3 ++- .../test/SetupWizardLayoutTest.java | 3 ++- .../setupwizardlib/test/SimpleInflaterTest.java | 3 ++- .../test/util/DrawingTestHelper.java | 3 ++- .../setupwizardlib/test/util/MockWindow.java | 3 ++- .../android/setupwizardlib/GlifLayoutTest.java | 3 ++- .../setupwizardlib/util/GlifStyleTest.java | 3 ++- .../setupwizardlib/util/GlifV3StyleTest.java | 3 ++- .../util/WizardManagerHelperTest.java | 3 ++- .../view/IllustrationVideoViewTest.java | 3 ++- tools/gradle/repositories.properties | 1 + 71 files changed, 197 insertions(+), 137 deletions(-) diff --git a/library/Android.bp b/library/Android.bp index 13fcea9..61cd83a 100644 --- a/library/Android.bp +++ b/library/Android.bp @@ -5,7 +5,7 @@ android_library { name: "setup-wizard-lib", - libs: ["android-support-annotations"], + libs: ["androidx.annotation_annotation"], manifest: "main/AndroidManifest.xml", resource_dirs: [ "main/res", @@ -40,11 +40,11 @@ android_library { ], libs: [ - "android-support-annotations", - "android-support-compat", - "android-support-core-ui", - "android-support-v7-appcompat", - "android-support-v7-recyclerview", + "androidx.annotation_annotation", + "androidx.core_core", + "androidx.legacy_legacy-support-core-ui", + "androidx.appcompat_appcompat", + "androidx.recyclerview_recyclerview", ], min_sdk_version: "14", diff --git a/library/common-gingerbread.mk b/library/common-gingerbread.mk index 70231df..2ab06b6 100644 --- a/library/common-gingerbread.mk +++ b/library/common-gingerbread.mk @@ -19,10 +19,10 @@ ifeq (,$(findstring setup-wizard-lib-gingerbread-compat,$(LOCAL_STATIC_ANDROID_L LOCAL_STATIC_ANDROID_LIBRARIES += setup-wizard-lib-gingerbread-compat endif -ifeq (,$(findstring android-support-v7-appcompat,$(LOCAL_STATIC_ANDROID_LIBRARIES))) - LOCAL_STATIC_ANDROID_LIBRARIES += android-support-v7-appcompat +ifeq (,$(findstring androidx.appcompat_appcompat,$(LOCAL_STATIC_ANDROID_LIBRARIES))) + LOCAL_STATIC_ANDROID_LIBRARIES += androidx.appcompat_appcompat endif -ifeq (,$(findstring android-support-v7-recyclerview,$(LOCAL_STATIC_ANDROID_LIBRARIES))) - LOCAL_STATIC_ANDROID_LIBRARIES += android-support-v7-recyclerview +ifeq (,$(findstring androidx.recyclerview_recyclerview,$(LOCAL_STATIC_ANDROID_LIBRARIES))) + LOCAL_STATIC_ANDROID_LIBRARIES += androidx.recyclerview_recyclerview endif diff --git a/library/gingerbread/res/layout/suw_items_expandable_switch.xml b/library/gingerbread/res/layout/suw_items_expandable_switch.xml index 21c2c22..f134b3f 100644 --- a/library/gingerbread/res/layout/suw_items_expandable_switch.xml +++ b/library/gingerbread/res/layout/suw_items_expandable_switch.xml @@ -97,7 +97,7 @@ android:layout_marginTop="@dimen/suw_switch_divider_padding_top" android:background="?android:attr/listDivider" /> - - * * @see com.android.setupwizardlib.view.RichTextView - * @see android.support.v4.widget.ExploreByTouchHelper + * @see androidx.customview.widget.ExploreByTouchHelper */ public class LinkAccessibilityHelper extends AccessibilityDelegateCompat { diff --git a/library/gingerbread/src/com/android/setupwizardlib/view/NavigationBarButton.java b/library/gingerbread/src/com/android/setupwizardlib/view/NavigationBarButton.java index d7a3c2e..872cc9f 100644 --- a/library/gingerbread/src/com/android/setupwizardlib/view/NavigationBarButton.java +++ b/library/gingerbread/src/com/android/setupwizardlib/view/NavigationBarButton.java @@ -23,10 +23,11 @@ import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.graphics.drawable.LayerDrawable; import android.os.Build; -import android.support.annotation.NonNull; import android.util.AttributeSet; import android.widget.Button; +import androidx.annotation.NonNull; + /** * Button for navigation bar, which includes tinting of its compound drawables to be used for dark * and light themes. diff --git a/library/gingerbread/src/com/android/setupwizardlib/view/RichTextView.java b/library/gingerbread/src/com/android/setupwizardlib/view/RichTextView.java index 1b1f82e..1ee3219 100644 --- a/library/gingerbread/src/com/android/setupwizardlib/view/RichTextView.java +++ b/library/gingerbread/src/com/android/setupwizardlib/view/RichTextView.java @@ -20,8 +20,6 @@ import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; -import android.support.v4.view.ViewCompat; -import android.support.v7.widget.AppCompatTextView; import android.text.Annotation; import android.text.SpannableString; import android.text.Spanned; @@ -32,6 +30,9 @@ import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; +import androidx.appcompat.widget.AppCompatTextView; +import androidx.core.view.ViewCompat; + import com.android.setupwizardlib.span.LinkSpan; import com.android.setupwizardlib.span.LinkSpan.OnLinkClickListener; import com.android.setupwizardlib.span.SpanHelper; diff --git a/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/items/ButtonItemDrawingTest.java b/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/items/ButtonItemDrawingTest.java index b97905c..f5b8253 100644 --- a/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/items/ButtonItemDrawingTest.java +++ b/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/items/ButtonItemDrawingTest.java @@ -18,7 +18,6 @@ package com.android.setupwizardlib.items; import static org.junit.Assert.assertTrue; -import android.support.annotation.StyleRes; import android.support.test.annotation.UiThreadTest; import android.support.test.filters.SmallTest; import android.support.test.rule.UiThreadTestRule; @@ -27,6 +26,8 @@ import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; +import androidx.annotation.StyleRes; + import com.android.setupwizardlib.R; import com.android.setupwizardlib.test.util.DrawingTestHelper; diff --git a/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/test/util/DrawingTestActivity.java b/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/test/util/DrawingTestActivity.java index 154339a..d3518f4 100644 --- a/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/test/util/DrawingTestActivity.java +++ b/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/test/util/DrawingTestActivity.java @@ -16,7 +16,7 @@ package com.android.setupwizardlib.test.util; -import android.support.v7.app.AppCompatActivity; +import androidx.appcompat.app.AppCompatActivity; /** * Activity to test view and drawable drawing behaviors. This is used to make sure that the drawing diff --git a/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/util/LinkAccessibilityHelperTest.java b/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/util/LinkAccessibilityHelperTest.java index 6228e6f..7b4ad4d 100644 --- a/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/util/LinkAccessibilityHelperTest.java +++ b/library/gingerbread/test/instrumentation/src/com/android/setupwizardlib/util/LinkAccessibilityHelperTest.java @@ -28,10 +28,6 @@ import android.os.Bundle; import android.support.test.InstrumentationRegistry; import android.support.test.filters.SmallTest; import android.support.test.runner.AndroidJUnit4; -import android.support.v4.text.BidiFormatter; -import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; -import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat; -import android.support.v4.widget.ExploreByTouchHelper; import android.text.SpannableStringBuilder; import android.util.DisplayMetrics; import android.util.TypedValue; @@ -41,6 +37,11 @@ import android.view.accessibility.AccessibilityEvent; import android.widget.FrameLayout; import android.widget.TextView; +import androidx.core.text.BidiFormatter; +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; +import androidx.core.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat; +import androidx.customview.widget.ExploreByTouchHelper; + import com.android.setupwizardlib.span.LinkSpan; import com.android.setupwizardlib.util.LinkAccessibilityHelper.PreOLinkAccessibilityHelper; diff --git a/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/SwitchItemTest.java b/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/SwitchItemTest.java index dd26af9..05d6e5b 100644 --- a/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/SwitchItemTest.java +++ b/library/gingerbread/test/robotest/src/com/android/setupwizardlib/items/SwitchItemTest.java @@ -26,7 +26,6 @@ import static org.robolectric.RuntimeEnvironment.application; import android.annotation.TargetApi; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; -import android.support.v7.widget.SwitchCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -34,6 +33,8 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; +import androidx.appcompat.widget.SwitchCompat; + import com.android.setupwizardlib.R; import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner; diff --git a/library/main/src/com/android/setupwizardlib/GlifLayout.java b/library/main/src/com/android/setupwizardlib/GlifLayout.java index e1d9d70..9b30c2f 100644 --- a/library/main/src/com/android/setupwizardlib/GlifLayout.java +++ b/library/main/src/com/android/setupwizardlib/GlifLayout.java @@ -24,9 +24,6 @@ import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Build.VERSION_CODES; -import android.support.annotation.LayoutRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; @@ -36,6 +33,10 @@ import android.widget.ProgressBar; import android.widget.ScrollView; import android.widget.TextView; +import androidx.annotation.LayoutRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.android.setupwizardlib.template.ButtonFooterMixin; import com.android.setupwizardlib.template.ColoredHeaderMixin; import com.android.setupwizardlib.template.HeaderMixin; diff --git a/library/main/src/com/android/setupwizardlib/GlifPatternDrawable.java b/library/main/src/com/android/setupwizardlib/GlifPatternDrawable.java index c1d968a..caf92ac 100644 --- a/library/main/src/com/android/setupwizardlib/GlifPatternDrawable.java +++ b/library/main/src/com/android/setupwizardlib/GlifPatternDrawable.java @@ -31,8 +31,9 @@ import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Build; -import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; + +import androidx.annotation.NonNull; +import androidx.annotation.VisibleForTesting; import java.lang.ref.SoftReference; diff --git a/library/main/src/com/android/setupwizardlib/SetupWizardItemsLayout.java b/library/main/src/com/android/setupwizardlib/SetupWizardItemsLayout.java index 5a39d70..d520873 100644 --- a/library/main/src/com/android/setupwizardlib/SetupWizardItemsLayout.java +++ b/library/main/src/com/android/setupwizardlib/SetupWizardItemsLayout.java @@ -17,10 +17,11 @@ package com.android.setupwizardlib; import android.content.Context; -import android.support.annotation.Nullable; import android.util.AttributeSet; import android.widget.ListAdapter; +import androidx.annotation.Nullable; + import com.android.setupwizardlib.items.ItemAdapter; /** diff --git a/library/main/src/com/android/setupwizardlib/TemplateLayout.java b/library/main/src/com/android/setupwizardlib/TemplateLayout.java index d270091..0108880 100644 --- a/library/main/src/com/android/setupwizardlib/TemplateLayout.java +++ b/library/main/src/com/android/setupwizardlib/TemplateLayout.java @@ -20,9 +20,6 @@ import android.annotation.TargetApi; import android.content.Context; import android.content.res.TypedArray; import android.os.Build.VERSION_CODES; -import android.support.annotation.Keep; -import android.support.annotation.LayoutRes; -import android.support.annotation.StyleRes; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; @@ -30,6 +27,10 @@ import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.widget.FrameLayout; +import androidx.annotation.Keep; +import androidx.annotation.LayoutRes; +import androidx.annotation.StyleRes; + import com.android.setupwizardlib.template.Mixin; import com.android.setupwizardlib.util.FallbackThemeWrapper; @@ -229,7 +230,7 @@ public class TemplateLayout extends FrameLayout { * stripped out by proguard when using this with {@link android.animation.ObjectAnimator}. You * may need to add * - * -keep @android.support.annotation.Keep class * + * -keep @androidx.annotation.Keep class * * * to your proguard configuration if you are seeing mysterious {@link NoSuchMethodError} at * runtime. diff --git a/library/main/src/com/android/setupwizardlib/items/ReflectionInflater.java b/library/main/src/com/android/setupwizardlib/items/ReflectionInflater.java index c7af410..8ffa943 100644 --- a/library/main/src/com/android/setupwizardlib/items/ReflectionInflater.java +++ b/library/main/src/com/android/setupwizardlib/items/ReflectionInflater.java @@ -17,11 +17,12 @@ package com.android.setupwizardlib.items; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.InflateException; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import java.lang.reflect.Constructor; import java.util.HashMap; diff --git a/library/main/src/com/android/setupwizardlib/items/SimpleInflater.java b/library/main/src/com/android/setupwizardlib/items/SimpleInflater.java index 141438b..0b12aca 100644 --- a/library/main/src/com/android/setupwizardlib/items/SimpleInflater.java +++ b/library/main/src/com/android/setupwizardlib/items/SimpleInflater.java @@ -18,12 +18,13 @@ package com.android.setupwizardlib.items; import android.content.res.Resources; import android.content.res.XmlResourceParser; -import android.support.annotation.NonNull; import android.util.AttributeSet; import android.util.Log; import android.util.Xml; import android.view.InflateException; +import androidx.annotation.NonNull; + import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; diff --git a/library/main/src/com/android/setupwizardlib/span/LinkSpan.java b/library/main/src/com/android/setupwizardlib/span/LinkSpan.java index 26a3d16..3dd783b 100644 --- a/library/main/src/com/android/setupwizardlib/span/LinkSpan.java +++ b/library/main/src/com/android/setupwizardlib/span/LinkSpan.java @@ -20,7 +20,6 @@ import android.content.Context; import android.content.ContextWrapper; import android.graphics.Typeface; import android.os.Build; -import android.support.annotation.Nullable; import android.text.Selection; import android.text.Spannable; import android.text.TextPaint; @@ -29,6 +28,8 @@ import android.util.Log; import android.view.View; import android.widget.TextView; +import androidx.annotation.Nullable; + /** * A clickable span that will listen for click events and send it back to the context. To use this * class, implement {@link OnLinkClickListener} in your TextView, or use diff --git a/library/main/src/com/android/setupwizardlib/template/ButtonFooterMixin.java b/library/main/src/com/android/setupwizardlib/template/ButtonFooterMixin.java index 01dbc29..a8580a3 100644 --- a/library/main/src/com/android/setupwizardlib/template/ButtonFooterMixin.java +++ b/library/main/src/com/android/setupwizardlib/template/ButtonFooterMixin.java @@ -18,10 +18,6 @@ package com.android.setupwizardlib.template; import android.annotation.SuppressLint; import android.content.Context; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; -import android.support.annotation.StyleRes; import android.view.ContextThemeWrapper; import android.view.LayoutInflater; import android.view.View; @@ -30,6 +26,11 @@ import android.widget.Button; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; +import androidx.annotation.StyleRes; + import com.android.setupwizardlib.R; import com.android.setupwizardlib.TemplateLayout; diff --git a/library/main/src/com/android/setupwizardlib/template/HeaderMixin.java b/library/main/src/com/android/setupwizardlib/template/HeaderMixin.java index bd3f210..604de9a 100644 --- a/library/main/src/com/android/setupwizardlib/template/HeaderMixin.java +++ b/library/main/src/com/android/setupwizardlib/template/HeaderMixin.java @@ -17,12 +17,13 @@ package com.android.setupwizardlib.template; import android.content.res.TypedArray; -import android.support.annotation.AttrRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.util.AttributeSet; import android.widget.TextView; +import androidx.annotation.AttrRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.android.setupwizardlib.R; import com.android.setupwizardlib.TemplateLayout; diff --git a/library/main/src/com/android/setupwizardlib/template/IconMixin.java b/library/main/src/com/android/setupwizardlib/template/IconMixin.java index 5386c92..5f5c915 100644 --- a/library/main/src/com/android/setupwizardlib/template/IconMixin.java +++ b/library/main/src/com/android/setupwizardlib/template/IconMixin.java @@ -19,11 +19,12 @@ package com.android.setupwizardlib.template; import android.content.Context; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; -import android.support.annotation.DrawableRes; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; +import androidx.annotation.DrawableRes; + import com.android.setupwizardlib.R; import com.android.setupwizardlib.TemplateLayout; diff --git a/library/main/src/com/android/setupwizardlib/template/ListMixin.java b/library/main/src/com/android/setupwizardlib/template/ListMixin.java index 10e85a9..cbc29b5 100644 --- a/library/main/src/com/android/setupwizardlib/template/ListMixin.java +++ b/library/main/src/com/android/setupwizardlib/template/ListMixin.java @@ -21,15 +21,16 @@ import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Build.VERSION_CODES; -import android.support.annotation.AttrRes; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.View; import android.widget.HeaderViewListAdapter; import android.widget.ListAdapter; import android.widget.ListView; +import androidx.annotation.AttrRes; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.android.setupwizardlib.R; import com.android.setupwizardlib.TemplateLayout; import com.android.setupwizardlib.items.ItemAdapter; diff --git a/library/main/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegate.java b/library/main/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegate.java index f55d06d..faea305 100644 --- a/library/main/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegate.java +++ b/library/main/src/com/android/setupwizardlib/template/ListViewScrollHandlingDelegate.java @@ -16,13 +16,14 @@ package com.android.setupwizardlib.template; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.util.Log; import android.widget.AbsListView; import android.widget.ListAdapter; import android.widget.ListView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.android.setupwizardlib.template.RequireScrollMixin.ScrollHandlingDelegate; /** diff --git a/library/main/src/com/android/setupwizardlib/template/ProgressBarMixin.java b/library/main/src/com/android/setupwizardlib/template/ProgressBarMixin.java index eecf99c..504b2f0 100644 --- a/library/main/src/com/android/setupwizardlib/template/ProgressBarMixin.java +++ b/library/main/src/com/android/setupwizardlib/template/ProgressBarMixin.java @@ -19,11 +19,12 @@ package com.android.setupwizardlib.template; import android.content.res.ColorStateList; import android.os.Build; import android.os.Build.VERSION_CODES; -import android.support.annotation.Nullable; import android.view.View; import android.view.ViewStub; import android.widget.ProgressBar; +import androidx.annotation.Nullable; + import com.android.setupwizardlib.R; import com.android.setupwizardlib.TemplateLayout; diff --git a/library/main/src/com/android/setupwizardlib/template/RequireScrollMixin.java b/library/main/src/com/android/setupwizardlib/template/RequireScrollMixin.java index 231c064..fd3303b 100644 --- a/library/main/src/com/android/setupwizardlib/template/RequireScrollMixin.java +++ b/library/main/src/com/android/setupwizardlib/template/RequireScrollMixin.java @@ -18,13 +18,14 @@ package com.android.setupwizardlib.template; import android.os.Handler; import android.os.Looper; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.support.annotation.StringRes; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.StringRes; + import com.android.setupwizardlib.TemplateLayout; import com.android.setupwizardlib.view.NavigationBar; diff --git a/library/main/src/com/android/setupwizardlib/template/ScrollViewScrollHandlingDelegate.java b/library/main/src/com/android/setupwizardlib/template/ScrollViewScrollHandlingDelegate.java index d159465..9e4d1cf 100644 --- a/library/main/src/com/android/setupwizardlib/template/ScrollViewScrollHandlingDelegate.java +++ b/library/main/src/com/android/setupwizardlib/template/ScrollViewScrollHandlingDelegate.java @@ -16,11 +16,12 @@ package com.android.setupwizardlib.template; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; import android.util.Log; import android.widget.ScrollView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import com.android.setupwizardlib.template.RequireScrollMixin.ScrollHandlingDelegate; import com.android.setupwizardlib.view.BottomScrollView; import com.android.setupwizardlib.view.BottomScrollView.BottomScrollListener; diff --git a/library/main/src/com/android/setupwizardlib/util/FallbackThemeWrapper.java b/library/main/src/com/android/setupwizardlib/util/FallbackThemeWrapper.java index 975927b..2ec4f84 100644 --- a/library/main/src/com/android/setupwizardlib/util/FallbackThemeWrapper.java +++ b/library/main/src/com/android/setupwizardlib/util/FallbackThemeWrapper.java @@ -18,9 +18,10 @@ package com.android.setupwizardlib.util; import android.content.Context; import android.content.res.Resources.Theme; -import android.support.annotation.StyleRes; import android.view.ContextThemeWrapper; +import androidx.annotation.StyleRes; + /** * Same as {@link ContextThemeWrapper}, but the base context's theme attributes take precedence * over the wrapper context's. This is used to provide default values for theme attributes diff --git a/library/main/src/com/android/setupwizardlib/util/Partner.java b/library/main/src/com/android/setupwizardlib/util/Partner.java index baf66d1..9eaedc3 100644 --- a/library/main/src/com/android/setupwizardlib/util/Partner.java +++ b/library/main/src/com/android/setupwizardlib/util/Partner.java @@ -26,13 +26,14 @@ import android.content.res.Resources; import android.graphics.drawable.Drawable; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; -import android.support.annotation.AnyRes; -import android.support.annotation.ColorRes; -import android.support.annotation.DrawableRes; -import android.support.annotation.StringRes; -import android.support.annotation.VisibleForTesting; import android.util.Log; +import androidx.annotation.AnyRes; +import androidx.annotation.ColorRes; +import androidx.annotation.DrawableRes; +import androidx.annotation.StringRes; +import androidx.annotation.VisibleForTesting; + import java.util.List; /** diff --git a/library/main/src/com/android/setupwizardlib/util/SystemBarHelper.java b/library/main/src/com/android/setupwizardlib/util/SystemBarHelper.java index b31e82e..7e3e885 100644 --- a/library/main/src/com/android/setupwizardlib/util/SystemBarHelper.java +++ b/library/main/src/com/android/setupwizardlib/util/SystemBarHelper.java @@ -24,7 +24,6 @@ import android.content.res.TypedArray; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.os.Handler; -import android.support.annotation.RequiresPermission; import android.util.Log; import android.view.View; import android.view.ViewGroup; @@ -32,6 +31,8 @@ import android.view.Window; import android.view.WindowInsets; import android.view.WindowManager; +import androidx.annotation.RequiresPermission; + /** * A helper class to manage the system navigation bar and status bar. This will add various * systemUiVisibility flags to the given Window or View to make them follow the Setup Wizard style. diff --git a/library/main/src/com/android/setupwizardlib/util/WizardManagerHelper.java b/library/main/src/com/android/setupwizardlib/util/WizardManagerHelper.java index cf9ddac..0628192 100644 --- a/library/main/src/com/android/setupwizardlib/util/WizardManagerHelper.java +++ b/library/main/src/com/android/setupwizardlib/util/WizardManagerHelper.java @@ -22,8 +22,9 @@ import android.content.res.Resources.Theme; import android.os.Build.VERSION; import android.os.Build.VERSION_CODES; import android.provider.Settings; -import android.support.annotation.StyleRes; -import android.support.annotation.VisibleForTesting; + +import androidx.annotation.StyleRes; +import androidx.annotation.VisibleForTesting; import com.android.setupwizardlib.R; diff --git a/library/main/src/com/android/setupwizardlib/view/BottomScrollView.java b/library/main/src/com/android/setupwizardlib/view/BottomScrollView.java index aac6668..eeb40a9 100644 --- a/library/main/src/com/android/setupwizardlib/view/BottomScrollView.java +++ b/library/main/src/com/android/setupwizardlib/view/BottomScrollView.java @@ -17,11 +17,12 @@ package com.android.setupwizardlib.view; import android.content.Context; -import android.support.annotation.VisibleForTesting; import android.util.AttributeSet; import android.view.View; import android.widget.ScrollView; +import androidx.annotation.VisibleForTesting; + /** * An extension of ScrollView that will invoke a listener callback when the ScrollView needs * scrolling, and when the ScrollView is being scrolled to the bottom. This is often used in Setup diff --git a/library/main/src/com/android/setupwizardlib/view/CheckableLinearLayout.java b/library/main/src/com/android/setupwizardlib/view/CheckableLinearLayout.java index bd0aead..9605f99 100644 --- a/library/main/src/com/android/setupwizardlib/view/CheckableLinearLayout.java +++ b/library/main/src/com/android/setupwizardlib/view/CheckableLinearLayout.java @@ -19,11 +19,12 @@ package com.android.setupwizardlib.view; import android.annotation.TargetApi; import android.content.Context; import android.os.Build.VERSION_CODES; -import android.support.annotation.Nullable; import android.util.AttributeSet; import android.widget.Checkable; import android.widget.LinearLayout; +import androidx.annotation.Nullable; + /** * A LinearLayout which is checkable. This will set the checked state when * {@link #onCreateDrawableState(int)} is called, and can be used with diff --git a/library/main/src/com/android/setupwizardlib/view/IllustrationVideoView.java b/library/main/src/com/android/setupwizardlib/view/IllustrationVideoView.java index e5c2fb1..6d31583 100644 --- a/library/main/src/com/android/setupwizardlib/view/IllustrationVideoView.java +++ b/library/main/src/com/android/setupwizardlib/view/IllustrationVideoView.java @@ -23,15 +23,16 @@ import android.graphics.SurfaceTexture; import android.graphics.drawable.Animatable; import android.media.MediaPlayer; import android.os.Build.VERSION_CODES; -import android.support.annotation.Nullable; -import android.support.annotation.RawRes; -import android.support.annotation.VisibleForTesting; import android.util.AttributeSet; import android.util.Log; import android.view.Surface; import android.view.TextureView; import android.view.View; +import androidx.annotation.Nullable; +import androidx.annotation.RawRes; +import androidx.annotation.VisibleForTesting; + import com.android.setupwizardlib.R; /** diff --git a/library/main/src/com/android/setupwizardlib/view/NavigationBar.java b/library/main/src/com/android/setupwizardlib/view/NavigationBar.java index 2a1dd28..9971bac 100644 --- a/library/main/src/com/android/setupwizardlib/view/NavigationBar.java +++ b/library/main/src/com/android/setupwizardlib/view/NavigationBar.java @@ -21,13 +21,14 @@ import android.content.Context; import android.content.res.TypedArray; import android.graphics.Color; import android.os.Build.VERSION_CODES; -import android.support.annotation.StyleableRes; import android.util.AttributeSet; import android.view.ContextThemeWrapper; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; +import androidx.annotation.StyleableRes; + import com.android.setupwizardlib.R; /** diff --git a/library/recyclerview/res/layout/suw_preference_recycler_view_normal.xml b/library/recyclerview/res/layout/suw_preference_recycler_view_normal.xml index 0979d91..088a35c 100644 --- a/library/recyclerview/res/layout/suw_preference_recycler_view_normal.xml +++ b/library/recyclerview/res/layout/suw_preference_recycler_view_normal.xml @@ -15,7 +15,7 @@ limitations under the License. --> - - - - Date: Thu, 17 May 2018 14:54:09 -0700 Subject: [PATCH 2/4] Release IllustrationVideoView in onStop. DO NOT MERGE Based on the view's visibility, release or reattach IllustrationVideoView as soon as it becomes invisible to avoid media player resources being held on for a long time, and to avoid multiple video views being released all at once at the end of setup wizard. Test: ./gradlew test connectedAndroidTest Bug: 78360819 Bug: 117581782 Change-Id: Idc5af901122562d12ff3d7b1ee46012b7a60cf25 (cherry picked from commit 6ffb792f4620dcab24f71b24536c1c2d90996a0e) --- .../view/IllustrationVideoView.java | 55 +++++++++++++++++-- .../view/IllustrationVideoViewTest.java | 28 ++++++++++ 2 files changed, 79 insertions(+), 4 deletions(-) diff --git a/library/main/src/com/android/setupwizardlib/view/IllustrationVideoView.java b/library/main/src/com/android/setupwizardlib/view/IllustrationVideoView.java index e5c2fb1..fd1e176 100644 --- a/library/main/src/com/android/setupwizardlib/view/IllustrationVideoView.java +++ b/library/main/src/com/android/setupwizardlib/view/IllustrationVideoView.java @@ -64,6 +64,8 @@ public class IllustrationVideoView extends TextureView implements Animatable, @VisibleForTesting Surface mSurface; + protected int mWindowVisibility; + public IllustrationVideoView(Context context, AttributeSet attrs) { super(context, attrs); final TypedArray a = context.obtainStyledAttributes(attrs, @@ -124,7 +126,7 @@ public class IllustrationVideoView extends TextureView implements Animatable, * Creates a media player for the current URI. The media player will be started immediately if * the view's window is visible. If there is an existing media player, it will be released. */ - private void createMediaPlayer() { + protected void createMediaPlayer() { if (mMediaPlayer != null) { mMediaPlayer.release(); } @@ -149,11 +151,35 @@ public class IllustrationVideoView extends TextureView implements Animatable, } else { Log.wtf(TAG, "Unable to initialize media player for video view"); } - if (getWindowVisibility() == View.VISIBLE) { + if (mWindowVisibility == View.VISIBLE) { start(); } } + protected void createSurface() { + if (mSurface != null) { + mSurface.release(); + mSurface = null; + } + // Reattach only if it has been previously released + SurfaceTexture surfaceTexture = getSurfaceTexture(); + if (surfaceTexture != null) { + setVisibility(View.INVISIBLE); + mSurface = new Surface(surfaceTexture); + } + } + + @Override + protected void onWindowVisibilityChanged(int visibility) { + super.onWindowVisibilityChanged(visibility); + mWindowVisibility = visibility; + if (visibility == View.VISIBLE) { + reattach(); + } else { + release(); + } + } + /** * Whether the media player should play the video in a continuous loop. The default value is * true. @@ -178,14 +204,34 @@ public class IllustrationVideoView extends TextureView implements Animatable, } } + private void reattach() { + if (mSurface == null) { + initVideo(); + } + } + + private void initVideo() { + if (mWindowVisibility != View.VISIBLE) { + return; + } + createSurface(); + if (mSurface != null) { + createMediaPlayer(); + } else { + Log.w("IllustrationVideoView", "Surface creation failed"); + } + } + + protected void onRenderingStart() { + } + /* SurfaceTextureListener methods */ @Override public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) { // Keep the view hidden until video starts setVisibility(View.INVISIBLE); - mSurface = new Surface(surfaceTexture); - createMediaPlayer(); + initVideo(); } @Override @@ -230,6 +276,7 @@ public class IllustrationVideoView extends TextureView implements Animatable, if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) { // Video available, show view now setVisibility(View.VISIBLE); + onRenderingStart(); } return false; } diff --git a/library/test/robotest/src/com/android/setupwizardlib/view/IllustrationVideoViewTest.java b/library/test/robotest/src/com/android/setupwizardlib/view/IllustrationVideoViewTest.java index 21822a4..a501506 100644 --- a/library/test/robotest/src/com/android/setupwizardlib/view/IllustrationVideoViewTest.java +++ b/library/test/robotest/src/com/android/setupwizardlib/view/IllustrationVideoViewTest.java @@ -16,6 +16,8 @@ package com.android.setupwizardlib.view; +import static com.google.common.truth.Truth.assertThat; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; @@ -31,6 +33,7 @@ import android.media.MediaPlayer; import android.os.Build.VERSION_CODES; import android.support.annotation.RawRes; import android.view.Surface; +import android.view.View; import com.android.setupwizardlib.R; import com.android.setupwizardlib.robolectric.SuwLibRobolectricTestRunner; @@ -90,6 +93,30 @@ public class IllustrationVideoViewTest { } } + @Test + public void onVisibilityChanged_notVisible_shouldRelease() { + createDefaultView(); + mView.onWindowVisibilityChanged(View.GONE); + + verify(ShadowMockMediaPlayer.sMediaPlayer).release(); + assertThat(mView.mSurface).isNull(); + assertThat(mView.mMediaPlayer).isNull(); + } + + @Test + public void onVisibilityChanged_visible_shouldPlay() { + createDefaultView(); + + mView.onWindowVisibilityChanged(View.GONE); + assertThat(mView.mSurface).isNull(); + assertThat(mView.mMediaPlayer).isNull(); + + mView.onWindowVisibilityChanged(View.VISIBLE); + + assertThat(mView.mSurface).isNotNull(); + assertThat(mView.mMediaPlayer).isNotNull(); + } + @Test public void testPausedWhenWindowFocusLost() { createDefaultView(); @@ -148,6 +175,7 @@ public class IllustrationVideoViewTest { // Any resource attribute should work, since the media player is mocked .addAttribute(R.attr.suwVideo, "@android:color/white") .build()); + mView.setSurfaceTexture(mock(SurfaceTexture.class)); mView.onSurfaceTextureAvailable(mSurfaceTexture, 500, 500); } From 3d125f433a0e50d2a10a7d3fbfae59e627b2b399 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Tue, 25 Dec 2018 18:02:22 -0800 Subject: [PATCH 3/4] Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 64712476 Change-Id: I6c22f8d7081309e491041c18df78c31b7f948a88 --- library/main/res/values-hi/strings.xml | 2 +- library/main/res/values-mr/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/library/main/res/values-hi/strings.xml b/library/main/res/values-hi/strings.xml index 3fb41d3..ec2cd77 100644 --- a/library/main/res/values-hi/strings.xml +++ b/library/main/res/values-hi/strings.xml @@ -19,5 +19,5 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> "आगे बढ़ें" "पीछे" - "अधिक" + "ज़्यादा" diff --git a/library/main/res/values-mr/strings.xml b/library/main/res/values-mr/strings.xml index a529655..5c5b6c2 100644 --- a/library/main/res/values-mr/strings.xml +++ b/library/main/res/values-mr/strings.xml @@ -17,7 +17,7 @@ - "पुढील" + "पुढे जा" "मागे" "अधिक" From e2c985c6026ef0e1f6b8161fcb1de165d6e403ce Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sun, 13 Jan 2019 02:13:10 -0800 Subject: [PATCH 4/4] Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 64712476 Change-Id: I01cb129cea53e45d093b1411268b9c077f53f6be --- navigationbar/res/values-fi/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/navigationbar/res/values-fi/strings.xml b/navigationbar/res/values-fi/strings.xml index 1bf32f2..c0718e3 100644 --- a/navigationbar/res/values-fi/strings.xml +++ b/navigationbar/res/values-fi/strings.xml @@ -2,5 +2,5 @@ "Seuraava" - "Edellinen" + "Takaisin"