Commit Graph

4699 Commits

Author SHA1 Message Date
Joe Bolinger
f2e41730bb Update side fsp sensor position via overlay.
This is a temporary workaround and the overlay properties can be removed
when the information is available from the HAL.

Bug: 174868353
Fix: 188690214
Test: manual (enroll and verify icon location)
Change-Id: I2b6826756814727368007e55bfc88d28c4a78bea
2021-09-15 09:57:16 -07:00
Joe Bolinger
dce40910b1 Consolidate fingerprint overlay controllers.
Prevent duplication in side/udfps sensor handling for common
operations (i.e. show, hide) and remove static boilerplater helpers.

Bug: 197265282
Test: atest SensorOverlaysTest
Test: atest com.android.systemui.biometrics
Change-Id: I9a5bad5d19f044f4292eeda1ae666cf5b807f7eb
2021-09-13 08:19:07 -07:00
Kevin Chyn
1b28a2e7f0 Merge "Add callback for when enrollment state changes" into sc-qpr1-dev am: ada5e05660
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15730868

Change-Id: Iea60534ff6f373cb022d2a43e138e73442b28443
2021-09-07 22:47:27 +00:00
Naomi Musgrave
dce45ccae5 Merge "[MediaProjection] Store WindowContext in VirtualDisplay" into sc-v2-dev 2021-09-03 10:35:11 +00:00
Kevin Chyn
f7a019f584 Add callback for when enrollment state changes
Bug: 195663312

(New tests):
Test: manual, FingerprintManager no longer shows up in strict
      mode logs when changing keyguard states
Test: atest FingerprintStateCallbackTest

(Existing cases below):
Test: atest com.android.server.biometrics
Test: atest CtsBiometricsTestCases
Test: atest com.android.systemui.biometrics
Test: atest KeyguardUpdateMonitorTest

Change-Id: I57304f9ed938cbe4ec63683b826ead086cc33a5b
2021-09-02 16:11:04 -07:00
Naomi Musgrave
065f4d876e [MediaProjection] Store WindowContext in VirtualDisplay
Follow on from ag/15684817, where the WindowContext is cached in
MediaProjection. To allow multiple VirtualDisplays to be created
from the same MediaProjection, instead create a new WindowContext
for each one, and associate with that VirtualDisplay.

As before, the WindowContext must be stored in a field to prevent
it from being garbage collected.

Bug: 197579637
Bug: 198415847
Test: manual
Change-Id: If3f84b3778104bf12617d224876700f8ee3b2b45
2021-09-02 13:08:24 +00:00
Joe Bolinger
c346dab881 Merge changes from topic "more-cancel-sc-qpr1-dev" into sc-qpr1-dev am: 16a7d2e7bd
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15727904

Change-Id: Id8fb1fac31177116d974bd99f1056f6565d986ea
2021-09-01 22:23:23 +00:00
Joe Bolinger
a77a337eda Merge "Add a default string for failures." into sc-qpr1-dev am: 7d26092122
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15671476

Change-Id: I4cabc454b70f147a1fad609ad5c5d1c9f92036f0
2021-09-01 22:22:46 +00:00
Joe Bolinger
16a7d2e7bd Merge changes from topic "more-cancel-sc-qpr1-dev" into sc-qpr1-dev
* changes:
  Add requestId to authentication entry points.
  Check cancel status whenever cookies are received.
2021-09-01 22:06:13 +00:00
Joe Bolinger
7d26092122 Merge "Add a default string for failures." into sc-qpr1-dev 2021-09-01 22:05:34 +00:00
Joe Bolinger
bdd477a5d1 Add requestId to authentication entry points.
The CancellationSignal passed into the authentication methods is not
associated with the request and can be used to cancel the current
operation, even if it is more recent. The new id prevents outdated
signals from being using.

Note that there are still issues with the Callbacks that are not
addressed (see bug for details).

