Loading packages/SystemUI/aconfig/systemui.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -777,6 +777,16 @@ flag { } } flag { name: "screenshot_announce_live_region" namespace: "systemui" description: "Use live region for screenshot saving announcement" bug: "383642111" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "screenshot_action_dismiss_system_windows" namespace: "systemui" Loading packages/SystemUI/res/layout/screenshot_shelf.xml +7 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,13 @@ android:layout_height="match_parent" android:clipChildren="false" android:clipToPadding="false"> <View android:id="@+id/screenshot_saving_live_region" android:layout_width="1dp" android:layout_height="1dp" android:accessibilityLiveRegion="polite" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"/> <View android:id="@+id/screenshot_preview_border" android:layout_width="0dp" Loading packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.kt +6 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.window.WindowContext import androidx.core.animation.doOnEnd import com.android.internal.logging.UiEventLogger import com.android.settingslib.applications.InterestingConfigChanges import com.android.systemui.Flags.screenshotAnnounceLiveRegion import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.clipboardoverlay.ClipboardOverlayController Loading Loading @@ -254,9 +255,13 @@ internal constructor( private fun prepareViewForNewScreenshot(screenshot: ScreenshotData, oldPackageName: String?) { window.whenWindowAttached { announcementResolver.getScreenshotAnnouncement(screenshot.userHandle.identifier) { if (screenshotAnnounceLiveRegion()) { viewProxy.setSavingAnnouncement(it) } else { viewProxy.announceForAccessibility(it) } } } viewProxy.reset() Loading packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotShelfViewProxy.kt +14 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import androidx.appcompat.content.res.AppCompatResources import androidx.core.animation.doOnEnd import androidx.core.animation.doOnStart import com.android.internal.logging.UiEventLogger import com.android.systemui.Flags.screenshotAnnounceLiveRegion import com.android.systemui.log.DebugLogger.debugLog import com.android.systemui.res.R import com.android.systemui.screenshot.LogConfig.DEBUG_DISMISS Loading Loading @@ -208,6 +209,9 @@ constructor( screenshotTakenInPortrait: Boolean, onTransitionPrepared: Runnable, ) { if (screenshotAnnounceLiveRegion()) { setSavingAnnouncement("") } viewModel.setScrollingScrimBitmap(newScreenshot) viewModel.setScrollableRect(scrollableAreaOnScreen(response)) animationController.fadeForLongScreenshotTransition() Loading Loading @@ -262,7 +266,13 @@ constructor( view.requestFocus() } fun announceForAccessibility(string: String) = view.announceForAccessibility(string) fun setSavingAnnouncement(string: String) { view.setSavingAnnouncement(string) } fun announceForAccessibility(string: String) { view.announceForAccessibility(string) } fun prepareEntranceAnimation(runnable: Runnable) { view.viewTreeObserver.addOnPreDrawListener( Loading @@ -278,6 +288,9 @@ constructor( } fun fadeForSharedTransition() { if (screenshotAnnounceLiveRegion()) { setSavingAnnouncement("") } animationController.fadeForSharedTransition() } Loading packages/SystemUI/src/com/android/systemui/screenshot/ui/ScreenshotShelfView.kt +7 −0 Original line number Diff line number Diff line Loading @@ -197,6 +197,13 @@ class ScreenshotShelfView(context: Context, attrs: AttributeSet? = null) : } } fun setSavingAnnouncement(string: String) { val announceRegion = findViewById<View>(R.id.screenshot_saving_live_region) // clear the description to make sure we announce for successive screenshots announceRegion.contentDescription = "" announceRegion.contentDescription = string } // Max function for two or more params. private fun max(first: Int, second: Int, vararg items: Int): Int { var largest = if (first > second) first else second Loading Loading
packages/SystemUI/aconfig/systemui.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -777,6 +777,16 @@ flag { } } flag { name: "screenshot_announce_live_region" namespace: "systemui" description: "Use live region for screenshot saving announcement" bug: "383642111" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "screenshot_action_dismiss_system_windows" namespace: "systemui" Loading
packages/SystemUI/res/layout/screenshot_shelf.xml +7 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,13 @@ android:layout_height="match_parent" android:clipChildren="false" android:clipToPadding="false"> <View android:id="@+id/screenshot_saving_live_region" android:layout_width="1dp" android:layout_height="1dp" android:accessibilityLiveRegion="polite" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent"/> <View android:id="@+id/screenshot_preview_border" android:layout_width="0dp" Loading
packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.kt +6 −1 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.window.WindowContext import androidx.core.animation.doOnEnd import com.android.internal.logging.UiEventLogger import com.android.settingslib.applications.InterestingConfigChanges import com.android.systemui.Flags.screenshotAnnounceLiveRegion import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.clipboardoverlay.ClipboardOverlayController Loading Loading @@ -254,9 +255,13 @@ internal constructor( private fun prepareViewForNewScreenshot(screenshot: ScreenshotData, oldPackageName: String?) { window.whenWindowAttached { announcementResolver.getScreenshotAnnouncement(screenshot.userHandle.identifier) { if (screenshotAnnounceLiveRegion()) { viewProxy.setSavingAnnouncement(it) } else { viewProxy.announceForAccessibility(it) } } } viewProxy.reset() Loading
packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotShelfViewProxy.kt +14 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import androidx.appcompat.content.res.AppCompatResources import androidx.core.animation.doOnEnd import androidx.core.animation.doOnStart import com.android.internal.logging.UiEventLogger import com.android.systemui.Flags.screenshotAnnounceLiveRegion import com.android.systemui.log.DebugLogger.debugLog import com.android.systemui.res.R import com.android.systemui.screenshot.LogConfig.DEBUG_DISMISS Loading Loading @@ -208,6 +209,9 @@ constructor( screenshotTakenInPortrait: Boolean, onTransitionPrepared: Runnable, ) { if (screenshotAnnounceLiveRegion()) { setSavingAnnouncement("") } viewModel.setScrollingScrimBitmap(newScreenshot) viewModel.setScrollableRect(scrollableAreaOnScreen(response)) animationController.fadeForLongScreenshotTransition() Loading Loading @@ -262,7 +266,13 @@ constructor( view.requestFocus() } fun announceForAccessibility(string: String) = view.announceForAccessibility(string) fun setSavingAnnouncement(string: String) { view.setSavingAnnouncement(string) } fun announceForAccessibility(string: String) { view.announceForAccessibility(string) } fun prepareEntranceAnimation(runnable: Runnable) { view.viewTreeObserver.addOnPreDrawListener( Loading @@ -278,6 +288,9 @@ constructor( } fun fadeForSharedTransition() { if (screenshotAnnounceLiveRegion()) { setSavingAnnouncement("") } animationController.fadeForSharedTransition() } Loading
packages/SystemUI/src/com/android/systemui/screenshot/ui/ScreenshotShelfView.kt +7 −0 Original line number Diff line number Diff line Loading @@ -197,6 +197,13 @@ class ScreenshotShelfView(context: Context, attrs: AttributeSet? = null) : } } fun setSavingAnnouncement(string: String) { val announceRegion = findViewById<View>(R.id.screenshot_saving_live_region) // clear the description to make sure we announce for successive screenshots announceRegion.contentDescription = "" announceRegion.contentDescription = string } // Max function for two or more params. private fun max(first: Int, second: Int, vararg items: Int): Int { var largest = if (first > second) first else second Loading