diff options
| author | 2024-04-05 14:26:32 -0400 | |
|---|---|---|
| committer | 2024-04-08 13:37:37 +0000 | |
| commit | a67e1eefffd5056661a8825fcdedf455d78b332c (patch) | |
| tree | 11dfa83298629015873ef94d3e1d56a7ddb69099 | |
| parent | f0a301fccad6b532e8b1e0527cd5acff8705d20e (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
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 |