Bug: 194405579
Bug: 189451155
Bug: 191716671
Test: atest com.android.systemui.biometrics com.android.server.biometrics

Change-Id: Id71be912cc88ae90df8087eb8f1a6fc3e110f883
2021-09-01 08:49:26 -07:00
Ady Abraham
c1d91ef5d2 Merge "DisplayManagerGlobal: fix native refresh rate callback registration" into sc-qpr1-dev am: c265f32026
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15689742

Change-Id: I1f37e1e8c0c3a6ced87634d195e795284578e3de
2021-08-31 00:31:42 +00:00
Ady Abraham
0ee31107ed DisplayManagerGlobal: fix native refresh rate callback registration
When AChoreographer is the only callback registered with
DisplayManagerGlobal and there are no other display listeners,
DisplayManagerGlobal incorrectly skips callback registration with DMS.

Bug: 193945763
Test: atest DisplayManagerGlobalTest
Change-Id: I4b737fa0a91541fe331edcf3454724200e2db971
2021-08-27 20:26:46 +00:00
Joe Bolinger
1cf97a94e0 Add a default string for failures.
Test: N/A
Fix: 196639965
Change-Id: I3db7c4e0837641ad6aa7094894df92d5b2581b0e
2021-08-25 02:48:16 +00:00
Kenneth Ford
1f70abe98d Allow top focused activities to call requestState
Previously you could only modify the device state
if you held the CONTROL_DEVICE_STATE permission. This
change allows top focused activities to do the same

Bug: 192671754
Test: atest DeviceStateManagerTests
Change-Id: Iba0c1800a1fb17024020e657b76a54eec9c89348
2021-08-20 22:58:36 +00:00
Darryl L Johnson
7dde391fc1 Allow override requests to outlive the requesting process.
This change introduces a flag, FLAG_CANCEL_STICKY_REQUESTS, on the
device states that are provided by the DeviceStateProvider. If the flag
is set on a device state it indicates that the device state should
cancel any outstanding sticky requests when entered. If at least one
device state is configured to be a terminal device state (has the flag
set) the service will be configured to allow sticky requests, otherwise
requests will continue to be cancelled when the requesting process dies.

Fixes: 192671286

Test: atest DeviceStateManagerServiceTest
Test: atest DeviceStateProviderImplTest
Test: atest DeviceStateTest
Test: atest OverrideRequestControllerTest
Change-Id: I7a6bdc9334342fa818920b56a4f0c22629bb101f
2021-08-20 20:59:05 +00:00
Fiona Campbell
ec29aa264b Merge "Add display specific brightness configurations" into sc-v2-dev 2021-08-17 10:08:57 +00:00
Joe Bolinger
ff3686f0c1 Merge "Add a generic error message for missing vendor error strings." into sc-dev am: 922fe0da54 am: 8d74548cba
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15564960

Change-Id: Ice430cd383c5b3ce6132c04201b0dc9fe3cccc7a
2021-08-14 04:03:09 +00:00
Joe Bolinger
5d5d9eb812 Add a generic error message for missing vendor error strings.
The message is empty, instead of null, to prevent apps from crashing but it will be changed to a more meaninful string in a future change.

Fix: 196176475
Test: N/A
Change-Id: I7823084238a87cb1b8892b8550c472cd8b40f556
2021-08-13 16:03:54 -07:00
TreeHugger Robot
3ed6fed8cf Merge "Camera: Initialize the forward processor along with the repeating pipeline" into sc-dev am: 7949cf90ac am: bff3df9ae8
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15523913

Change-Id: I40b724d44cfa4a3bba286ae5ef033f6777022f96
2021-08-13 17:42:23 +00:00
Jayant Chowdhary
be0289f360 Merge "camera2: Documentation updates for ultra high resolution sensors." into sc-dev am: 115b62decc am: f2381fea39
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15507831

