Allow DeviceConfig to change the high zone behavior including
refresh rate and brightness thresholds.
Bug: 166581675
Test: atest DisplayModeDirectorTest
Test: adb shell device_config put display_manager refresh_rate_in_high_zone "90"
Test: adb shell device_config put display_manager fixed_refresh_rate_high_display_brightness_thresholds "200"
Test: adb shell device_config put display_manager fixed_refresh_rate_high_ambient_brightness_thresholds "8000"
Change-Id: I2ac8d95f976748d03f6dc2e60725e9ef1213ed6f
This code will also be migrated to VibratorManagerService, to give
preference to input devices over the devices vibrators when the user
setting enables it.
This need to remain a server-side code so permissions/setting will be
applied to system vibrations even when they are redirected to input
devices (including vibration scaling).
Bug: 167946816
Bug: 131311651
Test: atest FrameworksServiceTests:VibratorServiceTest
atest FrameworksServiceTests:InputDeviceVibratorsTest
Change-Id: I6c61c3f20e4d82d44af136917d3755d9f6edd31f
When getting DISPLAY_EVENT_FRAME_RATE_OVERRIDE from SurfaceFlinger,
expose the overridden frame rate to the relevant application
if the current refresh rate allows that.
Bug: 169271059
Bug: 169271062
Bug: 170503758
Test: manual test using SF backdoor
adb shell service call SurfaceFlinger 1039 i32 <uid> f <refresh rate>
Change-Id: I6ae1a98e6ca13e9d3d095a5713a6b0ca99652256
Adds hashCode override and equals test for the class.
Bug: 168713324
Test: atest HdmiDeviceInfoTest
Change-Id: I77f7a4da113785573718a16895a988de7fff6b0b
DisplayPowerRequestManager listens for the addition, removal, and change
of Displays and will appropriately create DisplayPowerRequests to manage
their power states.
At this stage the DisplayPowerRequests are simply created; only the
DisplayPowerRequest associated with the default display is interacted
with.
Test: manual
Bug: 138328918
Change-Id: I03f0c95aa23fc711d8d66150f315eed52bc57b2c
Introduce camera system health atoms, including:
- Camera open, close, and session creation time
- Camera session and stream combination information,
- Stream statistics:
- stream width, height, format, dataspace, usage flag,
- max buffer count
- buffer loss
- first frame latency.
Test: ./out/host/linux-x86/bin/statsd_testdrive 227
Test: CTS PerformanceTest
Bug: 154159000
Change-Id: I858d64f3324bb9652a59e5857f2730c92c616a8e
For source devices, toggleAndFollowTvPower() will result in
1. Toggling of the HDMI-connected display (=TV) power state over CEC
2. The source device following the TV power state
Bug: 167962015
Test: atest HdmiCecLocalDevicePlaybackTest
Change-Id: I1881c279143075629e590501de82fadc3e1d56d6
1) Finishes Face10 test implementation
2) Adds createTestSession and getSensorProperties to
IBiometricAuthenticator. This way, BiometricService, which
is the source of truth for all sensors is able to implement or
forward TestApi requests as appropriate.
3) Removes a few unused parameters (callingUid, callingPid,
callingUserId)
4) Moves proto def to a biometric proto. This is basically the
common TestApi equivalent for getting states of _any_ sensor
service (FingerprintService, FaceService, etc)
5) Moves AuthSession states to biometric.proto
6) Updates SysUI components to use separate positive buttons
for better readability and testing
Bug: 171357779
Test: atest CtsBiometricsTestCases on fingerprint/face devices
Test: atest com.android.server.biometrics
Change-Id: I5d884d4a9f4afa3f947eb4587e869bacd6b2f805
Since UDFPS sensors have a UI affordance, and the affordance is
controlled by FingerprintAuthenticationClient, start the prepared
sensor only after the BiometricPrompt dialog is done animating.
Plumbing-wise, adds:
1) Adds AuthSession.STATE_AUTH_STARTED_UI_SHOWING
2) Adds IBiometricSysuiReceiver#onDialogAnimatedIn
Since not all sensors are started immediately anymore, adds
logic in BiometricScheduler when attempting to cancel auth
for a sensor that's waiting for cookie (HAL still idle).
Fixes: 171931476
Test: atest com.android.server.biometrics
Test: atest com.android.systemui.biometrics
Change-Id: Iaedc26c51e274614ac2af6ebd98afe26263dad81
Having a hidden abstract method for a class that can be extended
means that public implementors cannot implement these hidden methods
posing a risk that custom implementations will not have required
abstract methods resulting in an exception.
Bug: 151134792
Test: make update-api
Change-Id: I758d12465fabc671be19bedeeceb16885de23c87
Merged-In: I758d12465fabc671be19bedeeceb16885de23c87
Exempt-From-Owner-Approval: large scale suppression of existing issues,
no-op in terms of behavior
@SuppressLint("Doclava125") is a legacy way of suppressing
RequiresPermission check. Updating to the new style of suppression
so metalava no longer has to support the legacy mode.
sed -i "s/@SuppressLint(\"Doclava125/@SuppressLint(\"RequiresPermission/" \
core/java/android/app/admin/DevicePolicyManager.java \
core/java/android/hardware/hdmi/HdmiControlManager.java \
core/java/android/hardware/location/ContextHubManager.java \
core/java/android/hardware/usb/UsbDeviceConnection.java \
core/java/android/net/TrafficStats.java \
core/java/android/os/RecoverySystem.java \
core/java/android/os/storage/StorageManager.java \
core/java/android/service/persistentdata/PersistentDataBlockManager.java \
location/java/android/location/LocationManager.java \
media/java/android/media/AudioManager.java \
telecomm/java/android/telecom/TelecomManager.java \
telephony/java/android/telephony/CarrierConfigManager.java \
telephony/java/android/telephony/TelephonyManager.java \
wifi/java/android/net/wifi/RttManager.java \
wifi/java/android/net/wifi/WifiScanner.java
Test: make
Exempt-From-Owner-Approval: No-op change
Merged-In: I6d5df95cfca2950ea86872d2f0afc1ba828841dc
Change-Id: I6d5df95cfca2950ea86872d2f0afc1ba828841dc
@SuppressLint("Doclava125") is a legacy way of suppressing
RequiresPermission check. Updating to the new style of suppression
so metalava no longer has to support the legacy mode.
sed -i "s/@SuppressLint(\"Doclava125/@SuppressLint(\"RequiresPermission/" \
core/java/android/app/admin/DevicePolicyManager.java \
core/java/android/hardware/hdmi/HdmiControlManager.java \
core/java/android/hardware/location/ContextHubManager.java \
core/java/android/hardware/usb/UsbDeviceConnection.java \
core/java/android/net/TrafficStats.java \
core/java/android/os/RecoverySystem.java \
core/java/android/os/storage/StorageManager.java \
core/java/android/service/persistentdata/PersistentDataBlockManager.java \
location/java/android/location/LocationManager.java \
media/java/android/media/AudioManager.java \
telecomm/java/android/telecom/TelecomManager.java \
telephony/java/android/telephony/CarrierConfigManager.java \
telephony/java/android/telephony/TelephonyManager.java \
wifi/java/android/net/wifi/RttManager.java \
wifi/java/android/net/wifi/WifiScanner.java
Test: make
Exempt-From-Owner-Approval: No-op change
Change-Id: I6d5df95cfca2950ea86872d2f0afc1ba828841dc
USB Gadget V1.2 HAL include:
1. support NCM function
2. add api to inquiry USB speed
3. add api to inquiry HAL version
Bug: 168282708
Test: build pass and functions are working normally
Change-Id: Idd07c55f4610740c0cf9023391125a86ba39ddee
Having a hidden abstract method for a class that can be extended
means that public implementors cannot implement these hidden methods
posing a risk that custom implementations will not have required
abstract methods resulting in an exception.
Bug: 151134792
Test: make update-api
Change-Id: I758d12465fabc671be19bedeeceb16885de23c87
Exempt-From-Owner-Approval: large scale suppression of existing issues,
no-op in terms of behavior
Expose getter/setter for CEC version including new constants and change
internal usages to rely on HdmiCecConfig.
Bug: 170297951
Test: atest HdmiControlServiceTest
Change-Id: I6237d83078874f266e12bdd43f77ed644569180b
Adds AuthDialog.LayoutParams which should be used to hold any
layout or measurement related information.
Adds onMeasureInternal which returns AuthDialog.LayoutParams
so that subclasses can return custom layout parameters while
keeping common things like setMeasuredDimension in the
base class.
The AuthBiometricUdfpsView in portrait mode includes a
spacer whose height is calculated based on the sizes of
everything that's below the physical sensor, including
1) Text indicator area (for error messages)
2) Footer button bar
3) BiometricPrompt distance to navigation bar
4) Height of navigation bar
The indicator text is the only non-static element below the
icon. Changes it to marquee on a single line for now.
AuthBiometricView animates the icon's holder instead of the
icon itself. Otherwise, the holder would need to allow drawing
outside of its bounds.
Test: No effect on existing devices
Test: atest com.android.systemui.biometrics
Fixes: 171071087
Change-Id: I3b62f02a44f4d3cf6925d7782451596fbf8db0e1
IBiometricAuthenticator is the interface that BiometricService
uses to do BiometricManager/BiometricPrompt-related stuff. This
change updates the implementations to pass sensorId as a parameter,
since the current design allows for FingerprintService, FaceService
etc to host multiple HALs and/or sensors.
Maintains functionality of deprecated FingerprintManager APIs.
Since getSensorProperties() requires internal or test permission,
use different binder calls for FingerprintManager invocations
vs BiometricService invocations of methods such as
isHardwareDetected and hasEnrolledFingerprints.
Moves HIDL HAL registration out of *Authenticator class and up
one layer (into AuthService), since *Authenticator code is to
be shared with AIDL HALs, which provide sensorId, strength,
and other configuration via the HAL interface.
Bug: 172291793
Test: Enroll, auth (BiometricPrompt and Lockscreen) on face and
fingerprint devices
Change-Id: Ib2d8b792f0afde49550f320c4041ff1b1b3d5a50
This change introduces the DeviceStateCallback API to DeviceStateManager
which allows processes outside system_server (as well as system_server)
to receive notifications about changes in the system's device state.
Test: atest DeviceStateManagerServiceTest
Bug: 159401801
Change-Id: I9ccdbd8c4a51858a13b0152ed39a8bf20e41e64f