Loading libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/OpenByDefaultDialog.kt +20 −3 Original line number Diff line number Diff line Loading @@ -43,6 +43,8 @@ import com.android.window.flags.Flags import com.android.wm.shell.R import com.android.wm.shell.common.DisplayController import com.android.wm.shell.compatui.DialogAnimationController import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.DESKTOP_WINDOWING_APP_TO_WEB_CHANGE_OPEN_BY_DEFAULT_SETTINGS import com.android.wm.shell.shared.annotations.ShellMainThread import com.android.wm.shell.transition.Transitions import com.android.wm.shell.windowdecor.common.WindowDecorTaskResourceLoader Loading @@ -69,6 +71,7 @@ internal class OpenByDefaultDialog( @ShellMainThread private val mainDispatcher: MainCoroutineDispatcher, @ShellMainThread private val mainScope: CoroutineScope, private val listener: DialogLifecycleListener, private val desktopModeUiEventLogger: DesktopModeUiEventLogger, ) { private lateinit var dialog: OpenByDefaultDialogView private lateinit var viewHost: SurfaceControlViewHost Loading @@ -84,6 +87,7 @@ internal class OpenByDefaultDialog( private val domainVerificationManager = userContext.getSystemService(DomainVerificationManager::class.java)!! private val packageName = taskInfo.baseActivity?.packageName!! private var linkHandlingAllowed: Boolean = false private var loadAppInfoJob: Job? = null Loading Loading @@ -117,6 +121,13 @@ internal class OpenByDefaultDialog( dialog.setDismissOnClickListener { closeMenu() } dialog.setConfirmButtonClickListener { setDefaultLinkHandlingSetting() // Log if user is confirming settings change if (isConfirmingSettingsChange()) { desktopModeUiEventLogger.log( taskInfo, DESKTOP_WINDOWING_APP_TO_WEB_CHANGE_OPEN_BY_DEFAULT_SETTINGS ) } closeMenu() } Loading Loading @@ -166,9 +177,15 @@ internal class OpenByDefaultDialog( val userState = getDomainVerificationUserState(domainVerificationManager, packageName) ?: return val openInApp = userState.isLinkHandlingAllowed openInAppButton.isChecked = openInApp openInBrowserButton.isChecked = !openInApp linkHandlingAllowed = userState.isLinkHandlingAllowed openInAppButton.isChecked = linkHandlingAllowed openInBrowserButton.isChecked = !linkHandlingAllowed } private fun isConfirmingSettingsChange() = if (linkHandlingAllowed) { openInBrowserButton.isChecked } else { openInAppButton.isChecked } private fun setDefaultLinkHandlingSetting() { Loading libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt +7 −1 Original line number Diff line number Diff line Loading @@ -195,7 +195,13 @@ class DesktopModeUiEventLogger( @UiEvent(doc = "A11y service triggered a11y action to resize app window left") A11Y_ACTION_RESIZE_LEFT(2168), @UiEvent(doc = "A11y service triggered a11y action to resize app window right") A11Y_ACTION_RESIZE_RIGHT(2169); A11Y_ACTION_RESIZE_RIGHT(2169), @UiEvent(doc = "Switch to browser by clicking open in browser button in the handle menu") DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_BROWSER(2487), @UiEvent(doc = "Switch to app by clicking open in app button in the handle menu") DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_APP(2488), @UiEvent(doc = "Change link handling settings using the open by default dialog") DESKTOP_WINDOWING_APP_TO_WEB_CHANGE_OPEN_BY_DEFAULT_SETTINGS(2489); override fun getId(): Int = mId } Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +2 −1 Original line number Diff line number Diff line Loading @@ -1399,7 +1399,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin public void onDialogDismissed() { mOpenByDefaultDialog = null; } } }, mDesktopModeUiEventLogger ); } Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt +9 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,8 @@ import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.A11Y_APP_HANDLE_MENU_DESKTOP_VIEW import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.A11Y_APP_HANDLE_MENU_FULLSCREEN import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.A11Y_APP_HANDLE_MENU_SPLIT_SCREEN import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_APP import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_BROWSER import com.android.wm.shell.shared.annotations.ShellMainThread import com.android.wm.shell.shared.bubbles.BubbleAnythingFlagHelper import com.android.wm.shell.shared.bubbles.ContextUtils.isRtl Loading Loading @@ -228,6 +230,13 @@ private constructor( bind(taskInfo, shouldShowMoreActionsPill) this.onOpenInAppOrBrowserClickListener = { openInAppOrBrowserClickListener.invoke(openInAppOrBrowserIntent!!) val uiEvent = if (isBrowserApp) { DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_APP } else { DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_BROWSER } desktopModeUiEventLogger.log(taskInfo, uiEvent) onHandleMenuClicked.invoke() } this.onOpenByDefaultClickListener = onOpenByDefaultClickListener Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/caption/AppHandleController.kt +1 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,7 @@ class AppHandleController( openByDefaultDialog = null } }, desktopModeUiEventLogger, ) } Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/apptoweb/OpenByDefaultDialog.kt +20 −3 Original line number Diff line number Diff line Loading @@ -43,6 +43,8 @@ import com.android.window.flags.Flags import com.android.wm.shell.R import com.android.wm.shell.common.DisplayController import com.android.wm.shell.compatui.DialogAnimationController import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.DESKTOP_WINDOWING_APP_TO_WEB_CHANGE_OPEN_BY_DEFAULT_SETTINGS import com.android.wm.shell.shared.annotations.ShellMainThread import com.android.wm.shell.transition.Transitions import com.android.wm.shell.windowdecor.common.WindowDecorTaskResourceLoader Loading @@ -69,6 +71,7 @@ internal class OpenByDefaultDialog( @ShellMainThread private val mainDispatcher: MainCoroutineDispatcher, @ShellMainThread private val mainScope: CoroutineScope, private val listener: DialogLifecycleListener, private val desktopModeUiEventLogger: DesktopModeUiEventLogger, ) { private lateinit var dialog: OpenByDefaultDialogView private lateinit var viewHost: SurfaceControlViewHost Loading @@ -84,6 +87,7 @@ internal class OpenByDefaultDialog( private val domainVerificationManager = userContext.getSystemService(DomainVerificationManager::class.java)!! private val packageName = taskInfo.baseActivity?.packageName!! private var linkHandlingAllowed: Boolean = false private var loadAppInfoJob: Job? = null Loading Loading @@ -117,6 +121,13 @@ internal class OpenByDefaultDialog( dialog.setDismissOnClickListener { closeMenu() } dialog.setConfirmButtonClickListener { setDefaultLinkHandlingSetting() // Log if user is confirming settings change if (isConfirmingSettingsChange()) { desktopModeUiEventLogger.log( taskInfo, DESKTOP_WINDOWING_APP_TO_WEB_CHANGE_OPEN_BY_DEFAULT_SETTINGS ) } closeMenu() } Loading Loading @@ -166,9 +177,15 @@ internal class OpenByDefaultDialog( val userState = getDomainVerificationUserState(domainVerificationManager, packageName) ?: return val openInApp = userState.isLinkHandlingAllowed openInAppButton.isChecked = openInApp openInBrowserButton.isChecked = !openInApp linkHandlingAllowed = userState.isLinkHandlingAllowed openInAppButton.isChecked = linkHandlingAllowed openInBrowserButton.isChecked = !linkHandlingAllowed } private fun isConfirmingSettingsChange() = if (linkHandlingAllowed) { openInBrowserButton.isChecked } else { openInAppButton.isChecked } private fun setDefaultLinkHandlingSetting() { Loading
libs/WindowManager/Shell/src/com/android/wm/shell/desktopmode/DesktopModeUiEventLogger.kt +7 −1 Original line number Diff line number Diff line Loading @@ -195,7 +195,13 @@ class DesktopModeUiEventLogger( @UiEvent(doc = "A11y service triggered a11y action to resize app window left") A11Y_ACTION_RESIZE_LEFT(2168), @UiEvent(doc = "A11y service triggered a11y action to resize app window right") A11Y_ACTION_RESIZE_RIGHT(2169); A11Y_ACTION_RESIZE_RIGHT(2169), @UiEvent(doc = "Switch to browser by clicking open in browser button in the handle menu") DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_BROWSER(2487), @UiEvent(doc = "Switch to app by clicking open in app button in the handle menu") DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_APP(2488), @UiEvent(doc = "Change link handling settings using the open by default dialog") DESKTOP_WINDOWING_APP_TO_WEB_CHANGE_OPEN_BY_DEFAULT_SETTINGS(2489); override fun getId(): Int = mId } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +2 −1 Original line number Diff line number Diff line Loading @@ -1399,7 +1399,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin public void onDialogDismissed() { mOpenByDefaultDialog = null; } } }, mDesktopModeUiEventLogger ); } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/HandleMenu.kt +9 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,8 @@ import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.A11Y_APP_HANDLE_MENU_DESKTOP_VIEW import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.A11Y_APP_HANDLE_MENU_FULLSCREEN import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.A11Y_APP_HANDLE_MENU_SPLIT_SCREEN import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_APP import com.android.wm.shell.desktopmode.DesktopModeUiEventLogger.DesktopUiEventEnum.DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_BROWSER import com.android.wm.shell.shared.annotations.ShellMainThread import com.android.wm.shell.shared.bubbles.BubbleAnythingFlagHelper import com.android.wm.shell.shared.bubbles.ContextUtils.isRtl Loading Loading @@ -228,6 +230,13 @@ private constructor( bind(taskInfo, shouldShowMoreActionsPill) this.onOpenInAppOrBrowserClickListener = { openInAppOrBrowserClickListener.invoke(openInAppOrBrowserIntent!!) val uiEvent = if (isBrowserApp) { DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_APP } else { DESKTOP_WINDOWING_APP_TO_WEB_OPEN_IN_BROWSER } desktopModeUiEventLogger.log(taskInfo, uiEvent) onHandleMenuClicked.invoke() } this.onOpenByDefaultClickListener = onOpenByDefaultClickListener Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/caption/AppHandleController.kt +1 −0 Original line number Diff line number Diff line Loading @@ -363,6 +363,7 @@ class AppHandleController( openByDefaultDialog = null } }, desktopModeUiEventLogger, ) } Loading