Flag guard keyboard backlight controller
Test: manual Bug: 245506418 Change-Id: I451192da3a01a0a8f3d2671d7463457df9a14f56
This commit is contained in:
@@ -70,6 +70,7 @@ import android.os.RemoteCallbackList;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ResultReceiver;
|
||||
import android.os.ShellCallback;
|
||||
import android.os.SystemProperties;
|
||||
import android.os.UserHandle;
|
||||
import android.os.VibrationEffect;
|
||||
import android.os.vibrator.StepSegment;
|
||||
@@ -158,6 +159,11 @@ public class InputManagerService extends IInputManager.Stub
|
||||
private static final AdditionalDisplayInputProperties
|
||||
DEFAULT_ADDITIONAL_DISPLAY_INPUT_PROPERTIES = new AdditionalDisplayInputProperties();
|
||||
|
||||
// To disable Keyboard backlight control via Framework, run:
|
||||
// 'adb shell setprop persist.input.keyboard_backlight_control.enabled false' (requires restart)
|
||||
private static final boolean KEYBOARD_BACKLIGHT_CONTROL_ENABLED = SystemProperties.getBoolean(
|
||||
"persist.input.keyboard.backlight_control.enabled", true);
|
||||
|
||||
private final NativeInputManagerService mNative;
|
||||
|
||||
private final Context mContext;
|
||||
@@ -305,7 +311,7 @@ public class InputManagerService extends IInputManager.Stub
|
||||
private final BatteryController mBatteryController;
|
||||
|
||||
// Manages Keyboard backlight
|
||||
private final KeyboardBacklightController mKeyboardBacklightController;
|
||||
private final KeyboardBacklightControllerInterface mKeyboardBacklightController;
|
||||
|
||||
// Manages Keyboard modifier keys remapping
|
||||
private final KeyRemapper mKeyRemapper;
|
||||
@@ -422,8 +428,10 @@ public class InputManagerService extends IInputManager.Stub
|
||||
mKeyboardLayoutManager = new KeyboardLayoutManager(mContext, mNative, mDataStore,
|
||||
injector.getLooper());
|
||||
mBatteryController = new BatteryController(mContext, mNative, injector.getLooper());
|
||||
mKeyboardBacklightController = new KeyboardBacklightController(mContext, mNative,
|
||||
mDataStore, injector.getLooper());
|
||||
mKeyboardBacklightController =
|
||||
KEYBOARD_BACKLIGHT_CONTROL_ENABLED ? new KeyboardBacklightController(mContext,
|
||||
mNative, mDataStore, injector.getLooper())
|
||||
: new KeyboardBacklightControllerInterface() {};
|
||||
mKeyRemapper = new KeyRemapper(mContext, mNative, mDataStore, injector.getLooper());
|
||||
|
||||
mUseDevInputEventForAudioJack =
|
||||
@@ -3478,4 +3486,13 @@ public class InputManagerService extends IInputManager.Stub
|
||||
applyAdditionalDisplayInputPropertiesLocked(properties);
|
||||
}
|
||||
}
|
||||
|
||||
interface KeyboardBacklightControllerInterface {
|
||||
default void incrementKeyboardBacklight(int deviceId) {}
|
||||
default void decrementKeyboardBacklight(int deviceId) {}
|
||||
default void registerKeyboardBacklightListener(IKeyboardBacklightListener l, int pid) {}
|
||||
default void unregisterKeyboardBacklightListener(IKeyboardBacklightListener l, int pid) {}
|
||||
default void systemRunning() {}
|
||||
default void dump(PrintWriter pw) {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,8 @@ import java.util.TreeSet;
|
||||
* A thread-safe component of {@link InputManagerService} responsible for managing the keyboard
|
||||
* backlight for supported keyboards.
|
||||
*/
|
||||
final class KeyboardBacklightController implements InputManager.InputDeviceListener {
|
||||
final class KeyboardBacklightController implements
|
||||
InputManagerService.KeyboardBacklightControllerInterface, InputManager.InputDeviceListener {
|
||||
|
||||
private static final String TAG = "KbdBacklightController";
|
||||
|
||||
@@ -96,7 +97,8 @@ final class KeyboardBacklightController implements InputManager.InputDeviceListe
|
||||
mHandler = new Handler(looper, this::handleMessage);
|
||||
}
|
||||
|
||||
void systemRunning() {
|
||||
@Override
|
||||
public void systemRunning() {
|
||||
InputManager inputManager = Objects.requireNonNull(
|
||||
mContext.getSystemService(InputManager.class));
|
||||
inputManager.registerInputDeviceListener(this, mHandler);
|
||||
@@ -106,11 +108,13 @@ final class KeyboardBacklightController implements InputManager.InputDeviceListe
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void incrementKeyboardBacklight(int deviceId) {
|
||||
Message msg = Message.obtain(mHandler, MSG_INCREMENT_KEYBOARD_BACKLIGHT, deviceId);
|
||||
mHandler.sendMessage(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void decrementKeyboardBacklight(int deviceId) {
|
||||
Message msg = Message.obtain(mHandler, MSG_DECREMENT_KEYBOARD_BACKLIGHT, deviceId);
|
||||
mHandler.sendMessage(msg);
|
||||
@@ -232,6 +236,7 @@ final class KeyboardBacklightController implements InputManager.InputDeviceListe
|
||||
|
||||
/** Register the keyboard backlight listener for a process. */
|
||||
@BinderThread
|
||||
@Override
|
||||
public void registerKeyboardBacklightListener(IKeyboardBacklightListener listener,
|
||||
int pid) {
|
||||
synchronized (mKeyboardBacklightListenerRecords) {
|
||||
@@ -252,6 +257,7 @@ final class KeyboardBacklightController implements InputManager.InputDeviceListe
|
||||
|
||||
/** Unregister the keyboard backlight listener for a process. */
|
||||
@BinderThread
|
||||
@Override
|
||||
public void unregisterKeyboardBacklightListener(IKeyboardBacklightListener listener,
|
||||
int pid) {
|
||||
synchronized (mKeyboardBacklightListenerRecords) {
|
||||
@@ -286,7 +292,8 @@ final class KeyboardBacklightController implements InputManager.InputDeviceListe
|
||||
}
|
||||
}
|
||||
|
||||
void dump(PrintWriter pw) {
|
||||
@Override
|
||||
public void dump(PrintWriter pw) {
|
||||
IndentingPrintWriter ipw = new IndentingPrintWriter(pw);
|
||||
ipw.println(TAG + ": " + mKeyboardBacklights.size() + " keyboard backlights");
|
||||
ipw.increaseIndent();
|
||||
|
||||
Reference in New Issue
Block a user