| Commit message (Collapse) | Author | Age | Files | Lines |
| |\
| |
| |
| |
| |
| |
| |
| | |
https://android.googlesource.com/platform/frameworks/base into HEAD
Android 13.0.0 release 76
Change-Id: Id0fa6f618d383eecee8fd2d96761f1be82bb3b99
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently, we extract the quickshare intent and re-wrap it as a new
PendingIntent once we get the screenshot URI. This is insecure as
it leads to executing the original with SysUI's permissions, which
the app may not have. This change switches to using Intent.fillin
to add the URI, keeping the original PendingIntent and original
permission set.
Bug: 278720336
Fix: 278720336
Test: manual (to test successful quickshare), atest
SaveImageInBackgroundTaskTest (to verify original pending intent
unchanged)
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:589ce3909c6e9e30f073df86e7de4503854a032a)
Merged-In: Icad3d5f939fcfb894e2038948954bc2735dbe326
Change-Id: Icad3d5f939fcfb894e2038948954bc2735dbe326
|
| |\|
| |
| |
| |
| |
| |
| | |
https://android.googlesource.com/platform/frameworks/base into t13.0
Android 13.0.0 Release 52 (TQ3A.230605.012)
Change-Id: Ic80f318636f1f70bbd009504352ddde511d0dead
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is essentially the same fix as ag/20620698; it got partially
reverted (unintentionally) as part of a later refactor, probably
due to version shear. The result is that the second call to
setContentView resets the screenshot focus that was just requested,
causing us to no longer receive back key events.
This change removes the redundant call to setContentView (which
should only be called once, in reloadAssets during the constructor)
so that the ScreenshotView retains focus correctly.
Bug: 271497893
Fix: 271497893
Test: manual (by swiping back during a screenshot and verifying that
the screenshot UI is dismissed)
Change-Id: I9ed908e84b8f69e48c900de90d378c4fda0ff7f9
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently we don't set mScreenBitmap until after the fork to just
show a toast if user setup is incomplete. This causes us to attempt
to save a null bitmap. This change moves the line earlier so that
we successfully save the screenshot (and show a toast) before user
setup is complete.
Bug: 271217041
Fix: 271217041
Test: manual (on phone flashed to master)
Change-Id: I5f2312acc318d385420532476b5964e344c4b68e
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The screenshot metadata work consisted of two things:
1. Flag-guarded refactors to support metadata handling.
2. The actual fetching and sending of the metadata URL itself.
The second part we've chosen to leave in teamfood for an extended time,
but some other features were expecting to launch along with the
flag-guarded refactor, so we need to flag and launch that separately.
No behavior change in this CL, just splitting one teamfood flag into two
teamfood flags.
Bug: 268484562
Bug: 268484915
Test: atest TakeScreenshotServiceTest
Change-Id: I4654b86206f77a589c1f95565ddb0622c0ce5849
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The notification itself won't be hooked up until android U.
- The message container now has two (View.GONE) children, one for work
profile first run, the other for screenshot detection.
- All interactions with this space go through
MessageContainerController.
- Populating the message space has two phases: figuring out which
messages want to be shown, then showing no more than one. These are
implemented as separate methods on each of
ScreenshotDetectionController and WorkProfileMessageController.
MessageContainerController no longer knows the details of these views.
- ScreenshotDetectionController doesn't do the actual detection yet, but
the UI bits have been manually tested.
- Moved the MessageContainerController.onScreenshotTaken calls to right
after the entrance animation completes in ScreenshotController.
Flags: Added a new SCREENSHOT_DETECTION flag. The detection and relevant
display code are protected by this. All other changes to the
message space are protected by the work profile flag.
Test: atest com.android.systemui.screenshot
Bug: 265937777
Change-Id: Id1e51ffcb322839badf4f1d81a5aafceb0b67a06
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Slide up from the bottom, fade in. Animation happens after the
screenshot entrance animation (same time the view appeared before). This
isn't meant to be a final animation, just to put something in so it's
not so jarring.
Includes some changes in preparation for the message area being able to
support multiple types of content:
1. Moved all interactions with the view to MessageContainerController,
which will be able to handle different types of content. This isn't
entirely generic as it does contain the view code for the work
profile first run.
2. Moved work profile first run view code to its own XML to let
different content swap in more easily.
The animations themselves are only called by flag-protected code, but a
couple of aspects are not fully flag-protected:
1. The message container view is now INVISIBLE instead of GONE, and is
shifted down (y-axis) to be outside of the containing ConstraintLayout.
2. The message container is attached to a Guideline which starts off at
the bottom of the screen. The actions container sits atop that
guideline. No user-visible change, just expressed with a slightly
different structure.
3. Slight increase in the bottom margin of the actions container and the
message container, as it was being clipped by the navbar.
Test: Visual inspection of the flow
Bug: 254245929
Change-Id: Ie1b97f841bb28de52a8a9ea9ac5ed48c3f694abc
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In multi-user multi-display systems where there could be multiple
SystemUI instances running, the concept of what displays are relevant
for a particular SystemUI may change. By adding a DisplayTracker class
to abstract away display retrieval and callbacks, these instances can
return the information that is most accurate for them.
Bug: 256236871
Test: atest SystemUITests
Change-Id: I51c1a380a344fb45d5e0de2c5c6ba5610733a3a2
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Add contextUrl to ScreenshotData.
- Fork AssistContentRequester from launcher, adapt slightly for sysui
dagger.
- Request the assist content (async) if the task ID is available.
- Set the URL as EXTRA_TEXT if available. Don't set the subject in the
share if we have EXTRA_TEXT, as they seem to conflict with each other
in some apps.
- Slight refactor in ActionIntentCreator to make the various ways to
create share intents clearer.
Flag: All code changes (beyond variable existence) are protected by the
SCREENSHOT_METADATA flag, currently disabled. The work profile
screenshots flag is also required for this to work properly (in
teamfood).
Bug: 242791070
Test: atest com.android.systemui.screenshot
Test: Verify that context URL from chrome passes all the way through
when sharing with Gmail.
Merged-In: I39c3503147631f4ef79088f23c201bbad7405d16
Change-Id: I39c3503147631f4ef79088f23c201bbad7405d16
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of passing around a handful of objects, use a single object to
represent the accumulated state in the processing pipeline.
This is to facilitate the passing of screenshot metadata (in a later
CL).
Flag: All behavior changes are protected by SCREENSHOT_METADATA flag,
several methods in the acquisition pipeline have been forked to
use the new data structure.
Bug: 265075469
Test: atest RequestProcessorTest
Test: atest TakeScreenshotServiceTest
Test: atest ScreenshotDataTest
Change-Id: I65b996215a7c0cc2040390cca5876c22cb216b22
|
| | |\ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently, ScreenshotHelper provides utility functions to convert
between a hardware bitmap and a parcelable form for sending between
processes, but the originating code must handle the conversion itself.
This change moves the conversion so that it occurs seamlessly
inside of the ScreenshotRequest class, and refactors the inputs
to ScreenshotHelper slightly so that the ScreenshotRequest data class
is what gets passed in.
Bug: 264457397
Test: atest
Merged-In: I1041bbcfdc5f5ece6e98bd0844017d4f3dc4e9f3
Change-Id: I1041bbcfdc5f5ece6e98bd0844017d4f3dc4e9f3
|
| | |\ \ |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We were only requesting focus once, on screenshot view inflation,
and the focus got reset when window.setContentView was called,
causing us to no longer receive key events. This change moves the
setContentView call to only happen once, and requests focus
explicitly for each screenshot.
Test: manual -- took two screenshots in succession and verified that
back gesture worked to dismiss screenshot
Bug: 259490332
Fix: 259490332
Change-Id: Ia0dd38b32f7986088b87f3838bcb05dbbb02238d
|
| | |\ \ \
| | |_|/
| |/| | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Bug: 254245929
Fix: 254245929
Test: manual (visual change)
Change-Id: Ic068500d2819134423c7c82f5f4cb7c2908a2894
|
| | |\ \ \
| | |/ /
| |/| | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Show until the user dismisses it.
- Fetch the app icon based upon config ComponentName.
- Fetch the app name based upon config.
- Extract relevant logic to WorkProfileMessageController
- Some no-op cleanups in SaveIMageInBackgroundTask to prevent sysui
studio from complaining.
Flag: The calls into the new message controller are protected by
SCREENSHOT_WORK_PROFILE_POLICY (in teamfood).
Bug: 254245929
Test: atest WorkProfileMessageControllerTest
Test: Manually testing dismissal and UI.
Change-Id: I943303992fdc2caeba76a06f88c1b91419d02be8
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
screenshots
Change-Id: I718cb0d8516d72d55fd439b132c27e6edc81158c
|
| |\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
https://android.googlesource.com/platform/frameworks/base into t13.0
Android 13.0.0 release 35
Change-Id: I709958b2f015d1774b2ece25894467c3a279f93c
|
| | |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently, if the screenshot UI is dismissed before the screenshot
finishes saving, we'll get a spurious "SCREENSHOT_INTERACTION_TIMEOUT"
log. This is because the screenshot saving triggers
"showUiOnActionsReady", which updates the UI and resets the timeout.
Updating the UI is a no-op in this situation since the window/view
are no longer attached, but the timeout is reset, causing a
timeout log six seconds later.
It doesn't make any sense to try to show UI after dismissal, so we
should just do the same thing we do for the "old" screenshot during
successive screenshots and save silently.
Bug: 262242456
Fix: 262242456
Test: make statsd_testdrive && $ANDROID_HOST_OUT/bin/statsd_testdrive 90
Change-Id: I0de70d839502c7799da8a8b31e69cfbca0955bd4
|
| | |\ \ |
|
| | | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Guarded by the SCREENSHOT_WORK_PROFILE_POLICY flag.
Bug: 258706100
Fix: 258706100
Test: manual (using talkback)
Change-Id: I70af7253d8bb951cf64da3d024dd2a038db4ce99
|
| | |\ \ |
|
| | | |/
| | |
| | |
| | |
| | |
| | | |
Bug: 258493176
Test: Tested manually, as discussed with gwasserman@, it is not feasible to write a test for this right now.
Change-Id: I30e5a587ae8121dbbfc61e15f6b904e67ee52a91
|
| | |\ \ |
|
| | | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Log after it's saved to a managed user.
Bug: 258490918
Test: Build, validate log
Change-Id: Ia1370c7a01153af6b99759ed95ddab7d2042b142
|
| | |\ \
| | |/
| |/|
| | | |
tm-qpr-dev
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In rare cases they may be blocking the shared element transition.
Bug: 241048682
Test: Manual reproduction of bug (long screenshot of quick actions edit
screen)
Change-Id: I069c8fb55a17ac456c7ced795ab4a23856eb9cda
|
| | |\ \ |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Use the ActionIntentExecutor for edit/share there as well.
Logic changes are flagged (everything outside of that is just parameter
passing).
Shared element transition from work profile long screenshots -> markup
wasn't working, so I've omitted it for now.
Bug: 231957192
Test: Manual testing with and without the flag, work and personal
profile long screenshots.
Change-Id: I6d035bfd1838900f8004dbb5bc8f9ae5411e960d
|
| | |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Test: Setup a work profile
Test: Take a screenshot of a standard app
Test: Observe normal screenshot flow
Test: Take a screenshot of a work profile app
Test: Observe that a notification appears below the screenshot
BUG: 254245929
Change-Id: Ib48861fbe8bf28d7a1cfbb9ce1b60e2af1c3018e
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously work profile screenshots from overview would get saved to
work profile even if the feature wasn't enabled (downstream code assumed
that the userId would only be wp if the feature was enabled).
This CL removes that assumption, only saving to a different profile if
the flag is enabled.
Bug: 255971910
Test: Work and personal profile screenshots from overview and key chord
with the flags enabled and disabled.
Test: atest TakeScreenshotServiceTest
Test: atest ImageExporterTest
Change-Id: If4164373e28b920ef4bea16902ba3455f09b6893
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Flag: SCREENSHOT_WORK_PROFILE_POLICY
Bug: 254245249
Test: visual change only; badge appears when screenshot is taken
on a work profile app with the SCREENSHOT_WORK_PROFILE_POLICY flag
on
Change-Id: I37f89d3dc78f7937a6725d3a8fd2fdc579ec6cbd
|
| | |\ |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In order to be able to proxy the permissions to read/write the
screenshot when editing/sharing, the intents must be launched from a
service running *as* the work profile user (if the screenshot is work
profile). That is done with ScreenshotProxyService.
In order to untangle action execution to accomodate this, I created
ActionIntentExecutor, which does the following:
1. Dismisses the keyguard
2. Launches the intent (either directly if it's the main user, or
delegating to the cross profile service if it's not)
3. Override some transition logic for shared element.
This flow is used whenever the work profile flag is set (it works for
either profile, but is required for work profile).
Once we switch to this model, we can drop a lot of the
SaveImageInBackgroundTask action code, drop ActionProxyReceiver entirely,
etc.
Extracted intent creation to its own class so it could be tested.
All behavior changes covered by currently-off flags.
Known issues:
1. This doesn't fix smart actions
2. If you do an action on the lock screen, the bouncer doesn't come up
in the new implementation. I verified that the same call is being
made and it's even getting to the bouncer's show() call but haven't
figured out what's wrong here yet.
Bug: 231957192
Test: manual sharing and editing screenshtos of wp and non-wp apps.
Change-Id: Id2b423c22d209fc73f796ed6ba6e3d153e0f638e
|
| | |\ \
| | |/
| |/| |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently we log a "swipe dismiss" event whenever we animate to the
side, even if it wasn't caused by a swipe -- e.g. if the UI times
out, we log both a "timeout" and a "swipe dismiss" event. This
change fixes the logging logic so that we only log swipe dismiss
if it was caused by a swipe/fling, as well as adding a couple
of missing dismissal logs in edge cases.
Bug: 252823661
Test: atest DraggableConstraintLayoutTest
Change-Id: I437de637e606f4d2fe806ca6dd6a397b4ca372c6
|
| | |\ \ |
|
| | | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It's broken currently, is extremely difficult to access, and will
need to be heavily rewritten/refactored anyway if we decide to
bring it back.
Fix: 249325548
Test: adb shell input keycombination -t 300 META_LEFT CTRL_LEFT
SHIFT_LEFT S
(now takes a regular screenshot)
Change-Id: I2cde564f6369b88bd4c6b20a9eecf8172fae7e7a
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When a work profile screenshot is taken, propagate the
owner UserHandle through to the Image export step. This
change will write the image to the correct user profile
and generate a URI with the userId embedded within using
the form:
content://10@media/external/images/media/000001.png
Since URIs are user-specific, but not unique among users
the userId prefix will carry this information through
to downstream consumers.
The ID can easily be retrieved from the URI using:
int userId = ContentProvider.getUserIdFromUri(uri)
If there is no userId within the URI, the return value
will be the same as Process.myUserHandle(), the user of
the current process.
Because of this, an explicit UserHandle may not be
needed if this information is conveyed entirely within
the URI (it is included in this CL as-is).
All behavior changes arising from these changes are
currently gated on the SysUi flags:
SCREENSHOT_REQUEST_PROCESSOR
SCREENSHOT_WORK_PROFILE_POLICY
This change does not include support for long screenshots nor fixes for
screenshot actions (share, edit, etc).
Bug: 159422805
Test: atest ImageExporterTest
Change-Id: I641544f6a1b4685c743e7983d0af156e32796f56
|
| | |
| |
| |
| |
| |
| | |
This prevents submitting tasks after the threadloop has been shutdown.
Change-Id: Id899ddc9476d045c78c4e85bfac7e7a9b29cee6d
|
| |\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Android 13.0.0 Release 16 (TQ1A.221205.011)
Also included the following reverts:
1. Revert "fw/b: Import Wi-Fi standard icon [1/2]"
2. Revert "Add preference for toggling the wallpaper zooming animation"
Co-authored-by: Semavi Ulusoy <doc.divxm@gmail.com>
Change-Id: I9a6b51e452c28d10411712c59778bb54da5783e9
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It's possible for the screenshot process to not get shut down as
soon as the UI disappears. If this occurs after a shared transition
(which sets the preview to alpha=0 to hide it as part of the
transition), the preview gets stuck at alpha=0 and isn't visible.
Always resetting the screenshot view and setting alpha=1 guarantees
that regardless of the state of the screenshot process, we always
start from a clean slate.
Bug: 242862442
Test: forced the screenshot process to stay up by never running
the finish callback in ScreenshotHelper, verified that we get the
invisible-preview behavior and that it's fixed with this change
Change-Id: I9b795928cba93f8cef19244105db2c7f31c0973b
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is moved to a separate class for to avoid code duplication
and improve testability by providing the ability to unit test
in isolation from SurfaceFlinger and without an active physical
display.
Bug: 231957192
Test: atest ImageCaptureImplTest
Change-Id: Ie8d9dc1a2325856c09ab023099488f799d065a19
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In some cases, MediaPlayer.create fails and propagates up an
IllegalStateException, which causes the screenshot process to
crash. Catch this error (and just don't play the screenshot sound
if it fails to load).
Bug: 239236526
Fix: 239236526
Test: forced the setDataSource to throw an IOException (which is
silently swallowed by MediaPlayer; see bug; and then thrown
as an IllegalStateException since the data source was never
actually set)
Change-Id: I7ae6ae4cc69b8e3eccfbb7df7558787e50db755f
|
| | |
| |
| |
| |
| |
| |
| | |
Bug: 235624311
Test: atest SystemUITests
Change-Id: I78ef7481ac3be5929c1c2716576c3920ac659d92
Merged-In: I78ef7481ac3be5929c1c2716576c3920ac659d92
|
| | |
| |
| |
| |
| |
| |
| | |
Test: No visible changes yet. Pass existing tests.
Bug: 235463625
Change-Id: Iabee71bc76e19f20702f8a2739f565aa915f9b52
Merged-In: Iabee71bc76e19f20702f8a2739f565aa915f9b52
|
| | |
| |
| |
| |
| |
| | |
** AICP edits: add settings backup validators
Change-Id: If653666f4bf6ab6600943c0b27d6dc4dab6461ca
|