diff --git a/api/lineage_current.txt b/api/lineage_current.txt index 4601d245..003a5023 100644 --- a/api/lineage_current.txt +++ b/api/lineage_current.txt @@ -196,6 +196,7 @@ package lineageos.hardware { field public static final int FEATURE_COLOR_ENHANCEMENT = 2; // 0x2 field public static final int FEATURE_DISPLAY_COLOR_CALIBRATION = 4; // 0x4 field public static final int FEATURE_DISPLAY_MODES = 8192; // 0x2000 + field public static final int FEATURE_HIGH_TOUCH_POLLING_RATE = 8; // 0x8 field public static final int FEATURE_HIGH_TOUCH_SENSITIVITY = 16; // 0x10 field public static final int FEATURE_KEY_DISABLE = 32; // 0x20 field public static final int FEATURE_KEY_SWAP = 64; // 0x40 @@ -732,6 +733,7 @@ package lineageos.providers { field public static final java.lang.String DISPLAY_TEMPERATURE_NIGHT = "display_temperature_night"; field public static final java.lang.String DOUBLE_TAP_SLEEP_GESTURE = "double_tap_sleep_gesture"; field public static final java.lang.String HEADSET_CONNECT_PLAYER = "headset_connect_player"; + field public static final java.lang.String HIGH_TOUCH_POLLING_RATE_ENABLE = "high_touch_polling_rate_enable"; field public static final java.lang.String HIGH_TOUCH_SENSITIVITY_ENABLE = "high_touch_sensitivity_enable"; field public static final java.lang.String HOME_WAKE_SCREEN = "home_wake_screen"; field public static final java.lang.String INCREASING_RING = "increasing_ring"; diff --git a/sdk/src/java/lineageos/hardware/LineageHardwareManager.java b/sdk/src/java/lineageos/hardware/LineageHardwareManager.java index f60291b4..14d0fff9 100644 --- a/sdk/src/java/lineageos/hardware/LineageHardwareManager.java +++ b/sdk/src/java/lineageos/hardware/LineageHardwareManager.java @@ -1,6 +1,6 @@ /* * Copyright (C) 2015-2016 The CyanogenMod Project - * 2017-2021 The LineageOS Project + * 2017-2022 The LineageOS Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,6 +41,7 @@ import vendor.lineage.livedisplay.V2_0.IReadingEnhancement; import vendor.lineage.livedisplay.V2_0.ISunlightEnhancement; import vendor.lineage.livedisplay.V2_1.IAntiFlicker; import vendor.lineage.touch.V1_0.IGloveMode; +import vendor.lineage.touch.V1_0.IHighTouchPollingRate; import vendor.lineage.touch.V1_0.IKeyDisabler; import vendor.lineage.touch.V1_0.IKeySwapper; import vendor.lineage.touch.V1_0.IStylusMode; @@ -87,6 +88,12 @@ public final class LineageHardwareManager { @VisibleForTesting public static final int FEATURE_DISPLAY_COLOR_CALIBRATION = 0x4; + /** + * High Touch Polling Rate + */ + @VisibleForTesting + public static final int FEATURE_HIGH_TOUCH_POLLING_RATE = 0x8; + /** * High touch sensitivity for touch panels */ @@ -170,6 +177,7 @@ public final class LineageHardwareManager { FEATURE_ANTI_FLICKER, FEATURE_AUTO_CONTRAST, FEATURE_COLOR_ENHANCEMENT, + FEATURE_HIGH_TOUCH_POLLING_RATE, FEATURE_HIGH_TOUCH_SENSITIVITY, FEATURE_KEY_DISABLE, FEATURE_KEY_SWAP, @@ -298,6 +306,8 @@ public final class LineageHardwareManager { return IReadingEnhancement.getService(true); case FEATURE_SUNLIGHT_ENHANCEMENT: return ISunlightEnhancement.getService(true); + case FEATURE_HIGH_TOUCH_POLLING_RATE: + return IHighTouchPollingRate.getService(true); case FEATURE_HIGH_TOUCH_SENSITIVITY: return IGloveMode.getService(true); case FEATURE_KEY_DISABLE: @@ -364,6 +374,9 @@ public final class LineageHardwareManager { case FEATURE_COLOR_ENHANCEMENT: IColorEnhancement colorEnhancement = (IColorEnhancement) obj; return colorEnhancement.isEnabled(); + case FEATURE_HIGH_TOUCH_POLLING_RATE: + IHighTouchPollingRate highTouchPollingRate = (IHighTouchPollingRate) obj; + return highTouchPollingRate.isEnabled(); case FEATURE_HIGH_TOUCH_SENSITIVITY: IGloveMode gloveMode = (IGloveMode) obj; return gloveMode.isEnabled(); @@ -422,6 +435,9 @@ public final class LineageHardwareManager { case FEATURE_COLOR_ENHANCEMENT: IColorEnhancement colorEnhancement = (IColorEnhancement) obj; return colorEnhancement.setEnabled(enable); + case FEATURE_HIGH_TOUCH_POLLING_RATE: + IHighTouchPollingRate highTouchPollingRate = (IHighTouchPollingRate) obj; + return highTouchPollingRate.setEnabled(enable); case FEATURE_HIGH_TOUCH_SENSITIVITY: IGloveMode gloveMode = (IGloveMode) obj; return gloveMode.setEnabled(enable); diff --git a/sdk/src/java/lineageos/providers/LineageSettings.java b/sdk/src/java/lineageos/providers/LineageSettings.java index b3123e69..645e2c32 100644 --- a/sdk/src/java/lineageos/providers/LineageSettings.java +++ b/sdk/src/java/lineageos/providers/LineageSettings.java @@ -889,6 +889,17 @@ public final class LineageSettings { /** @hide */ public static final Validator NOTIFICATION_PLAY_QUEUE_VALIDATOR = sBooleanValidator; + /** + * Whether the HighTouchPollingRate is activated or not. + * 0 = off, 1 = on + */ + public static final String HIGH_TOUCH_POLLING_RATE_ENABLE = + "high_touch_polling_rate_enable"; + + /** @hide */ + public static final Validator HIGH_TOUCH_POLLING_RATE_ENABLE_VALIDATOR = + sBooleanValidator; + /** * Whether the HighTouchSensitivity is activated or not. * 0 = off, 1 = on @@ -2145,6 +2156,8 @@ public final class LineageSettings { new ArrayMap(); static { VALIDATORS.put(NOTIFICATION_PLAY_QUEUE, NOTIFICATION_PLAY_QUEUE_VALIDATOR); + VALIDATORS.put(HIGH_TOUCH_POLLING_RATE_ENABLE, + HIGH_TOUCH_POLLING_RATE_ENABLE_VALIDATOR); VALIDATORS.put(HIGH_TOUCH_SENSITIVITY_ENABLE, HIGH_TOUCH_SENSITIVITY_ENABLE_VALIDATOR); VALIDATORS.put(SYSTEM_PROFILES_ENABLED, SYSTEM_PROFILES_ENABLED_VALIDATOR);