Loading libs/WindowManager/Shell/res/layout/bubble_manage_menu.xml +2 −2 Original line number Diff line number Diff line Loading @@ -63,11 +63,11 @@ android:tint="@color/bubbles_icon_tint"/> <TextView android:id="@+id/bubble_manage_menu_dont_bubble_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:textAppearance="@*android:style/TextAppearance.DeviceDefault" android:text="@string/bubbles_dont_bubble_conversation" /> android:textAppearance="@*android:style/TextAppearance.DeviceDefault" /> </LinearLayout> Loading libs/WindowManager/Shell/res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,8 @@ <string name="bubbles_app_settings"><xliff:g id="notification_title" example="Android Messages">%1$s</xliff:g> settings</string> <!-- Text used for the bubble dismiss area. Bubbles dragged to, or flung towards, this area will go away. [CHAR LIMIT=30] --> <string name="bubble_dismiss_text">Dismiss bubble</string> <!-- Button text to stop an app from bubbling [CHAR LIMIT=60]--> <string name="bubbles_dont_bubble">Don\u2019t bubble</string> <!-- Button text to stop a conversation from bubbling [CHAR LIMIT=60]--> <string name="bubbles_dont_bubble_conversation">Don\u2019t bubble conversation</string> <!-- Title text for the bubbles feature education cling shown when a bubble is on screen for the first time. [CHAR LIMIT=60]--> Loading libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java +26 −2 Original line number Diff line number Diff line Loading @@ -844,6 +844,8 @@ public class BubbleStackView extends FrameLayout private DismissView mDismissView; private ViewGroup mManageMenu; private TextView mManageDontBubbleText; private ViewGroup mManageSettingsView; private ImageView mManageSettingsIcon; private TextView mManageSettingsText; private boolean mShowingManage = false; Loading Loading @@ -1217,7 +1219,11 @@ public class BubbleStackView extends FrameLayout mUnbubbleConversationCallback.accept(mBubbleData.getSelectedBubble().getKey()); }); mManageMenu.findViewById(R.id.bubble_manage_menu_settings_container).setOnClickListener( mManageDontBubbleText = mManageMenu .findViewById(R.id.bubble_manage_menu_dont_bubble_text); mManageSettingsView = mManageMenu.findViewById(R.id.bubble_manage_menu_settings_container); mManageSettingsView.setOnClickListener( view -> { showManageMenu(false /* show */); final BubbleViewProvider bubble = mBubbleData.getSelectedBubble(); Loading Loading @@ -2868,10 +2874,19 @@ public class BubbleStackView extends FrameLayout // name and icon. if (show) { final Bubble bubble = mBubbleData.getBubbleInStackWithKey(mExpandedBubble.getKey()); if (bubble != null) { if (bubble != null && !bubble.isAppBubble()) { // Setup options for non app bubbles mManageDontBubbleText.setText(R.string.bubbles_dont_bubble_conversation); mManageSettingsIcon.setImageBitmap(bubble.getRawAppBadge()); mManageSettingsText.setText(getResources().getString( R.string.bubbles_app_settings, bubble.getAppName())); mManageSettingsView.setVisibility(VISIBLE); } else { // Setup options for app bubbles mManageDontBubbleText.setText(R.string.bubbles_dont_bubble); // App bubbles are not notification based // so we don't show the option to go to notification settings mManageSettingsView.setVisibility(GONE); } } Loading Loading @@ -2936,6 +2951,15 @@ public class BubbleStackView extends FrameLayout } } /** * Checks whether manage menu notification settings action is available and visible * Used for testing */ @VisibleForTesting public boolean isManageMenuSettingsVisible() { return mManageSettingsView != null && mManageSettingsView.getVisibility() == VISIBLE; } private void updateExpandedBubble() { if (DEBUG_BUBBLE_STACK_VIEW) { Log.d(TAG, "updateExpandedBubble()"); Loading packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java +18 −0 Original line number Diff line number Diff line Loading @@ -1245,6 +1245,24 @@ public class BubblesTest extends SysuiTestCase { // Show the menu stackView.showManageMenu(true); assertSysuiStates(true /* stackExpanded */, true /* mangeMenuExpanded */); assertTrue(stackView.isManageMenuSettingsVisible()); } @Test public void testShowManageMenuChangesSysuiState_appBubble() { mBubbleController.showOrHideAppBubble(mAppBubbleIntent, mUser0); assertTrue(mBubbleController.hasBubbles()); // Expand the stack BubbleStackView stackView = mBubbleController.getStackView(); mBubbleData.setExpanded(true); assertStackExpanded(); assertSysuiStates(true /* stackExpanded */, false /* mangeMenuExpanded */); // Show the menu stackView.showManageMenu(true); assertSysuiStates(true /* stackExpanded */, true /* mangeMenuExpanded */); assertFalse(stackView.isManageMenuSettingsVisible()); } @Test Loading Loading
libs/WindowManager/Shell/res/layout/bubble_manage_menu.xml +2 −2 Original line number Diff line number Diff line Loading @@ -63,11 +63,11 @@ android:tint="@color/bubbles_icon_tint"/> <TextView android:id="@+id/bubble_manage_menu_dont_bubble_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="16dp" android:textAppearance="@*android:style/TextAppearance.DeviceDefault" android:text="@string/bubbles_dont_bubble_conversation" /> android:textAppearance="@*android:style/TextAppearance.DeviceDefault" /> </LinearLayout> Loading
libs/WindowManager/Shell/res/values/strings.xml +2 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,8 @@ <string name="bubbles_app_settings"><xliff:g id="notification_title" example="Android Messages">%1$s</xliff:g> settings</string> <!-- Text used for the bubble dismiss area. Bubbles dragged to, or flung towards, this area will go away. [CHAR LIMIT=30] --> <string name="bubble_dismiss_text">Dismiss bubble</string> <!-- Button text to stop an app from bubbling [CHAR LIMIT=60]--> <string name="bubbles_dont_bubble">Don\u2019t bubble</string> <!-- Button text to stop a conversation from bubbling [CHAR LIMIT=60]--> <string name="bubbles_dont_bubble_conversation">Don\u2019t bubble conversation</string> <!-- Title text for the bubbles feature education cling shown when a bubble is on screen for the first time. [CHAR LIMIT=60]--> Loading
libs/WindowManager/Shell/src/com/android/wm/shell/bubbles/BubbleStackView.java +26 −2 Original line number Diff line number Diff line Loading @@ -844,6 +844,8 @@ public class BubbleStackView extends FrameLayout private DismissView mDismissView; private ViewGroup mManageMenu; private TextView mManageDontBubbleText; private ViewGroup mManageSettingsView; private ImageView mManageSettingsIcon; private TextView mManageSettingsText; private boolean mShowingManage = false; Loading Loading @@ -1217,7 +1219,11 @@ public class BubbleStackView extends FrameLayout mUnbubbleConversationCallback.accept(mBubbleData.getSelectedBubble().getKey()); }); mManageMenu.findViewById(R.id.bubble_manage_menu_settings_container).setOnClickListener( mManageDontBubbleText = mManageMenu .findViewById(R.id.bubble_manage_menu_dont_bubble_text); mManageSettingsView = mManageMenu.findViewById(R.id.bubble_manage_menu_settings_container); mManageSettingsView.setOnClickListener( view -> { showManageMenu(false /* show */); final BubbleViewProvider bubble = mBubbleData.getSelectedBubble(); Loading Loading @@ -2868,10 +2874,19 @@ public class BubbleStackView extends FrameLayout // name and icon. if (show) { final Bubble bubble = mBubbleData.getBubbleInStackWithKey(mExpandedBubble.getKey()); if (bubble != null) { if (bubble != null && !bubble.isAppBubble()) { // Setup options for non app bubbles mManageDontBubbleText.setText(R.string.bubbles_dont_bubble_conversation); mManageSettingsIcon.setImageBitmap(bubble.getRawAppBadge()); mManageSettingsText.setText(getResources().getString( R.string.bubbles_app_settings, bubble.getAppName())); mManageSettingsView.setVisibility(VISIBLE); } else { // Setup options for app bubbles mManageDontBubbleText.setText(R.string.bubbles_dont_bubble); // App bubbles are not notification based // so we don't show the option to go to notification settings mManageSettingsView.setVisibility(GONE); } } Loading Loading @@ -2936,6 +2951,15 @@ public class BubbleStackView extends FrameLayout } } /** * Checks whether manage menu notification settings action is available and visible * Used for testing */ @VisibleForTesting public boolean isManageMenuSettingsVisible() { return mManageSettingsView != null && mManageSettingsView.getVisibility() == VISIBLE; } private void updateExpandedBubble() { if (DEBUG_BUBBLE_STACK_VIEW) { Log.d(TAG, "updateExpandedBubble()"); Loading
packages/SystemUI/tests/src/com/android/systemui/wmshell/BubblesTest.java +18 −0 Original line number Diff line number Diff line Loading @@ -1245,6 +1245,24 @@ public class BubblesTest extends SysuiTestCase { // Show the menu stackView.showManageMenu(true); assertSysuiStates(true /* stackExpanded */, true /* mangeMenuExpanded */); assertTrue(stackView.isManageMenuSettingsVisible()); } @Test public void testShowManageMenuChangesSysuiState_appBubble() { mBubbleController.showOrHideAppBubble(mAppBubbleIntent, mUser0); assertTrue(mBubbleController.hasBubbles()); // Expand the stack BubbleStackView stackView = mBubbleController.getStackView(); mBubbleData.setExpanded(true); assertStackExpanded(); assertSysuiStates(true /* stackExpanded */, false /* mangeMenuExpanded */); // Show the menu stackView.showManageMenu(true); assertSysuiStates(true /* stackExpanded */, true /* mangeMenuExpanded */); assertFalse(stackView.isManageMenuSettingsVisible()); } @Test Loading