Commit f2fe86ed authored by Pavel Yatsuk's avatar Pavel Yatsuk Committed by Commit Bot

Move Snackbar implementation to chrome/browser

This CL moves SnackbarView.java, Snackbar.java, SnackbarCollection.java,
SnackbarManager.java. Tests will be moved in a separate CL.

BUG=1028382
R=mdjones@chromium.org

Change-Id: I847ce100b03fb3b4596ed02c2c32d2f8505ba4c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1974902
Commit-Queue: Pavel Yatsuk <pavely@chromium.org>
Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#727637}
parent 5c64ad91
......@@ -267,6 +267,7 @@ android_library("chrome_java") {
"//chrome/browser/ui/android/appmenu:factory_java",
"//chrome/browser/ui/android/appmenu:java",
"//chrome/browser/ui/android/widget:java",
"//chrome/browser/ui/messages/android:java",
"//chrome/browser/util:java",
"//chrome/lib/lifecycle/public/android:java",
"//components/app_modal/android:java",
......@@ -788,6 +789,7 @@ android_library("chrome_test_java") {
"//chrome/browser/ui/android/appmenu:test_support_java",
"//chrome/browser/ui/android/widget:java",
"//chrome/browser/ui/android/widget:test_support_java",
"//chrome/browser/ui/messages/android:java",
"//chrome/browser/util:java",
"//chrome/lib/lifecycle/public/android:java",
"//chrome/test/android:chrome_java_test_support",
......
......@@ -1528,10 +1528,6 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/sms/SmsReceiverInfoBar.java",
"java/src/org/chromium/chrome/browser/sms/SmsReceiverUma.java",
"java/src/org/chromium/chrome/browser/snackbar/BottomContainer.java",
"java/src/org/chromium/chrome/browser/snackbar/Snackbar.java",
"java/src/org/chromium/chrome/browser/snackbar/SnackbarCollection.java",
"java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java",
"java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java",
"java/src/org/chromium/chrome/browser/snackbar/smartlockautosignin/AutoSigninSnackbarController.java",
"java/src/org/chromium/chrome/browser/snackbar/undo/UndoBarController.java",
"java/src/org/chromium/chrome/browser/ssl/CaptivePortalHelper.java",
......
......@@ -39,6 +39,7 @@ android_library("java") {
"//chrome/android/public/profiles:java",
"//chrome/browser/image_fetcher:java",
"//chrome/browser/ui/android/widget:java",
"//chrome/browser/ui/messages/android:java",
"//chrome/browser/util:java",
"//components/browser_ui/modaldialog/android:java",
"//components/policy/android:policy_java",
......
......@@ -61,6 +61,7 @@ android_library("test_java") {
"//chrome/android:chrome_test_java",
"//chrome/android:chrome_test_util_java",
"//chrome/android/public/profiles:java",
"//chrome/browser/ui/messages/android:java",
"//chrome/test/android:chrome_java_test_support",
"//components/autofill/android:autofill_java",
"//components/autofill/core/common/mojom:mojo_types_java",
......
......@@ -120,6 +120,7 @@ android_library("java") {
"//chrome/app:java_strings_grd",
"//chrome/browser/ui/android/strings:ui_strings_grd",
"//chrome/browser/ui/android/widget:java",
"//chrome/browser/ui/messages/android:java",
"//chrome/browser/util:java",
"//chrome/lib/lifecycle/public/android:java",
"//components/browser_ui/styles/android:java",
......
dtrainor@chromium.org
mdjones@chromium.org
pavely@chromium.org
twellington@chromium.org
# COMPONENT: UI>Browser>Mobile>Messages
# OS: Android
......@@ -7,6 +7,27 @@ android_resources("java_resources") {
custom_package = "org.chromium.chrome.ui.messages"
resource_dirs = [ "java/res" ]
deps = [
"//chrome/browser/ui/android/strings:ui_strings_grd",
"//components/browser_ui/strings/android:browser_ui_strings_grd",
"//ui/android:ui_java_resources",
]
}
android_library("java") {
java_files = [
"java/src/org/chromium/chrome/browser/snackbar/SnackbarView.java",
"java/src/org/chromium/chrome/browser/snackbar/Snackbar.java",
"java/src/org/chromium/chrome/browser/snackbar/SnackbarCollection.java",
"java/src/org/chromium/chrome/browser/snackbar/SnackbarManager.java",
]
deps = [
":java_resources",
"//base:base_java",
"//chrome/browser/ui/android/widget:java",
"//chrome/browser/util:java",
"//components/browser_ui/styles/android:java_resources",
"//components/browser_ui/widget/android:java",
"//third_party/android_deps:com_android_support_support_compat_java",
"//ui/android:ui_full_java",
]
}
include_rules = [
"+components/browser_ui/widget/android/java",
]
......@@ -10,8 +10,8 @@ import androidx.annotation.IntDef;
import androidx.annotation.VisibleForTesting;
import org.chromium.base.ContextUtils;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
import org.chromium.chrome.ui.messages.R;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
......@@ -120,8 +120,8 @@ public class Snackbar {
* @param type Type of the snackbar. Either {@link #TYPE_ACTION} or {@link #TYPE_NOTIFICATION}.
* @param identifier The feature code of the snackbar. Should be one of the UMA* constants above
*/
public static Snackbar make(CharSequence text, SnackbarController controller, int type,
int identifier) {
public static Snackbar make(
CharSequence text, SnackbarController controller, int type, int identifier) {
Snackbar s = new Snackbar();
s.mText = text;
s.mController = controller;
......@@ -296,5 +296,7 @@ public class Snackbar {
/** So tests can trigger a press on a Snackbar. */
@VisibleForTesting
public Object getActionDataForTesting() { return mActionData; }
public Object getActionDataForTesting() {
return mActionData;
}
}
......@@ -60,8 +60,11 @@ class SnackbarCollection {
}
if (current != null) {
SnackbarController controller = current.getController();
if (isAction) controller.onAction(current.getActionData());
else controller.onDismissNoAction(current.getActionData());
if (isAction) {
controller.onAction(current.getActionData());
} else {
controller.onDismissNoAction(current.getActionData());
}
}
return current;
}
......@@ -106,8 +109,8 @@ class SnackbarCollection {
|| removeSnackbarFromList(mPersistentSnackbars, controller);
}
private static boolean removeSnackbarFromList(Deque<Snackbar> list,
SnackbarController controller) {
private static boolean removeSnackbarFromList(
Deque<Snackbar> list, SnackbarController controller) {
boolean snackbarRemoved = false;
Iterator<Snackbar> iter = list.iterator();
while (iter.hasNext()) {
......@@ -127,8 +130,8 @@ class SnackbarCollection {
|| removeSnackbarFromList(mPersistentSnackbars, controller, data);
}
private static boolean removeSnackbarFromList(Deque<Snackbar> list,
SnackbarController controller, Object data) {
private static boolean removeSnackbarFromList(
Deque<Snackbar> list, SnackbarController controller, Object data) {
boolean snackbarRemoved = false;
Iterator<Snackbar> iter = list.iterator();
while (iter.hasNext()) {
......@@ -149,4 +152,4 @@ class SnackbarCollection {
if (a == null || b == null) return false;
return a.equals(b);
}
}
\ No newline at end of file
}
......@@ -50,13 +50,13 @@ public class SnackbarManager implements OnClickListener, ActivityStateListener {
* Called when the user clicks the action button on the snackbar.
* @param actionData Data object passed when showing this specific snackbar.
*/
default void onAction(Object actionData) { }
default void onAction(Object actionData) {}
/**
* Called when the snackbar is dismissed by timeout or UI environment change.
* @param actionData Data object associated with the dismissed snackbar entry.
*/
default void onDismissNoAction(Object actionData) { }
default void onDismissNoAction(Object actionData) {}
}
public static final int DEFAULT_SNACKBAR_DURATION_MS = 3000;
......@@ -246,7 +246,6 @@ public class SnackbarManager implements OnClickListener, ActivityStateListener {
mView.announceforAccessibility();
}
}
}
private int getDuration(Snackbar snackbar) {
......
......@@ -155,10 +155,10 @@ public class SnackbarView {
lp.bottomMargin = getBottomMarginForLayout();
if (mIsTablet) {
int margin = mParent.getResources()
.getDimensionPixelSize(R.dimen.snackbar_margin_tablet);
int width = mParent.getResources()
.getDimensionPixelSize(R.dimen.snackbar_width_tablet);
int margin = mParent.getResources().getDimensionPixelSize(
R.dimen.snackbar_margin_tablet);
int width =
mParent.getResources().getDimensionPixelSize(R.dimen.snackbar_width_tablet);
lp.width = Math.min(width, mParent.getWidth() - 2 * margin);
lp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM;
}
......@@ -206,8 +206,7 @@ public class SnackbarView {
*/
public void announceforAccessibility() {
mMessageView.announceForAccessibility(mMessageView.getContentDescription() + " "
+ mContainerView.getResources().getString(
org.chromium.chrome.R.string.bottom_bar_screen_position));
+ mContainerView.getResources().getString(R.string.bottom_bar_screen_position));
}
/**
......@@ -234,8 +233,8 @@ public class SnackbarView {
private static int getBackgroundColor(View view, Snackbar snackbar) {
// Themes are used first.
if (snackbar.getTheme() == Snackbar.Theme.GOOGLE) {
return ApiCompatibilityUtils.getColor(
view.getResources(), org.chromium.chrome.R.color.light_active_color);
return ApiCompatibilityUtils.getColor(view.getResources(),
org.chromium.components.browser_ui.styles.R.color.light_active_color);
}
assert snackbar.getTheme() == Snackbar.Theme.BASIC;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment