summaryrefslogtreecommitdiff
path: root/services/java/com/android/server/SystemServer.java
diff options
context:
space:
mode:
authorCarlo Savignano <carlosavignano@aospa.co>2019-10-29 16:43:22 +0100
committerSemavi Ulusoy <doc.divxm@gmail.com>2022-10-26 18:00:58 +0300
commit14f670d7790688793b21156aace33c65b73b7840 (patch)
tree34e9c63dbeb604604c9ea354d99df36bc6aa00b3 /services/java/com/android/server/SystemServer.java
parent51a35a4e367ecab9777a9afecaaafffac46f993d (diff)
[SQUASH] pocket: Introduce pocket judge
ZeNiXxX * Bring to Android 10 DennySPb: adapt to 11, 12 Change-Id: I33153b451f5d38d83e226be0f76bda1ed022dd48 policy: introduce pocket lock * Block touch screen and keys inputs when device is in pocket. * Safe-door to disable pocket lock within long press power button if sensors do not behave correctly after PocketManager.isDeviceInPocket() returns true. * Window uses TYPE_SYSTEM_ERROR flag with ensure high priority over the lockscreen and other high priority windows. * Do not illuminate buttons when pocket lock is showing. * Disable fingerprint events and gestures when in pocket * Be friendly towards Keypress Boost Contributors: Carlo Savignano <carlosavignano@aospa.co> Chris Lahaye <dev@chrislahaye.com> Anas Karbila <anaskarbila@aospa.co> Alex Naidis <alex.naidis@linux.com> Park Ju Hyung <qkrwngud825@gmail.com> Ticket: NOUGAT-15 ZeNiXxX * Fix booting issues * Fix NPEs * Bring to Android 10 DennySPb: adapt for 11, 12 Change-Id: I34108fa38f28f15b0b99c8ebb6551dcc4dabad14 pocket: Add hardware acceleration and properly maintain SYSTEM_UI flags Change-Id: I585598242beec34bd92c5df5836ab395b36cea05 PocketService: Adjust light sensor rate to 400ms We already adjusted the proximity sensor rate to 400ms, so adjust the rate for the light sensor accordingly and create a tunable. Change-Id: Ie6dda80df8cdc677eb6cdb873a5ce1e888572fe7 pocket: introduce pocket bridge This service communicates pocket state to the pocket judge kernel driver. It maintains the pocket state by binding to the pocket service. Ticket: NOUGAT-49 Change-Id: Iee77f767f23d3f77a0d1d871f9305f3b3c6d6630 pocket: Adjust sleep timeout for pocket lock view to 10 secs - Fix the case where user sets a high value for sleep timeout in display settings and the pocket view is also displayed for that much duration. Change-Id: If6c4daa1fd98992141f22db70e0e86d5d990f789 pocket: Fix pocket lock view for display cutouts - Use LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES layout flag to extend pocket lock view for display cutout mode. Change-Id: I21e4e47cf999b3a0f3d6ebf9165ba9f5596ece0e Pocket lock improvements * Fix auto hide not working correctly * Restore systemui visibility when hidden ZeNiXxX * remove faceunlock logic and adapt for android 10 Change-Id: I61b38798d01775b252af88abb01dd2423b3a7638 pocket: Use MD2 lock drawable Change-Id: Ifb89a68505a9f9b401a2474b5179ea65e9c0e3ce pocket: Reduce sleep timeout for pocket lock *if the proximity value changes within 10s, pocketlock exits to lockscreen. Inorder to avoid that reduce timeout to 3s Change-Id: Iee08801534bebacc2fc62f0bc6e3a0712ce12712 Pocket lock: Add config_pocketModeSupported overlay Change-Id: I6768c9f8cdd40b2a62df3bd9ddfa04022d69ce10 PocketLock: fix flickering on animations Change-Id: I4b5499042d0e9ae8f73ecf5c32030d146f640362 PocketJudge: allow register vendor pocket sensor Some devices (ie OnePlus) have own pocket sensor. This change allow to use native pocket sensor instead of proximity and light. Sensor name must be specified in device tree overlay. In this case PocketService will try to use vendor sensor first. If sensor wasn't found, fallback sensors (proximity and light) will be in use. Example for OnePlus sensor: <string name="config_pocketJudgeVendorSensorName">oneplus.sensor.pocket</string> Change-Id: Ibe423478cfd9d49e0831e2df0af793178f62c0e0 Fix an edge case in KeyguardUpdateMonitor pocket callback Change-Id: If872c365ab22bd744c610b136b442ff161c65522 base: Redo Pocket mode view like OOS Change-Id: I037f5120315581cade60b6c11a64b07cc47ba376 SystemUI: Improve pocket mode layout Change-Id: I590bc187a5e205102b129fbb9e3625f51b532afd PocketLock: Make using light sensor optional * On some devices using light sensor may break autobrightness Change-Id: I2bb4aad1ecc6808a4546dfdcada4335074d0d40e PocketJudge: Allow to register vendor proximity sensor Some devices (ie OnePlus) have bunch of proximity sensors and default one may not work properly. This change allow to use particular proximity sensor. Example for OnePlus infrared proximity sensor: <string name="config_pocketJudgeVendorProximitySensorName">oneplus.sensor.infrared.proximity</string> Change-Id: I208bcd1ac68bae805c9848175edc8d598e550b7e pocket lock: Increase to 15 sec the pocket lock screen during a call, vibration stop working when pocket lock screen turn off 15 seconds should be enough to feel the vibration Change-Id: Iebfc61b4c3f31119e126f70475b1d1ed0f6812c2 Co-authored-by: Chris Lahaye <dev@chrislahaye.com> Co-authored-by: Anas Karbila <anaskarbila@aospa.co> Co-authored-by: Alex Naidis <alex.naidis@linux.com> Co-authored-by: Park Ju Hyung <qkrwngud825@gmail.com> Co-authored-by: TheStrix <parthbhatia98@gmail.com> Co-authored-by: Henrique Silva <jhenrique09.mcz@hotmail.com> Co-authored-by: Anushek Prasal <anushekprasal@gmail.com> Co-authored-by: RadixCube <radixcube@gmail.com> Co-authored-by: DennySPb <dennyspb@gmail.com> Co-authored-by: paphonb <paphonb@gmail.com> Co-authored-by: Jyotiraditya Panda <jyotiraditya@aospa.co> Co-authored-by: Laker <lakerman1987@gmail.com> Co-authored-by: Hikari-no-Tenshi <kyryljan.serhij@gmail.com> Signed-off-by: Semavi Ulusoy <doc.divxm@gmail.com> Change-Id: I25029f02eff7e5f65b4c135762e53278d2e308e6
Diffstat (limited to 'services/java/com/android/server/SystemServer.java')
-rw-r--r--services/java/com/android/server/SystemServer.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java
index ae919b391d7d..a046ee3d59b1 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -169,6 +169,8 @@ import com.android.server.pm.UserManagerService;
import com.android.server.pm.dex.OdsignStatsLogger;
import com.android.server.pm.dex.SystemServerDexLoadReporter;
import com.android.server.pm.verify.domain.DomainVerificationService;
+import com.android.server.pocket.PocketService;
+import com.android.server.pocket.PocketBridgeService;
import com.android.server.policy.AppOpsPolicy;
import com.android.server.policy.PermissionPolicyService;
import com.android.server.policy.PhoneWindowManager;
@@ -488,6 +490,8 @@ public final class SystemServer implements Dumpable {
/** Start the IStats services. This is a blocking call and can take time. */
private static native void startIStatsService();
+ public boolean safeMode = false;
+
/**
* Start the memtrack proxy service.
*/
@@ -1677,7 +1681,10 @@ public final class SystemServer implements Dumpable {
// Before things start rolling, be sure we have decided whether
// we are in safe mode.
- final boolean safeMode = wm.detectSafeMode();
+
+ if(wm != null) {
+ safeMode = wm.detectSafeMode();
+ }
if (safeMode) {
// If yes, immediately turn on the global setting for airplane mode.
// Note that this does not send broadcasts at this stage because
@@ -2515,6 +2522,10 @@ public final class SystemServer implements Dumpable {
mSystemServiceManager.startService(CrossProfileAppsService.class);
t.traceEnd();
+ t.traceBegin("StartPocketService");
+ mSystemServiceManager.startService(PocketService.class);
+ t.traceEnd();
+
t.traceBegin("StartPeopleService");
mSystemServiceManager.startService(PeopleService.class);
t.traceEnd();
@@ -2537,6 +2548,13 @@ public final class SystemServer implements Dumpable {
t.traceEnd();
}
+ // PocketBridge
+ if (!context.getResources().getString(
+ com.android.internal.R.string.config_pocketBridgeSysfsInpocket).isEmpty()) {
+ t.traceBegin("StartPocketBridgeService");
+ mSystemServiceManager.startService(PocketBridgeService.class);
+ t.traceEnd();
+ }
}
t.traceBegin("StartMediaProjectionManager");