Loading libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu.xml +1 −7 Original line number Diff line number Diff line Loading @@ -43,8 +43,7 @@ android:layout_height="@dimen/desktop_mode_handle_menu_icon_radius" android:layout_marginStart="10dp" android:layout_marginEnd="12dp" android:contentDescription="@string/app_icon_text" android:importantForAccessibility="no"/> android:contentDescription="@string/app_icon_text" /> <com.android.wm.shell.windowdecor.MarqueedTextView android:id="@+id/application_name" Loading Loading @@ -142,7 +141,6 @@ android:contentDescription="@string/screenshot_text" android:text="@string/screenshot_text" android:src="@drawable/desktop_mode_ic_handle_menu_screenshot" android:importantForAccessibility="no" style="@style/DesktopModeHandleMenuActionButton"/> <com.android.wm.shell.windowdecor.HandleMenuActionButton Loading @@ -150,7 +148,6 @@ android:contentDescription="@string/new_window_text" android:text="@string/new_window_text" android:src="@drawable/desktop_mode_ic_handle_menu_new_window" android:importantForAccessibility="no" style="@style/DesktopModeHandleMenuActionButton"/> <com.android.wm.shell.windowdecor.HandleMenuActionButton Loading @@ -158,7 +155,6 @@ android:contentDescription="@string/manage_windows_text" android:text="@string/manage_windows_text" android:src="@drawable/desktop_mode_ic_handle_menu_manage_windows" android:importantForAccessibility="no" style="@style/DesktopModeHandleMenuActionButton"/> <com.android.wm.shell.windowdecor.HandleMenuActionButton Loading @@ -166,7 +162,6 @@ android:contentDescription="@string/change_aspect_ratio_text" android:text="@string/change_aspect_ratio_text" android:src="@drawable/desktop_mode_ic_handle_menu_change_aspect_ratio" android:importantForAccessibility="no" style="@style/DesktopModeHandleMenuActionButton"/> </LinearLayout> Loading @@ -186,7 +181,6 @@ android:text="@string/open_in_browser_text" android:src="@drawable/desktop_mode_ic_handle_menu_open_in_browser" style="@style/DesktopModeHandleMenuActionButton" android:importantForAccessibility="no" android:layout_width="0dp" android:layout_weight="1"/> Loading libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu_action_button.xml +1 −2 Original line number Diff line number Diff line Loading @@ -22,8 +22,7 @@ android:layout_height="match_parent" android:gravity="start|center_vertical" android:paddingHorizontal="16dp" android:clickable="true" android:focusable="true" android:importantForAccessibility="yes" android:orientation="horizontal" android:background="?android:attr/selectableItemBackground"> Loading libs/WindowManager/Shell/res/values/styles.xml +1 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ <item name="android:layout_height">52dp</item> <item name="android:textColor">@androidprv:color/materialColorOnSurface</item> <item name="android:drawableTint">@androidprv:color/materialColorOnSurface</item> <item name="android:importantForAccessibility">no</item> </style> <style name="DesktopModeHandleMenuActionButtonImage"> Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt +66 −31 Original line number Diff line number Diff line Loading @@ -109,15 +109,18 @@ class HandleMenu( get() = (DesktopModeFlags.ENABLE_HANDLE_INPUT_FIX.isTrue() && !taskInfo.isFreeform) private val pillTopMargin: Int = loadDimensionPixelSize( R.dimen.desktop_mode_handle_menu_pill_spacing_margin) R.dimen.desktop_mode_handle_menu_pill_spacing_margin ) private val menuWidth = loadDimensionPixelSize(R.dimen.desktop_mode_handle_menu_width) private val menuHeight = getHandleMenuHeight() private val marginMenuTop = loadDimensionPixelSize(R.dimen.desktop_mode_handle_menu_margin_top) private val marginMenuStart = loadDimensionPixelSize( R.dimen.desktop_mode_handle_menu_margin_start) R.dimen.desktop_mode_handle_menu_margin_start ) @VisibleForTesting var handleMenuViewContainer: AdditionalViewContainer? = null @VisibleForTesting var handleMenuView: HandleMenuView? = null Loading Loading @@ -240,7 +243,8 @@ class HandleMenu( val y = handleMenuPosition.y.toInt() handleMenuViewContainer = if ((!taskInfo.isFreeform && DesktopModeFlags.ENABLE_HANDLE_INPUT_FIX.isTrue()) || forceShowSystemBars) { || forceShowSystemBars ) { AdditionalSystemViewContainer( windowManagerWrapper = windowManagerWrapper, taskId = taskInfo.taskId, Loading @@ -251,7 +255,11 @@ class HandleMenu( flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, view = handleMenuView.rootView, forciblyShownTypes = if (forceShowSystemBars) { systemBars() } else { 0 }, forciblyShownTypes = if (forceShowSystemBars) { systemBars() } else { 0 }, ignoreCutouts = Flags.showAppHandleLargeScreens() || BubbleAnythingFlagHelper.enableBubbleToFullscreen() ) Loading Loading @@ -369,7 +377,8 @@ class HandleMenu( inputPoint.y - globalMenuPosition.y ) if (splitScreenController.getSplitPosition(taskInfo.taskId) == SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT) { == SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT ) { val leftStageBounds = Rect() splitScreenController.getStageBounds(leftStageBounds, Rect()) inputRelativeToMenu.x += leftStageBounds.width().toFloat() Loading Loading @@ -398,7 +407,8 @@ class HandleMenu( var menuHeight = loadDimensionPixelSize(R.dimen.desktop_mode_handle_menu_height) if (!shouldShowWindowingPill) { menuHeight -= loadDimensionPixelSize( R.dimen.desktop_mode_handle_menu_windowing_pill_height) R.dimen.desktop_mode_handle_menu_windowing_pill_height ) menuHeight -= pillTopMargin } if (!SHOULD_SHOW_SCREENSHOT_BUTTON) { Loading @@ -418,14 +428,16 @@ class HandleMenu( } if (!shouldShowChangeAspectRatioButton) { menuHeight -= loadDimensionPixelSize( R.dimen.desktop_mode_handle_menu_change_aspect_ratio_height) R.dimen.desktop_mode_handle_menu_change_aspect_ratio_height ) } if (!shouldShowMoreActionsPill) { menuHeight -= pillTopMargin } if (!shouldShowBrowserPill) { menuHeight -= loadDimensionPixelSize( R.dimen.desktop_mode_handle_menu_open_in_browser_pill_height) R.dimen.desktop_mode_handle_menu_open_in_browser_pill_height ) menuHeight -= pillTopMargin } return menuHeight Loading Loading @@ -468,48 +480,66 @@ class HandleMenu( // Insets for ripple effect of App Info Pill. and Windowing Pill. buttons val iconButtondrawableShiftInset = context.resources.getDimensionPixelSize( R.dimen.desktop_mode_handle_menu_icon_button_ripple_inset_shift) R.dimen.desktop_mode_handle_menu_icon_button_ripple_inset_shift ) val iconButtondrawableBaseInset = context.resources.getDimensionPixelSize( R.dimen.desktop_mode_handle_menu_icon_button_ripple_inset_base) R.dimen.desktop_mode_handle_menu_icon_button_ripple_inset_base ) private val iconButtonRippleRadius = context.resources.getDimensionPixelSize( R.dimen.desktop_mode_handle_menu_icon_button_ripple_radius) private val iconButtonDrawableInsetsBase = DrawableInsets(t = iconButtondrawableBaseInset, R.dimen.desktop_mode_handle_menu_icon_button_ripple_radius ) private val iconButtonDrawableInsetsBase = DrawableInsets( t = iconButtondrawableBaseInset, b = iconButtondrawableBaseInset, l = iconButtondrawableBaseInset, r = iconButtondrawableBaseInset) private val iconButtonDrawableInsetsLeft = DrawableInsets(t = iconButtondrawableBaseInset, b = iconButtondrawableBaseInset, l = iconButtondrawableShiftInset, r = 0) private val iconButtonDrawableInsetsRight = DrawableInsets(t = iconButtondrawableBaseInset, b = iconButtondrawableBaseInset, l = 0, r = iconButtondrawableShiftInset) r = iconButtondrawableBaseInset ) private val iconButtonDrawableInsetsLeft = DrawableInsets( t = iconButtondrawableBaseInset, b = iconButtondrawableBaseInset, l = iconButtondrawableShiftInset, r = 0 ) private val iconButtonDrawableInsetsRight = DrawableInsets( t = iconButtondrawableBaseInset, b = iconButtondrawableBaseInset, l = 0, r = iconButtondrawableShiftInset ) // App Info Pill. private val appInfoPill = rootView.requireViewById<View>(R.id.app_info_pill) private val collapseMenuButton = appInfoPill.requireViewById<HandleMenuImageButton>( R.id.collapse_menu_button) R.id.collapse_menu_button ) @VisibleForTesting val appIconView = appInfoPill.requireViewById<ImageView>(R.id.application_icon) @VisibleForTesting val appNameView = appInfoPill.requireViewById<MarqueedTextView>(R.id.application_name) // Windowing Pill. private val windowingPill = rootView.requireViewById<View>(R.id.windowing_pill) private val fullscreenBtn = windowingPill.requireViewById<ImageButton>( R.id.fullscreen_button) R.id.fullscreen_button ) private val splitscreenBtn = windowingPill.requireViewById<ImageButton>( R.id.split_screen_button) R.id.split_screen_button ) private val floatingBtn = windowingPill.requireViewById<ImageButton>(R.id.floating_button) private val floatingBtnSpace = windowingPill.requireViewById<Space>( R.id.floating_button_space) R.id.floating_button_space ) private val desktopBtn = windowingPill.requireViewById<ImageButton>(R.id.desktop_button) private val desktopBtnSpace = windowingPill.requireViewById<Space>( R.id.desktop_button_space) R.id.desktop_button_space ) // More Actions Pill. private val moreActionsPill = rootView.requireViewById<View>(R.id.more_actions_pill) private val screenshotBtn = moreActionsPill.requireViewById<HandleMenuActionButton>( R.id.screenshot_button) R.id.screenshot_button ) private val newWindowBtn = moreActionsPill.requireViewById<HandleMenuActionButton>( R.id.new_window_button) R.id.new_window_button ) private val manageWindowBtn = moreActionsPill .requireViewById<HandleMenuActionButton>(R.id.manage_windows_button) private val changeAspectRatioBtn = moreActionsPill Loading @@ -517,11 +547,14 @@ class HandleMenu( // Open in Browser/App Pill. private val openInAppOrBrowserPill = rootView.requireViewById<View>( R.id.open_in_app_or_browser_pill) R.id.open_in_app_or_browser_pill ) private val openInAppOrBrowserBtn = openInAppOrBrowserPill.requireViewById<View>( R.id.open_in_app_or_browser_button) R.id.open_in_app_or_browser_button ) private val openByDefaultBtn = openInAppOrBrowserPill.requireViewById<ImageButton>( R.id.open_by_default_button) R.id.open_by_default_button ) private val decorThemeUtil = DecorThemeUtil(context) private val animator = HandleMenuAnimator(rootView, menuWidth, captionHeight.toFloat()) Loading Loading @@ -804,9 +837,11 @@ class HandleMenu( getString(R.string.open_in_browser_text) } val buttonRoot = openInAppOrBrowserBtn.requireViewById<LinearLayout>(R.id.action_button) val label = openInAppOrBrowserBtn.requireViewById<MarqueedTextView>(R.id.label) val image = openInAppOrBrowserBtn.requireViewById<ImageView>(R.id.image) openInAppOrBrowserBtn.contentDescription = btnText buttonRoot.contentDescription = btnText label.apply { text = btnText setTextColor(style.textColor) Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenuActionButton.kt +1 −2 Original line number Diff line number Diff line Loading @@ -23,9 +23,7 @@ import android.util.AttributeSet import android.view.LayoutInflater import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import androidx.core.content.withStyledAttributes import androidx.core.view.isGone import com.android.wm.shell.R /** Loading Loading @@ -54,6 +52,7 @@ class HandleMenuActionButton @JvmOverloads constructor( context.withStyledAttributes(attrs, R.styleable.HandleMenuActionButton) { textView.text = getString(R.styleable.HandleMenuActionButton_android_text) rootElement.contentDescription = getString(R.styleable.HandleMenuActionButton_android_text) textView.setTextColor(getColor(R.styleable.HandleMenuActionButton_android_textColor, 0)) iconView.setImageResource(getResourceId( R.styleable.HandleMenuActionButton_android_src, 0)) Loading Loading
libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu.xml +1 −7 Original line number Diff line number Diff line Loading @@ -43,8 +43,7 @@ android:layout_height="@dimen/desktop_mode_handle_menu_icon_radius" android:layout_marginStart="10dp" android:layout_marginEnd="12dp" android:contentDescription="@string/app_icon_text" android:importantForAccessibility="no"/> android:contentDescription="@string/app_icon_text" /> <com.android.wm.shell.windowdecor.MarqueedTextView android:id="@+id/application_name" Loading Loading @@ -142,7 +141,6 @@ android:contentDescription="@string/screenshot_text" android:text="@string/screenshot_text" android:src="@drawable/desktop_mode_ic_handle_menu_screenshot" android:importantForAccessibility="no" style="@style/DesktopModeHandleMenuActionButton"/> <com.android.wm.shell.windowdecor.HandleMenuActionButton Loading @@ -150,7 +148,6 @@ android:contentDescription="@string/new_window_text" android:text="@string/new_window_text" android:src="@drawable/desktop_mode_ic_handle_menu_new_window" android:importantForAccessibility="no" style="@style/DesktopModeHandleMenuActionButton"/> <com.android.wm.shell.windowdecor.HandleMenuActionButton Loading @@ -158,7 +155,6 @@ android:contentDescription="@string/manage_windows_text" android:text="@string/manage_windows_text" android:src="@drawable/desktop_mode_ic_handle_menu_manage_windows" android:importantForAccessibility="no" style="@style/DesktopModeHandleMenuActionButton"/> <com.android.wm.shell.windowdecor.HandleMenuActionButton Loading @@ -166,7 +162,6 @@ android:contentDescription="@string/change_aspect_ratio_text" android:text="@string/change_aspect_ratio_text" android:src="@drawable/desktop_mode_ic_handle_menu_change_aspect_ratio" android:importantForAccessibility="no" style="@style/DesktopModeHandleMenuActionButton"/> </LinearLayout> Loading @@ -186,7 +181,6 @@ android:text="@string/open_in_browser_text" android:src="@drawable/desktop_mode_ic_handle_menu_open_in_browser" style="@style/DesktopModeHandleMenuActionButton" android:importantForAccessibility="no" android:layout_width="0dp" android:layout_weight="1"/> Loading
libs/WindowManager/Shell/res/layout/desktop_mode_window_decor_handle_menu_action_button.xml +1 −2 Original line number Diff line number Diff line Loading @@ -22,8 +22,7 @@ android:layout_height="match_parent" android:gravity="start|center_vertical" android:paddingHorizontal="16dp" android:clickable="true" android:focusable="true" android:importantForAccessibility="yes" android:orientation="horizontal" android:background="?android:attr/selectableItemBackground"> Loading
libs/WindowManager/Shell/res/values/styles.xml +1 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ <item name="android:layout_height">52dp</item> <item name="android:textColor">@androidprv:color/materialColorOnSurface</item> <item name="android:drawableTint">@androidprv:color/materialColorOnSurface</item> <item name="android:importantForAccessibility">no</item> </style> <style name="DesktopModeHandleMenuActionButtonImage"> Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt +66 −31 Original line number Diff line number Diff line Loading @@ -109,15 +109,18 @@ class HandleMenu( get() = (DesktopModeFlags.ENABLE_HANDLE_INPUT_FIX.isTrue() && !taskInfo.isFreeform) private val pillTopMargin: Int = loadDimensionPixelSize( R.dimen.desktop_mode_handle_menu_pill_spacing_margin) R.dimen.desktop_mode_handle_menu_pill_spacing_margin ) private val menuWidth = loadDimensionPixelSize(R.dimen.desktop_mode_handle_menu_width) private val menuHeight = getHandleMenuHeight() private val marginMenuTop = loadDimensionPixelSize(R.dimen.desktop_mode_handle_menu_margin_top) private val marginMenuStart = loadDimensionPixelSize( R.dimen.desktop_mode_handle_menu_margin_start) R.dimen.desktop_mode_handle_menu_margin_start ) @VisibleForTesting var handleMenuViewContainer: AdditionalViewContainer? = null @VisibleForTesting var handleMenuView: HandleMenuView? = null Loading Loading @@ -240,7 +243,8 @@ class HandleMenu( val y = handleMenuPosition.y.toInt() handleMenuViewContainer = if ((!taskInfo.isFreeform && DesktopModeFlags.ENABLE_HANDLE_INPUT_FIX.isTrue()) || forceShowSystemBars) { || forceShowSystemBars ) { AdditionalSystemViewContainer( windowManagerWrapper = windowManagerWrapper, taskId = taskInfo.taskId, Loading @@ -251,7 +255,11 @@ class HandleMenu( flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE or WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH, view = handleMenuView.rootView, forciblyShownTypes = if (forceShowSystemBars) { systemBars() } else { 0 }, forciblyShownTypes = if (forceShowSystemBars) { systemBars() } else { 0 }, ignoreCutouts = Flags.showAppHandleLargeScreens() || BubbleAnythingFlagHelper.enableBubbleToFullscreen() ) Loading Loading @@ -369,7 +377,8 @@ class HandleMenu( inputPoint.y - globalMenuPosition.y ) if (splitScreenController.getSplitPosition(taskInfo.taskId) == SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT) { == SplitScreenConstants.SPLIT_POSITION_BOTTOM_OR_RIGHT ) { val leftStageBounds = Rect() splitScreenController.getStageBounds(leftStageBounds, Rect()) inputRelativeToMenu.x += leftStageBounds.width().toFloat() Loading Loading @@ -398,7 +407,8 @@ class HandleMenu( var menuHeight = loadDimensionPixelSize(R.dimen.desktop_mode_handle_menu_height) if (!shouldShowWindowingPill) { menuHeight -= loadDimensionPixelSize( R.dimen.desktop_mode_handle_menu_windowing_pill_height) R.dimen.desktop_mode_handle_menu_windowing_pill_height ) menuHeight -= pillTopMargin } if (!SHOULD_SHOW_SCREENSHOT_BUTTON) { Loading @@ -418,14 +428,16 @@ class HandleMenu( } if (!shouldShowChangeAspectRatioButton) { menuHeight -= loadDimensionPixelSize( R.dimen.desktop_mode_handle_menu_change_aspect_ratio_height) R.dimen.desktop_mode_handle_menu_change_aspect_ratio_height ) } if (!shouldShowMoreActionsPill) { menuHeight -= pillTopMargin } if (!shouldShowBrowserPill) { menuHeight -= loadDimensionPixelSize( R.dimen.desktop_mode_handle_menu_open_in_browser_pill_height) R.dimen.desktop_mode_handle_menu_open_in_browser_pill_height ) menuHeight -= pillTopMargin } return menuHeight Loading Loading @@ -468,48 +480,66 @@ class HandleMenu( // Insets for ripple effect of App Info Pill. and Windowing Pill. buttons val iconButtondrawableShiftInset = context.resources.getDimensionPixelSize( R.dimen.desktop_mode_handle_menu_icon_button_ripple_inset_shift) R.dimen.desktop_mode_handle_menu_icon_button_ripple_inset_shift ) val iconButtondrawableBaseInset = context.resources.getDimensionPixelSize( R.dimen.desktop_mode_handle_menu_icon_button_ripple_inset_base) R.dimen.desktop_mode_handle_menu_icon_button_ripple_inset_base ) private val iconButtonRippleRadius = context.resources.getDimensionPixelSize( R.dimen.desktop_mode_handle_menu_icon_button_ripple_radius) private val iconButtonDrawableInsetsBase = DrawableInsets(t = iconButtondrawableBaseInset, R.dimen.desktop_mode_handle_menu_icon_button_ripple_radius ) private val iconButtonDrawableInsetsBase = DrawableInsets( t = iconButtondrawableBaseInset, b = iconButtondrawableBaseInset, l = iconButtondrawableBaseInset, r = iconButtondrawableBaseInset) private val iconButtonDrawableInsetsLeft = DrawableInsets(t = iconButtondrawableBaseInset, b = iconButtondrawableBaseInset, l = iconButtondrawableShiftInset, r = 0) private val iconButtonDrawableInsetsRight = DrawableInsets(t = iconButtondrawableBaseInset, b = iconButtondrawableBaseInset, l = 0, r = iconButtondrawableShiftInset) r = iconButtondrawableBaseInset ) private val iconButtonDrawableInsetsLeft = DrawableInsets( t = iconButtondrawableBaseInset, b = iconButtondrawableBaseInset, l = iconButtondrawableShiftInset, r = 0 ) private val iconButtonDrawableInsetsRight = DrawableInsets( t = iconButtondrawableBaseInset, b = iconButtondrawableBaseInset, l = 0, r = iconButtondrawableShiftInset ) // App Info Pill. private val appInfoPill = rootView.requireViewById<View>(R.id.app_info_pill) private val collapseMenuButton = appInfoPill.requireViewById<HandleMenuImageButton>( R.id.collapse_menu_button) R.id.collapse_menu_button ) @VisibleForTesting val appIconView = appInfoPill.requireViewById<ImageView>(R.id.application_icon) @VisibleForTesting val appNameView = appInfoPill.requireViewById<MarqueedTextView>(R.id.application_name) // Windowing Pill. private val windowingPill = rootView.requireViewById<View>(R.id.windowing_pill) private val fullscreenBtn = windowingPill.requireViewById<ImageButton>( R.id.fullscreen_button) R.id.fullscreen_button ) private val splitscreenBtn = windowingPill.requireViewById<ImageButton>( R.id.split_screen_button) R.id.split_screen_button ) private val floatingBtn = windowingPill.requireViewById<ImageButton>(R.id.floating_button) private val floatingBtnSpace = windowingPill.requireViewById<Space>( R.id.floating_button_space) R.id.floating_button_space ) private val desktopBtn = windowingPill.requireViewById<ImageButton>(R.id.desktop_button) private val desktopBtnSpace = windowingPill.requireViewById<Space>( R.id.desktop_button_space) R.id.desktop_button_space ) // More Actions Pill. private val moreActionsPill = rootView.requireViewById<View>(R.id.more_actions_pill) private val screenshotBtn = moreActionsPill.requireViewById<HandleMenuActionButton>( R.id.screenshot_button) R.id.screenshot_button ) private val newWindowBtn = moreActionsPill.requireViewById<HandleMenuActionButton>( R.id.new_window_button) R.id.new_window_button ) private val manageWindowBtn = moreActionsPill .requireViewById<HandleMenuActionButton>(R.id.manage_windows_button) private val changeAspectRatioBtn = moreActionsPill Loading @@ -517,11 +547,14 @@ class HandleMenu( // Open in Browser/App Pill. private val openInAppOrBrowserPill = rootView.requireViewById<View>( R.id.open_in_app_or_browser_pill) R.id.open_in_app_or_browser_pill ) private val openInAppOrBrowserBtn = openInAppOrBrowserPill.requireViewById<View>( R.id.open_in_app_or_browser_button) R.id.open_in_app_or_browser_button ) private val openByDefaultBtn = openInAppOrBrowserPill.requireViewById<ImageButton>( R.id.open_by_default_button) R.id.open_by_default_button ) private val decorThemeUtil = DecorThemeUtil(context) private val animator = HandleMenuAnimator(rootView, menuWidth, captionHeight.toFloat()) Loading Loading @@ -804,9 +837,11 @@ class HandleMenu( getString(R.string.open_in_browser_text) } val buttonRoot = openInAppOrBrowserBtn.requireViewById<LinearLayout>(R.id.action_button) val label = openInAppOrBrowserBtn.requireViewById<MarqueedTextView>(R.id.label) val image = openInAppOrBrowserBtn.requireViewById<ImageView>(R.id.image) openInAppOrBrowserBtn.contentDescription = btnText buttonRoot.contentDescription = btnText label.apply { text = btnText setTextColor(style.textColor) Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenuActionButton.kt +1 −2 Original line number Diff line number Diff line Loading @@ -23,9 +23,7 @@ import android.util.AttributeSet import android.view.LayoutInflater import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import androidx.core.content.withStyledAttributes import androidx.core.view.isGone import com.android.wm.shell.R /** Loading Loading @@ -54,6 +52,7 @@ class HandleMenuActionButton @JvmOverloads constructor( context.withStyledAttributes(attrs, R.styleable.HandleMenuActionButton) { textView.text = getString(R.styleable.HandleMenuActionButton_android_text) rootElement.contentDescription = getString(R.styleable.HandleMenuActionButton_android_text) textView.setTextColor(getColor(R.styleable.HandleMenuActionButton_android_textColor, 0)) iconView.setImageResource(getResourceId( R.styleable.HandleMenuActionButton_android_src, 0)) Loading