summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Miranda Kephart <mkephart@google.com> 2024-04-05 14:26:32 -0400
committer Matt Casey <mrcasey@google.com> 2024-04-08 13:37:37 +0000
commita67e1eefffd5056661a8825fcdedf455d78b332c (patch)
tree11dfa83298629015873ef94d3e1d56a7ddb69099
parentf0a301fccad6b532e8b1e0527cd5acff8705d20e (diff)
Add scroll chip to screenshot shelf ui
Bug: 329659738 Test: manual (same behavior as old scroll chip) Flag: ACONFIG com.android.systemui.screenshot_shelf_ui DEVELOPMENT Change-Id: I09a62c7bab7defbcd94dbef54d7a2526180b8b8d Merged-In: I09a62c7bab7defbcd94dbef54d7a2526180b8b8d
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotActionsProvider.kt13
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java16
-rw-r--r--packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java10
3 files changed, 28 insertions, 11 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotActionsProvider.kt b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotActionsProvider.kt
index 595ddc0d9f83..f69021f34ebb 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotActionsProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotActionsProvider.kt
@@ -40,6 +40,7 @@ import dagger.assisted.AssistedInject
* implementation.
*/
interface ScreenshotActionsProvider {
+ fun onScrollChipReady(onClick: Runnable)
fun setCompletedScreenshot(result: ScreenshotSavedResult)
fun onAssistContentAvailable(assistContent: AssistContent) {}
@@ -145,6 +146,18 @@ constructor(
}
}
+ override fun onScrollChipReady(onClick: Runnable) {
+ viewModel.addAction(
+ ActionButtonViewModel(
+ AppCompatResources.getDrawable(context, R.drawable.ic_screenshot_scroll),
+ context.resources.getString(R.string.screenshot_scroll_label),
+ context.resources.getString(R.string.screenshot_scroll_label),
+ ) {
+ onClick.run()
+ }
+ )
+ }
+
override fun setCompletedScreenshot(result: ScreenshotSavedResult) {
if (this.result != null) {
Log.e(TAG, "Got a second completed screenshot for existing request!")
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java
index ccbe08b841c7..f43882c9ec28 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotController.java
@@ -621,14 +621,26 @@ public class ScreenshotController {
mDisplayId,
mWindow.getDecorView().getWindowToken(),
(response) -> {
- mViewProxy.showScrollChip(response.getPackageName(),
- () -> onScrollButtonClicked(owner, response));
+ mUiEventLogger.log(ScreenshotEvent.SCREENSHOT_LONG_SCREENSHOT_IMPRESSION,
+ 0, response.getPackageName());
+ if (screenshotShelfUi() && mActionsProvider != null) {
+ mActionsProvider.onScrollChipReady(
+ () -> onScrollButtonClicked(owner, response));
+ } else {
+ mViewProxy.showScrollChip(response.getPackageName(),
+ () -> onScrollButtonClicked(owner, response));
+ }
return Unit.INSTANCE;
}
);
}
private void onScrollButtonClicked(UserHandle owner, ScrollCaptureResponse response) {
+ if (DEBUG_INPUT) {
+ Log.d(TAG, "scroll chip tapped");
+ }
+ mUiEventLogger.log(ScreenshotEvent.SCREENSHOT_LONG_SCREENSHOT_REQUESTED, 0,
+ response.getPackageName());
Bitmap newScreenshot = mImageCapture.captureDisplay(mDisplayId, getFullScreenRect());
if (newScreenshot == null) {
Log.e(TAG, "Failed to capture current screenshot for scroll transition!");
diff --git a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java
index 65e845749f9e..59e38a836258 100644
--- a/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/ScreenshotView.java
@@ -259,16 +259,8 @@ public class ScreenshotView extends FrameLayout implements
if (DEBUG_SCROLL) {
Log.d(TAG, "Showing Scroll option");
}
- mUiEventLogger.log(ScreenshotEvent.SCREENSHOT_LONG_SCREENSHOT_IMPRESSION, 0, packageName);
mScrollChip.setVisibility(VISIBLE);
- mScrollChip.setOnClickListener((v) -> {
- if (DEBUG_INPUT) {
- Log.d(TAG, "scroll chip tapped");
- }
- mUiEventLogger.log(ScreenshotEvent.SCREENSHOT_LONG_SCREENSHOT_REQUESTED, 0,
- packageName);
- onClick.run();
- });
+ mScrollChip.setOnClickListener((v) -> onClick.run());
}
@Override // ViewTreeObserver.OnComputeInternalInsetsListener