Change-Id: Ib968e558933e3ed8f11daae9daf8cef1a3b53a2f
2021-08-13 17:42:11 +00:00
TreeHugger Robot
c5ef0ab8dd Merge "Camera: Return sequence id for advanced extension requests" into sc-dev am: 1ce567e28f am: 2f01685e4b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15522464

Change-Id: I27e5038382116986a32a3a26d78fe5c3343c21fe
2021-08-13 17:41:59 +00:00
TreeHugger Robot
7949cf90ac Merge "Camera: Initialize the forward processor along with the repeating pipeline" into sc-dev 2021-08-13 17:29:14 +00:00
Jayant Chowdhary
115b62decc Merge "camera2: Documentation updates for ultra high resolution sensors." into sc-dev 2021-08-13 17:11:23 +00:00
Jayant Chowdhary
1f3071d540 camera2: Documentation updates for ultra high resolution sensors.
Bug: 195987968

1) Document mininum pixel array size restriction for ultra high resolution sensors.
2) Add docs explaining mandatory stream combinations for ultra high resolution sensors.

Change-Id: Ic630259a57906c475210465588eda1a5cc3f68ec
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
2021-08-11 20:12:41 +00:00
Emilian Peev
a0ced2aa9e Camera: Initialize the forward processor along with the repeating pipeline
Some preview extensions of the image processor type expect to recevive
'onOutputSurface' calls before the session is enabled by 'onEnableSession'.

Bug: 187341271
Test: atest -c
cts/tests/camera/src/android/hardware/camera2/cts/CameraExtensionSessionTest.java

Change-Id: I67147ec24553cf87d23e33c63692fa7e59c57e5f
2021-08-11 00:42:34 +00:00
Emilian Peev
5cf033ccb7 Camera: Return sequence id for advanced extension requests
Allow 'IRequestProcessorImpl' to return the camera sequence id
in response to capture requests.

Bug: 196090349
Test: atest -c
cts/tests/camera/src/android/hardware/camera2/cts/CameraExtensionSessionTest.java

Change-Id: I3d67e4ba1b4503cf71c31751920e916d014ef3ab
2021-08-10 15:26:24 -07:00
TreeHugger Robot
3e5e27f2b6 Merge "MediaProjection captures DisplayArea" into sc-v2-dev 2021-08-10 14:03:05 +00:00
Naomi Musgrave
fd5715bb31 MediaProjection captures DisplayArea
MediaProjection is used by apps to capture the contents of
a display. Apps consume the content from a surface passed
in to MediaProjection#createVirtualDisplay. The images
written out to the surface can be used for saving
screenshots of the current display, screen recording,
or casting to a different display.

MediaProjection is currently tied to capturing a physical
display. This change instead captures the DisplayArea
the app is launched on. This is consistent with Display API
sandboxing, which returns the DisplayArea bounds rather
than the physical display bounds.

Note that apps use the Display APIs to size the
VirtualDisplay and output surface.

Verified: screenshots, screen recording, and casting

Bug: 180624777
Bug: 195280234
Test: atest WmTests:DisplayContentTests

Change-Id: I086fa1ae668dbdf0f25252c13614445af04d86f3
2021-08-09 15:20:32 +00:00
Evan Severson
eaed206891 Merge "Don't show sensor use dialog for system uid" into sc-dev 2021-08-07 17:34:45 +00:00
Emilian Peev
aae08711e8 Merge "Camera: Release extension resources after closing handler thread" into sc-dev 2021-08-06 18:18:41 +00:00
Jayant Chowdhary
4eeeee0f14 Merge "camera2: Fix backward compatibility breakage for setting metering regions." into sc-dev 2021-08-05 18:03:45 +00:00
Shuzhen Wang
c0a3b39617 Merge "Camera: Fix typos in API doc" into sc-dev 2021-08-05 00:26:18 +00:00
Emilian Peev
2543bb488b Camera: Release extension resources after closing handler thread
To avoid possible concurrency issues, always quit the handler
thread before releasing any extension resources.
In case camera is still running, camera callbacks can still
be handled during release which can result in concurrency
exceptions.

Bug: 195595369
Test: atest -c
cts/tests/camera/src/android/hardware/camera2/cts/CameraExtensionSessionTest.java

Change-Id: I473a4cb04e5ea27b5c8f8221a2390219a7915e73
2021-08-04 17:12:36 -07:00
Shuzhen Wang
91db1773dd Camera: Fix typos in API doc
Test: Build
Bug: 195574631
Change-Id: Idf1e6f4390146055cdb7df41d63ab010df5ad1a1
2021-08-04 13:39:15 -07:00
Evan Severson
f1de4ee934 Don't show sensor use dialog for system uid
If the system uid is being noted for mic or camera op, it will have to
be explicitely accounted for to show the user any sort of UI to unmute
the mic or camera.

Test: Add some logcat statements to verify the correct code paths are
          being hit when placing and answering phone calls and when
	  trying to trigger hotword.
Bug: 195122900
Change-Id: I601458ea2dd7557e4a557eab32c2da15828ae4a7
2021-08-03 17:27:30 -07:00
Emilian Peev
a72b3e92e9 Camera: Don't override extension surface native format
Avoid overriding the native extension surface format when
retrieving the surface parameters.
The native surface format can later be used to configure
the device extension so the original value must be known.

Bug: 195366395
Test: atest -c
cts/tests/camera/src/android/hardware/camera2/cts/CameraExtensionSessionTest.java

Change-Id: I52d091fd782dc9ca2af60ba42ec1c5bbe080c1ca
2021-08-03 13:13:03 -07:00
Jayant Chowdhary
d3c86632f8 camera2: Fix backward compatibility breakage for setting metering regions.
With the new entries in sSetCommandMap, the private functions for
setting metering regions cast the input value to MeteringRegion[], which
can break some existing clients which pass in Object[] to
CameraMetadata.set(). We revert to the old behavior of letting Marshaler
handle conversion from Object[] -> MeteringRectangle[] internally.

Bug: 195095702

Test: GCA with different zoom (basic validity)
Test: ITS scene1_1
Test: Camera CTS

Change-Id: Iea372adf76d1c6f81f1c63ff2bd3553ab39f30e4
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
2021-08-03 12:38:37 -07:00
Naomi Musgrave
da38617955 Revert "MediaProjection captures DisplayArea"
This reverts commit 45dd2a3202.

Reason for revert: b/195280234 is blocking droidfood

Bug: b/195280234
Change-Id: I09593dffb797d1e4c60cff52e7901ed6c00f719c
2021-08-03 09:19:23 +00:00
Evan Severson
705c7539eb Merge "Check the current user in the system server for SensorPrivacyManager" into sc-dev 2021-07-30 15:55:22 +00:00
Naomi Musgrave
45dd2a3202 MediaProjection captures DisplayArea
MediaProjection is used by apps to capture the contents of
a display. Apps consume the content from a surface passed
in to MediaProjection#createVirtualDisplay. The images
written out to the surface can be used for saving
screenshots of the current display, screen recording,
or casting to a different display.

MediaProjection is currently tied to capturing a physical
display. This change instead captures the DisplayArea
the app is launched on. This is consistent with Display API
sandboxing, which returns the DisplayArea bounds rather
than the physical display bounds.

Note that apps use the Display APIs to size the
VirtualDisplay and output surface.

Verified: screenshots, screen recording, and casting

Bug: 180624777
Test: atest WmTests:DisplayContentTests
Change-Id: I909e9d32f573aec33869d9f49d6caffc8d7420aa
2021-07-30 09:48:42 +00:00
Evan Severson
6abae2a070 Check the current user in the system server for SensorPrivacyManager
Instead of querying for the current user application side we can just
pass UserHandle.CURRENT_USER, this eliminates an IPC and the need for
INTERACT_ACCROSS_USERS permission which should not be needed for these
APIs.

