Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2c5fb358 authored by Siarhei Vishniakou's avatar Siarhei Vishniakou
Browse files

Allow debug InputManagerGlobal logs to be dynamic

This will allow us to enable these via "DebugInputRule" in tests.

Prior to this CL, the logs were static. That is, whenever
InputManagerGlobal was created, the value was read and stored. The test
process is the same throughout the test. As a result, if an earlier test
resulted in creation of InputManagerGlobal, subsequent tests would reuse
the same value, thus leading to no logs.

Bug: 380535703
Flag: EXEMPT needed for debugging
Test: logcatcolor  | grep -i InputManager
Change-Id: I642b3b5786c73020d08ccbb8817322322a0df911
parent cea9ffbb
Loading
Loading
Loading
Loading
+16 −10
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.os.SomeArgs;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.Executor;
@@ -76,8 +77,9 @@ import java.util.concurrent.Executor;
public final class InputManagerGlobal {
    private static final String TAG = "InputManagerGlobal";
    // To enable these logs, run: 'adb shell setprop log.tag.InputManagerGlobal DEBUG'
    // (requires restart)
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
    private boolean debug() {
        return Log.isLoggable(TAG, Log.DEBUG);
    }

    @GuardedBy("mInputDeviceListeners")
    @Nullable private SparseArray<InputDevice> mInputDevices;
@@ -269,16 +271,19 @@ public final class InputManagerGlobal {
    }

    private void onInputDevicesChanged(int[] deviceIdAndGeneration) {
        if (DEBUG) {
            Log.d(TAG, "Received input devices changed.");
        final boolean enableDebugLogs = debug();
        if (enableDebugLogs) {
            Log.d(TAG, "Received input devices changed: " + Arrays.toString(deviceIdAndGeneration));
        }

        synchronized (mInputDeviceListeners) {
            for (int i = mInputDevices.size(); --i > 0; ) {
                final int deviceId = mInputDevices.keyAt(i);
                if (!containsDeviceId(deviceIdAndGeneration, deviceId)) {
                    if (DEBUG) {
                        Log.d(TAG, "Device removed: " + deviceId);
                    if (enableDebugLogs) {
                        final InputDevice device = mInputDevices.valueAt(i);
                        final String name = device != null ? device.getName() : "<null>";
                        Log.d(TAG, "Device removed: " + deviceId + " (" + name + ")");
                    }
                    mInputDevices.removeAt(i);
                    if (mInputDeviceSensorManager != null) {
@@ -297,8 +302,9 @@ public final class InputManagerGlobal {
                    if (device != null) {
                        final int generation = deviceIdAndGeneration[i + 1];
                        if (device.getGeneration() != generation) {
                            if (DEBUG) {
                                Log.d(TAG, "Device changed: " + deviceId);
                            if (enableDebugLogs) {
                                Log.d(TAG, "Device changed: " + deviceId + " ("
                                        + device.getName() + ")");
                            }
                            mInputDevices.setValueAt(index, null);
                            if (mInputDeviceSensorManager != null) {
@@ -309,7 +315,7 @@ public final class InputManagerGlobal {
                        }
                    }
                } else {
                    if (DEBUG) {
                    if (enableDebugLogs) {
                        Log.d(TAG, "Device added: " + deviceId);
                    }
                    mInputDevices.put(deviceId, null);
@@ -517,7 +523,7 @@ public final class InputManagerGlobal {
    }

    private void onTabletModeChanged(long whenNanos, boolean inTabletMode) {
        if (DEBUG) {
        if (debug()) {
            Log.d(TAG, "Received tablet mode changed: "
                    + "whenNanos=" + whenNanos + ", inTabletMode=" + inTabletMode);
        }