diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-12 14:27:29 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-10-13 09:35:20 +0000 |
commit | c30a6232df03e1efbd9f3b226777b07e087a1122 (patch) | |
tree | e992f45784689f373bcc38d1b79a239ebe17ee23 /chromium/components/browser_ui/widget/android | |
parent | 7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (diff) | |
download | qtwebengine-chromium-85-based.tar.gz |
BASELINE: Update Chromium to 85.0.4183.14085-based
Change-Id: Iaa42f4680837c57725b1344f108c0196741f6057
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/browser_ui/widget/android')
24 files changed, 133 insertions, 98 deletions
diff --git a/chromium/components/browser_ui/widget/android/BUILD.gn b/chromium/components/browser_ui/widget/android/BUILD.gn index 2eaf6be1599..0d95a17fd7f 100644 --- a/chromium/components/browser_ui/widget/android/BUILD.gn +++ b/chromium/components/browser_ui/widget/android/BUILD.gn @@ -101,6 +101,7 @@ android_library("java") { "//components/embedder_support/android:util_java", "//third_party/android_deps:android_support_v4_java", "//third_party/android_deps:android_support_v7_appcompat_java", + "//third_party/android_deps:androidx_appcompat_appcompat_resources_java", "//third_party/android_deps:androidx_interpolator_interpolator_java", "//third_party/android_deps:androidx_recyclerview_recyclerview_java", "//ui/android:ui_java", @@ -235,9 +236,11 @@ android_library("javatests") { "//base:base_java_test_support", "//content/public/test/android:content_java_test_support", "//third_party/android_deps:androidx_appcompat_appcompat_java", + "//third_party/android_deps:androidx_appcompat_appcompat_resources_java", "//third_party/android_deps:androidx_core_core_java", "//third_party/android_support_test_runner:rules_java", "//third_party/android_support_test_runner:runner_java", + "//third_party/hamcrest:hamcrest_java", "//third_party/junit", "//ui/android:ui_java", "//ui/android:ui_java_test_support", @@ -284,5 +287,8 @@ java_library("junit") { "//base:base_java_test_support", "//base:base_junit_test_support", "//base/test:test_support_java", + "//third_party/android_deps:robolectric_all_java", + "//third_party/junit", + "//third_party/mockito:mockito_java", ] } diff --git a/chromium/components/browser_ui/widget/android/java/res/layout/promo_dialog_layout.xml b/chromium/components/browser_ui/widget/android/java/res/layout/promo_dialog_layout.xml index 7008991f559..1597e8a35b6 100644 --- a/chromium/components/browser_ui/widget/android/java/res/layout/promo_dialog_layout.xml +++ b/chromium/components/browser_ui/widget/android/java/res/layout/promo_dialog_layout.xml @@ -63,6 +63,7 @@ android:id="@+id/header" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:textDirection="locale" android:layout_marginTop="@dimen/dialog_header_margin" android:layout_marginBottom="@dimen/dialog_header_margin" android:textAppearance="@style/TextAppearance.Headline.Primary" /> @@ -71,6 +72,7 @@ android:id="@+id/subheader" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:textDirection="locale" app:leading="@dimen/text_size_medium_leading" style="@style/TextAppearance.TextMedium.Secondary" /> </org.chromium.components.browser_ui.widget.BoundedLinearLayout> diff --git a/chromium/components/browser_ui/widget/android/java/res/values/dimens.xml b/chromium/components/browser_ui/widget/android/java/res/values/dimens.xml index bb87b51078a..6b5699af985 100644 --- a/chromium/components/browser_ui/widget/android/java/res/values/dimens.xml +++ b/chromium/components/browser_ui/widget/android/java/res/values/dimens.xml @@ -16,7 +16,7 @@ <!-- Dialogs --> <dimen name="dialog_max_width">600dp</dimen> <dimen name="dialog_header_margin">14dp</dimen> - <dimen name="promo_dialog_illustration_margin">24dp</dimen> + <dimen name="promo_dialog_illustration_margin">8dp</dimen> <dimen name="promo_dialog_illustration_width">150dp</dimen> <dimen name="promo_dialog_padding">16dp</dimen> <dimen name="promo_dialog_stacked_margin">16dp</dimen> diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/DualControlLayoutTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/DualControlLayoutTest.java index 81d29b61223..3fb1559fe9e 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/DualControlLayoutTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/DualControlLayoutTest.java @@ -7,7 +7,6 @@ package org.chromium.components.browser_ui.widget; import android.content.Context; import android.support.test.InstrumentationRegistry; import android.support.test.annotation.UiThreadTest; -import android.support.test.filters.SmallTest; import android.support.test.rule.UiThreadTestRule; import android.view.LayoutInflater; import android.view.View; @@ -17,6 +16,8 @@ import android.widget.Button; import android.widget.FrameLayout; import android.widget.Space; +import androidx.test.filters.SmallTest; + import org.junit.Assert; import org.junit.Before; import org.junit.Rule; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/InsetObserverViewTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/InsetObserverViewTest.java index eec6e7e9303..f432e57c7fb 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/InsetObserverViewTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/InsetObserverViewTest.java @@ -12,10 +12,11 @@ import static org.mockito.Mockito.verify; import android.app.Activity; import android.content.Context; import android.graphics.Rect; -import android.support.test.filters.SmallTest; import android.view.WindowInsets; import android.widget.LinearLayout; +import androidx.test.filters.SmallTest; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/MoreProgressButtonTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/MoreProgressButtonTest.java index 150fe66426f..80e15e276f3 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/MoreProgressButtonTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/MoreProgressButtonTest.java @@ -8,13 +8,14 @@ import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; import android.app.Activity; -import android.support.test.filters.MediumTest; -import android.support.test.filters.SmallTest; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; +import androidx.test.filters.MediumTest; +import androidx.test.filters.SmallTest; + import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialog.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialog.java index c7eb7c979bb..56cf042fdd9 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialog.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialog.java @@ -50,6 +50,12 @@ public abstract class PromoDialog extends AlwaysDismissedDialog public int headerStringResource; /** + * Optional: CharSequence to show as promo title. + * This parameter takes precedence over {@link #headerStringResoruce} + */ + public CharSequence headerCharSequence; + + /** * Optional: CharSequence to show as descriptive text. * This parameter takes precedence over {@link #subheaderStringResoruce} */ @@ -67,6 +73,12 @@ public abstract class PromoDialog extends AlwaysDismissedDialog /** Optional: Resource ID of the String to show on the primary/ok button. */ public int primaryButtonStringResource; + /** + * Optional: CharSequence to show on the primary/ok button. + * This parameter takes precedence over {@link #primaryButtonStringResource} + */ + public CharSequence primaryButtonCharSequence; + /** Optional: Resource ID of the String to show on the secondary/cancel button. */ public int secondaryButtonStringResource; } @@ -74,7 +86,7 @@ public abstract class PromoDialog extends AlwaysDismissedDialog private static final int[] CLICKABLE_BUTTON_IDS = {R.id.button_primary, R.id.button_secondary}; private final FrameLayout mScrimView; - private final PromoDialogLayout mDialogLayout; + private PromoDialogLayout mDialogLayout; protected PromoDialog(Activity activity) { super(activity, R.style.PromoDialog); @@ -85,7 +97,6 @@ public abstract class PromoDialog extends AlwaysDismissedDialog LayoutInflater.from(activity).inflate(R.layout.promo_dialog_layout, mScrimView, true); mDialogLayout = (PromoDialogLayout) mScrimView.findViewById(R.id.promo_dialog_layout); - mDialogLayout.initialize(getDialogParams()); } /** @@ -112,6 +123,8 @@ public abstract class PromoDialog extends AlwaysDismissedDialog super.onCreate(savedInstanceState); setContentView(mScrimView); + mDialogLayout.initialize(getDialogParams()); + // Force the window to allow the dialog contents be as wide as necessary. getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialogLayout.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialogLayout.java index d9fc7165c1c..600212068de 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialogLayout.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialogLayout.java @@ -81,8 +81,8 @@ public final class PromoDialogLayout extends BoundedLinearLayout { /** Initializes the dialog contents using the given params. Should only be called once. */ void initialize(DialogParams params) { assert mParams == null && params != null; - assert params.headerStringResource != 0; - assert params.primaryButtonStringResource != 0; + assert params.headerStringResource != 0 || params.headerCharSequence != null; + assert params.primaryButtonStringResource != 0 || params.primaryButtonCharSequence != null; mParams = params; if (mParams.drawableInstance != null) { @@ -99,7 +99,11 @@ public final class PromoDialogLayout extends BoundedLinearLayout { } // Create the header. - mHeaderView.setText(mParams.headerStringResource); + if (mParams.headerCharSequence != null) { + mHeaderView.setText(mParams.headerCharSequence); + } else { + mHeaderView.setText(mParams.headerStringResource); + } // Set up the subheader text. if (mParams.subheaderCharSequence != null) { @@ -124,7 +128,9 @@ public final class PromoDialogLayout extends BoundedLinearLayout { // Create the buttons. DualControlLayout buttonBar = (DualControlLayout) findViewById(R.id.button_bar); - String primaryString = getResources().getString(mParams.primaryButtonStringResource); + String primaryString = mParams.primaryButtonCharSequence != null + ? mParams.primaryButtonCharSequence.toString() + : getResources().getString(mParams.primaryButtonStringResource); buttonBar.addView( DualControlLayout.createButtonForLayout(getContext(), true, primaryString, null)); diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialogTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialogTest.java index df463c2ca1e..0246900b7d4 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialogTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/PromoDialogTest.java @@ -7,7 +7,6 @@ package org.chromium.components.browser_ui.widget; import android.app.Activity; import android.content.DialogInterface; import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; import android.text.method.LinkMovementMethod; import android.view.View; import android.view.View.MeasureSpec; @@ -16,6 +15,7 @@ import android.widget.LinearLayout; import android.widget.TextView; import androidx.core.view.ViewCompat; +import androidx.test.filters.SmallTest; import org.junit.Assert; import org.junit.Test; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonLayoutTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonLayoutTest.java index 4c9eab9f127..c2ac17da022 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonLayoutTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonLayoutTest.java @@ -7,12 +7,13 @@ package org.chromium.components.browser_ui.widget; import android.content.Context; import android.support.test.InstrumentationRegistry; import android.support.test.annotation.UiThreadTest; -import android.support.test.filters.SmallTest; import android.support.test.rule.UiThreadTestRule; import android.view.View; import android.view.ViewGroup.MarginLayoutParams; import android.widget.RadioButton; +import androidx.test.filters.SmallTest; + import org.junit.Assert; import org.junit.Before; import org.junit.Rule; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonRenderTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonRenderTest.java index 9c379ac4673..54a2c38801e 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonRenderTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonRenderTest.java @@ -6,10 +6,11 @@ package org.chromium.components.browser_ui.widget; import android.app.Activity; import android.graphics.Color; -import android.support.test.filters.SmallTest; import android.view.LayoutInflater; import android.view.View; +import androidx.test.filters.SmallTest; + import org.junit.Assert; import org.junit.Rule; import org.junit.Test; @@ -41,8 +42,7 @@ public class RadioButtonRenderTest extends DummyUiActivityTestCase { new NightModeTestUtils.NightModeParams().getParameters(); @Rule - public RenderTestRule mRenderTestRule = - new RenderTestRule("chrome/test/data/android/render_tests"); + public RenderTestRule mRenderTestRule = new RenderTestRule(); private RadioButtonWithDescriptionLayout mLayout; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescriptionLayoutTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescriptionLayoutTest.java index abbb5974759..c831fb5f45d 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescriptionLayoutTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithDescriptionLayoutTest.java @@ -7,7 +7,6 @@ package org.chromium.components.browser_ui.widget; import android.content.Context; import android.support.test.InstrumentationRegistry; import android.support.test.annotation.UiThreadTest; -import android.support.test.filters.SmallTest; import android.support.test.rule.UiThreadTestRule; import android.text.TextUtils; import android.view.LayoutInflater; @@ -16,6 +15,8 @@ import android.view.ViewGroup.MarginLayoutParams; import android.widget.EditText; import android.widget.TextView; +import androidx.test.filters.SmallTest; + import org.junit.Assert; import org.junit.Before; import org.junit.Rule; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditTextTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditTextTest.java index 28e78008db2..66d0d8d9bfa 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditTextTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RadioButtonWithEditTextTest.java @@ -6,7 +6,6 @@ package org.chromium.components.browser_ui.widget; import android.app.Activity; import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; import android.text.InputType; import android.text.TextUtils; import android.view.KeyEvent; @@ -17,6 +16,9 @@ import android.widget.EditText; import android.widget.RadioButton; import android.widget.TextView; +import androidx.test.filters.SmallTest; + +import org.hamcrest.Matchers; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -266,14 +268,11 @@ public class RadioButtonWithEditTextTest extends DummyUiActivityTestCase { } private void assertIsKeyboardShowing(boolean isShowing) { - CriteriaHelper.pollUiThread( - new Criteria("Keyboard visibility does not consist with test setting.") { - @Override - public boolean isSatisfied() { - return KeyboardVisibilityDelegate.getInstance().isKeyboardShowing( - mActivity, mEditText) - == isShowing; - } - }); + CriteriaHelper.pollUiThread(() -> { + Criteria.checkThat("Keyboard visibility does not consist with test setting.", + KeyboardVisibilityDelegate.getInstance().isKeyboardShowing( + mActivity, mEditText), + Matchers.is(isShowing)); + }); } } diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RoundedIconGeneratorTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RoundedIconGeneratorTest.java index 4a20edde91b..8a7f4f809b5 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RoundedIconGeneratorTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/RoundedIconGeneratorTest.java @@ -7,7 +7,8 @@ package org.chromium.components.browser_ui.widget; import android.content.Context; import android.graphics.Color; import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; + +import androidx.test.filters.SmallTest; import org.junit.Assert; import org.junit.Before; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/WrappingLayoutTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/WrappingLayoutTest.java index 2b5a03bc0af..854b7da4ad1 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/WrappingLayoutTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/WrappingLayoutTest.java @@ -6,11 +6,11 @@ package org.chromium.components.browser_ui.widget; import android.content.Context; import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; -import android.util.LayoutDirection; import android.view.View; import android.view.View.MeasureSpec; +import androidx.test.filters.SmallTest; + import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -525,7 +525,7 @@ public class WrappingLayoutTest { ViewExpectation expectationB, ViewExpectation expectationC) { WrappingLayoutSubclass layout = WrappingLayoutSubclass.create( mContext, leftTopPadding, bottomRightPadding, spacing); - layout.setLayoutDirection(LayoutDirection.RTL); + layout.setLayoutDirection(View.LAYOUT_DIRECTION_RTL); layout.addTestViews(margin); layout.layoutAtSize(width, height, specWidth, specHeight, 0, 0); diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/highlight/ViewHighlighterTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/highlight/ViewHighlighterTest.java index 89022527e1a..1413dcca40a 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/highlight/ViewHighlighterTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/highlight/ViewHighlighterTest.java @@ -8,11 +8,12 @@ import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.support.test.InstrumentationRegistry; -import android.support.test.filters.MediumTest; import android.support.test.rule.UiThreadTestRule; import android.view.View; import android.widget.ImageView; +import androidx.test.filters.MediumTest; + import org.junit.Assert; import org.junit.Before; import org.junit.Rule; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/image_tiles/TileCoordinatorImpl.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/image_tiles/TileCoordinatorImpl.java index bf599b35094..81e7e318a69 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/image_tiles/TileCoordinatorImpl.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/image_tiles/TileCoordinatorImpl.java @@ -40,7 +40,7 @@ class TileCoordinatorImpl implements ImageTileCoordinator { for (int i = 0; i < mModel.size(); i++) { oldTiles.add(mModel.get(i)); } - boolean shouldAnimate = !oldTiles.isEmpty() && !oldTiles.equals(tiles); + boolean shouldAnimate = !oldTiles.isEmpty() && !tiles.isEmpty() && !oldTiles.equals(tiles); mModel.set(tiles); mView.scrollToBeginning(); diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/image_tiles/TileListView.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/image_tiles/TileListView.java index 9d1b4b8f2c2..4e7166f23f8 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/image_tiles/TileListView.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/image_tiles/TileListView.java @@ -8,6 +8,8 @@ import android.content.Context; import android.content.res.Configuration; import android.graphics.Rect; import android.view.View; +import android.view.animation.Animation; +import android.view.animation.Animation.AnimationListener; import android.view.animation.AnimationUtils; import android.view.animation.LayoutAnimationController; @@ -58,7 +60,7 @@ class TileListView { mView.setItemAnimator(null); mLayoutAnimationController = AnimationUtils.loadLayoutAnimation(context, R.anim.image_grid_enter); - + configureAnimationListener(); mTileSizeSupplier = new TileSizeSupplier(context); PropertyModelChangeProcessor.create( @@ -86,7 +88,25 @@ class TileListView { * Called to show enter animation for the list items. */ void showAnimation(boolean animate) { - // TODO(shaktisahu): Fix animations. + if (animate) { + mView.setLayoutAnimation(mLayoutAnimationController); + mView.scheduleLayoutAnimation(); + } + } + + private void configureAnimationListener() { + mView.setLayoutAnimationListener(new AnimationListener() { + @Override + public void onAnimationStart(Animation animation) {} + + @Override + public void onAnimationEnd(Animation animation) { + mView.setLayoutAnimation(null); + } + + @Override + public void onAnimationRepeat(Animation animation) {} + }); } private class ItemDecorationImpl extends ItemDecoration { diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuRenderTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuRenderTest.java index 4fa1d04947c..ea9367e9b52 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuRenderTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/listmenu/ListMenuRenderTest.java @@ -44,8 +44,7 @@ public class ListMenuRenderTest extends DummyUiActivityTestCase { new NightModeTestUtils.NightModeParams().getParameters(); @Rule - public RenderTestRule mRenderTestRule = - new RenderTestRule("chrome/test/data/android/render_tests"); + public RenderTestRule mRenderTestRule = new RenderTestRule(); private View mView; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardCoordinatorTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardCoordinatorTest.java index 85bd7e6ac5d..be10a6832e7 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardCoordinatorTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardCoordinatorTest.java @@ -7,10 +7,10 @@ package org.chromium.components.browser_ui.widget.promo; import android.content.Context; import android.graphics.drawable.Drawable; import android.support.test.InstrumentationRegistry; -import android.support.test.filters.SmallTest; import android.view.View; import androidx.appcompat.content.res.AppCompatResources; +import androidx.test.filters.SmallTest; import org.junit.Assert; import org.junit.Before; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardImpressionTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardImpressionTest.java index 871b0594c6c..a911afaf2bf 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardImpressionTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardImpressionTest.java @@ -5,11 +5,12 @@ package org.chromium.components.browser_ui.widget.promo; import android.app.Activity; -import android.support.test.filters.SmallTest; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.FrameLayout; +import androidx.test.filters.SmallTest; + import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardViewRenderTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardViewRenderTest.java index 34c2aa3763e..857f5cd03b9 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardViewRenderTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/promo/PromoCardViewRenderTest.java @@ -6,14 +6,15 @@ package org.chromium.components.browser_ui.widget.promo; import android.app.Activity; import android.graphics.drawable.Drawable; -import android.support.test.filters.SmallTest; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import androidx.appcompat.content.res.AppCompatResources; +import androidx.test.filters.SmallTest; +import org.hamcrest.Matchers; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -33,7 +34,6 @@ import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.test.util.DummyUiActivityTestCase; import org.chromium.ui.test.util.NightModeTestUtils; import org.chromium.ui.test.util.RenderTestRule; -import org.chromium.ui.widget.ButtonCompat; import java.util.List; @@ -48,8 +48,7 @@ public class PromoCardViewRenderTest extends DummyUiActivityTestCase { new NightModeTestUtils.NightModeParams().getParameters(); @Rule - public RenderTestRule mRenderTestRule = - new RenderTestRule("chrome/test/data/android/render_tests"); + public RenderTestRule mRenderTestRule = new RenderTestRule(); public PromoCardViewRenderTest(boolean nightModeEnabled) { NightModeTestUtils.setUpNightModeForDummyUiActivity(nightModeEnabled); @@ -110,11 +109,12 @@ public class PromoCardViewRenderTest extends DummyUiActivityTestCase { mModel.set(PromoCardProperties.HAS_SECONDARY_BUTTON, false); setPromoCard(LayoutStyle.LARGE); - CriteriaHelper.pollUiThread(Criteria.equals(View.GONE, () -> { - ButtonCompat secondaryButton = - mPromoCardCoordinator.getView().findViewById(R.id.promo_secondary_button); - return secondaryButton.getVisibility(); - })); + CriteriaHelper.pollUiThread(() -> { + int visibility = mPromoCardCoordinator.getView() + .findViewById(R.id.promo_secondary_button) + .getVisibility(); + Criteria.checkThat(visibility, Matchers.is(View.GONE)); + }); mRenderTestRule.render(mPromoCardCoordinator.getView(), "promo_card_secondary_hidden"); } diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/scrim/ScrimTest.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/scrim/ScrimTest.java index 95dea15976a..6f01c2aa11a 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/scrim/ScrimTest.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/scrim/ScrimTest.java @@ -13,13 +13,14 @@ import static org.junit.Assert.assertTrue; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; -import android.support.test.filters.SmallTest; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import androidx.annotation.ColorInt; +import androidx.test.filters.SmallTest; +import org.hamcrest.Matchers; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -30,6 +31,7 @@ import org.chromium.base.ThreadUtils; import org.chromium.base.test.BaseJUnit4ClassRunner; import org.chromium.base.test.util.CallbackHelper; import org.chromium.base.test.util.Feature; +import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.test.util.DummyUiActivityTestCase; @@ -103,10 +105,10 @@ public class ScrimTest extends DummyUiActivityTestCase { ThreadUtils.runOnUiThreadBlocking(() -> mScrimCoordinator.hideScrim(false)); - CriteriaHelper.pollUiThread(() - -> mScrimCoordinator.getViewForTesting() == null, - "Scrim should be null after being hidden.", CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL, - CriteriaHelper.DEFAULT_POLLING_INTERVAL); + CriteriaHelper.pollUiThread(() -> { + Criteria.checkThat("Scrim should be null after being hidden.", + mScrimCoordinator.getViewForTesting(), Matchers.nullValue()); + }); } @Test @@ -215,10 +217,10 @@ public class ScrimTest extends DummyUiActivityTestCase { ThreadUtils.runOnUiThreadBlocking(() -> mScrimCoordinator.hideScrim(false)); - CriteriaHelper.pollUiThread(() - -> mScrimCoordinator.getViewForTesting() == null, - "Scrim should be null after being hidden.", CriteriaHelper.DEFAULT_MAX_TIME_TO_POLL, - CriteriaHelper.DEFAULT_POLLING_INTERVAL); + CriteriaHelper.pollUiThread(() -> { + Criteria.checkThat("Scrim should be null after being hidden.", + mScrimCoordinator.getViewForTesting(), Matchers.nullValue()); + }); } @Test diff --git a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/text/AlertDialogEditText.java b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/text/AlertDialogEditText.java index 9cffe2c5911..9620c8fad8b 100644 --- a/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/text/AlertDialogEditText.java +++ b/chromium/components/browser_ui/widget/android/java/src/org/chromium/components/browser_ui/widget/text/AlertDialogEditText.java @@ -4,70 +4,50 @@ package org.chromium.components.browser_ui.widget.text; +import android.annotation.SuppressLint; import android.content.Context; -import android.graphics.PorterDuff; -import android.graphics.drawable.Drawable; -import android.os.Build; +import android.text.TextUtils; import android.util.AttributeSet; -import android.view.ActionMode; -import android.view.Menu; -import android.view.MenuItem; +import android.view.ViewStructure; import android.widget.EditText; import androidx.appcompat.widget.AppCompatEditText; import org.chromium.base.ApiCompatibilityUtils; -import org.chromium.components.browser_ui.widget.R; +import org.chromium.base.annotations.VerifiesOnO; /** - * EditText to use in AlertDialog needed due to b/20882793 and b/122113958. This class should be - * removed when we roll to AppCompat with a fix for both issues. + * Wrapper class needed due to b/122113958. * * Note that for password fields the hint text is expected to be set in XML so that it is available - * during inflation. If the hint text or content description is changed programatically, consider + * during inflation. If the hint text or content description is changed programmatically, consider * calling {@link ApiCompatibilityUtils#setPasswordEditTextContentDescription(EditText)} after * the change. */ +@VerifiesOnO public class AlertDialogEditText extends AppCompatEditText { + private String mUrl; + public AlertDialogEditText(Context context, AttributeSet attrs) { super(context, attrs); } + public void setUrl(String url) { + mUrl = url; + } + @Override protected void onFinishInflate() { super.onFinishInflate(); - ApiCompatibilityUtils.setPasswordEditTextContentDescription(this); + } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) return; - - setCustomSelectionActionModeCallback(new ActionMode.Callback() { - @Override - public boolean onPrepareActionMode(ActionMode mode, Menu menu) { - return true; - } - - @Override - public void onDestroyActionMode(ActionMode mode) {} - - @Override - public boolean onCreateActionMode(ActionMode mode, Menu menu) { - for (int i = 0; i < menu.size(); i++) { - MenuItem item = menu.getItem(i); - Drawable icon = item.getIcon(); - if (icon == null) break; - icon.setColorFilter(ApiCompatibilityUtils.getColor( - getResources(), R.color.default_icon_color), - PorterDuff.Mode.SRC_IN); - item.setIcon(icon); - } - return true; - } - - @Override - public boolean onActionItemClicked(ActionMode mode, MenuItem item) { - return false; - } - }); + @Override + @SuppressLint("NewApi") + public void onProvideAutofillStructure(ViewStructure structure, int flags) { + if (!TextUtils.isEmpty(mUrl)) { + structure.setWebDomain(mUrl); + } + super.onProvideAutofillStructure(structure, flags); } } |