Test: CtsSensorPrivacyTestCases
Bug: 194806109
Change-Id: I3a0aed0c403338aaebdfb4e2791a84b4e7e3cb3a
2021-07-29 11:23:43 -07:00
Emilian Peev
e922ec31aa Merge changes from topic "b194508189" into sc-dev
* changes:
  Camera: Support common outputs between regular and extension sessions
  Camera: Include the parceled image dimensions
2021-07-29 00:20:06 +00:00
Jayant Chowdhary
782b4e9e08 Merge "camera2: Add fwk-only tags for SCALER_CROP_REGION and metering regions." into sc-dev 2021-07-28 22:45:01 +00:00
Jayant Chowdhary
5c2a840de8 camera2: Add fwk-only tags for SCALER_CROP_REGION and metering regions.
Default sensor mode capture requests would have their scaler crop
regions set to the default active / pre-correction array coordinate
system. Cameraserver needs to correct this for max res sensor pixel mode CaptureRequests.
In order to facilitate the correction, we add fwk-only CaptureRequest tags which are set when camera
clients set SCALER_CROP_REGION / metering regions.

Bug: 194143991

Test: CTS

Change-Id: I66393a1e6310f149138be4799f20ced377b11eb4
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
2021-07-26 17:06:51 -07:00
Kevin Chyn
88a506aad4 Merge changes from topic "facemanager-bypassflag" into sc-dev
* changes:
  12/n: Send bypassEnabled to AuthenticationClient
  11/n: Enable CoexCoordinator advanced logic by default
  10/n: Always send feedback if capacitive (or unknown) sensor
2021-07-26 18:12:28 +00:00
Kevin Chyn
4443159caf 12/n: Send bypassEnabled to AuthenticationClient
Adds this flag via FaceManager#authenticate (instead of other other
potential ways, such as reading the settings/config values from
system_server directly). This allows for a single source of truth.

Stores this flag in AuthenticationClient, which can then be retrieved
from the CoexCoordinator.

Also removes unnecessary FaceManager#authenticate method, as keyguard
is really the only supported client

Bug: 193089985
Test: atest KeyguardUpdateMonitorTest
Test: atest com.android.server.biometrics
Change-Id: I647c2e5926d1bb964b12dc580d2cd2178c30a790
2021-07-23 17:26:11 -07:00
Evan Severson
8f7f7ab98a Update mic/cam quicksetting toggles when user changes
On a secondary/guest user the mic/cam toggles show for user 0. We want
the user-free calls to reflect the state of the current user so things
like the UI is accurate. Before this change the user free calls always
checked for user 0 since the context was cached in SensorPrivacyManager.

This change also fixes some issues with removing listeners.

Test: use toggles on main, work profile, and secondary user
      atest CtsSensorPrivacyTestCases --user-type secondary_user
Fixes: 178751362
Change-Id: Ieb90ea7ba4074446eb01d1093e280ac7018f9e73
2021-07-23 15:31:53 -07:00
Emilian Peev
83eb162a5d Camera: Support common outputs between regular and extension sessions
Camera clients must be able to re-use the same output/outputs between
regular capture and extension sessions.
Re-shuffle the extension logic so that user registered outputs are
always accessed/connected to after the camera device configures its
streams.
Additionally disconnect any user registered outputs as soon as the
client requests a new regular capture session.

Bug: 194508189
Test: Partner testing,
Camera CTS

Change-Id: I112ad916e5d019d313767d3a0b0454165a6feb12
2021-07-23 11:26:18 -07:00
Emilian Peev
aee0d658d6 Camera: Include the parceled image dimensions
All parceled images need to include valid and correct
dimensions.

Bug: 194324683
Test: Manual using extensions sample application,
Camera CTS

Change-Id: I5ba90757e6edb0bb6bf1756d158c7ee402ce54ca
2021-07-22 13:40:26 -07:00