Index: chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java |
index 9aee02c6598bc60681e8739b70bc1152bc3fe76e..9efd7c4b02265ad047bb66a75d452f34948442e4 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheet.java |
@@ -30,6 +30,7 @@ import org.chromium.base.ContextUtils; |
import org.chromium.base.ObserverList; |
import org.chromium.base.VisibleForTesting; |
import org.chromium.chrome.R; |
+import org.chromium.chrome.browser.ChromeActivity; |
import org.chromium.chrome.browser.ChromeFeatureList; |
import org.chromium.chrome.browser.NativePageHost; |
import org.chromium.chrome.browser.TabLoadStatus; |
@@ -216,6 +217,9 @@ public class BottomSheet |
/** Whether the root view has been laid out at least once. **/ |
private boolean mHasRootLayoutOccurred; |
+ /** The activity displaying the bottom sheet. */ |
+ private ChromeActivity mActivity; |
+ |
/** |
* An interface defining content that can be displayed inside of the bottom sheet for Chrome |
* Home. |
@@ -518,10 +522,12 @@ public class BottomSheet |
* calculations in this class. |
* @param root The container of the bottom sheet. |
* @param controlContainer The container for the toolbar. |
+ * @param activity The activity displaying the bottom sheet. |
*/ |
- public void init(View root, View controlContainer) { |
+ public void init(View root, View controlContainer, ChromeActivity activity) { |
mControlContainer = controlContainer; |
mToolbarHeight = mControlContainer.getHeight(); |
+ mActivity = activity; |
mBottomSheetContentContainer = (FrameLayout) findViewById(R.id.bottom_sheet_content); |
@@ -798,6 +804,8 @@ public class BottomSheet |
mIsSheetOpen = true; |
for (BottomSheetObserver o : mObservers) o.onSheetOpened(); |
+ announceForAccessibility(getResources().getString(R.string.bottom_sheet_opened)); |
+ mActivity.addViewObscuringAllTabs(this); |
} |
/** |
@@ -808,6 +816,8 @@ public class BottomSheet |
mIsSheetOpen = false; |
for (BottomSheetObserver o : mObservers) o.onSheetClosed(); |
+ announceForAccessibility(getResources().getString(R.string.bottom_sheet_closed)); |
+ mActivity.removeViewObscuringAllTabs(this); |
} |
/** |
@@ -1225,15 +1235,23 @@ public class BottomSheet |
SharedPreferences preferences = ContextUtils.getAppSharedPreferences(); |
if (preferences.getBoolean(BOTTOM_SHEET_HELP_BUBBLE_SHOWN, false)) return; |
+ boolean showExpandButtonHelpBubble = |
+ ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME_EXPAND_BUTTON); |
+ |
ViewAnchoredTextBubble helpBubble = new ViewAnchoredTextBubble(getContext(), |
- mControlContainer, R.string.bottom_sheet_help_bubble_message, |
- R.string.bottom_sheet_help_bubble_message); |
+ showExpandButtonHelpBubble |
+ ? mControlContainer.findViewById(R.id.expand_sheet_button) |
+ : mControlContainer, |
+ showExpandButtonHelpBubble ? R.string.bottom_sheet_expand_button_help_bubble_message |
+ : R.string.bottom_sheet_help_bubble_message, |
+ showExpandButtonHelpBubble |
+ ? R.string.bottom_sheet_accessibility_expand_button_help_bubble_message |
+ : R.string.bottom_sheet_accessibility_help_bubble_message); |
int inset = getContext().getResources().getDimensionPixelSize( |
R.dimen.bottom_sheet_help_bubble_inset); |
helpBubble.setInsetPx(0, inset, 0, inset); |
helpBubble.setDismissOnTouchInteraction(true); |
helpBubble.show(); |
- |
preferences.edit().putBoolean(BOTTOM_SHEET_HELP_BUBBLE_SHOWN, true).apply(); |
} |
} |