Loading services/java/com/android/server/SystemServer.java +8 −2 Original line number Diff line number Diff line Loading @@ -302,16 +302,22 @@ class ServerThread extends Thread { Watchdog.getInstance().init(context, battery, power, alarm, ActivityManagerService.self()); Slog.i(TAG, "Input Manager"); inputManager = new InputManagerService(context, wmHandler); Slog.i(TAG, "Window Manager"); wm = WindowManagerService.main(context, power, display, wm = WindowManagerService.main(context, power, display, inputManager, uiHandler, wmHandler, factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL, !firstBoot, onlyCore); ServiceManager.addService(Context.WINDOW_SERVICE, wm); inputManager = wm.getInputManagerService(); ServiceManager.addService(Context.INPUT_SERVICE, inputManager); ActivityManagerService.self().setWindowManager(wm); inputManager.setWindowManagerCallbacks(wm.getInputMonitor()); inputManager.start(); display.setWindowManager(wm); display.setInputManager(inputManager); Loading services/java/com/android/server/input/InputManagerService.java +21 −17 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.MessageQueue; import android.os.Process; Loading @@ -70,7 +71,6 @@ import android.view.InputDevice; import android.view.InputEvent; import android.view.KeyEvent; import android.view.PointerIcon; import android.view.Surface; import android.view.ViewConfiguration; import android.view.WindowManagerPolicy; import android.widget.Toast; Loading Loading @@ -109,8 +109,9 @@ public class InputManagerService extends IInputManager.Stub private final int mPtr; private final Context mContext; private final Callbacks mCallbacks; private final InputManagerHandler mHandler; private WindowManagerCallbacks mWindowManagerCallbacks; private boolean mSystemReady; private NotificationManager mNotificationManager; Loading Loading @@ -217,15 +218,18 @@ public class InputManagerService extends IInputManager.Stub /** Switch code: Keypad slide. When set, keyboard is exposed. */ public static final int SW_KEYPAD_SLIDE = 0x0a; public InputManagerService(Context context, Callbacks callbacks) { public InputManagerService(Context context, Handler handler) { this.mContext = context; this.mCallbacks = callbacks; this.mHandler = new InputManagerHandler(); this.mHandler = new InputManagerHandler(handler.getLooper()); Slog.i(TAG, "Initializing input manager"); mPtr = nativeInit(this, mContext, mHandler.getLooper().getQueue()); } public void setWindowManagerCallbacks(WindowManagerCallbacks callbacks) { mWindowManagerCallbacks = callbacks; } public void start() { Slog.i(TAG, "Starting input manager"); nativeStart(mPtr); Loading Loading @@ -1204,7 +1208,7 @@ public class InputManagerService extends IInputManager.Stub // Native callback. private void notifyConfigurationChanged(long whenNanos) { mCallbacks.notifyConfigurationChanged(); mWindowManagerCallbacks.notifyConfigurationChanged(); } // Native callback. Loading @@ -1224,20 +1228,20 @@ public class InputManagerService extends IInputManager.Stub private void notifySwitch(long whenNanos, int switchCode, int switchValue) { switch (switchCode) { case SW_LID: mCallbacks.notifyLidSwitchChanged(whenNanos, switchValue == 0); mWindowManagerCallbacks.notifyLidSwitchChanged(whenNanos, switchValue == 0); break; } } // Native callback. private void notifyInputChannelBroken(InputWindowHandle inputWindowHandle) { mCallbacks.notifyInputChannelBroken(inputWindowHandle); mWindowManagerCallbacks.notifyInputChannelBroken(inputWindowHandle); } // Native callback. private long notifyANR(InputApplicationHandle inputApplicationHandle, InputWindowHandle inputWindowHandle) { return mCallbacks.notifyANR(inputApplicationHandle, inputWindowHandle); return mWindowManagerCallbacks.notifyANR(inputApplicationHandle, inputWindowHandle); } // Native callback. Loading @@ -1258,25 +1262,25 @@ public class InputManagerService extends IInputManager.Stub // Native callback. private int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags, boolean isScreenOn) { return mCallbacks.interceptKeyBeforeQueueing( return mWindowManagerCallbacks.interceptKeyBeforeQueueing( event, policyFlags, isScreenOn); } // Native callback. private int interceptMotionBeforeQueueingWhenScreenOff(int policyFlags) { return mCallbacks.interceptMotionBeforeQueueingWhenScreenOff(policyFlags); return mWindowManagerCallbacks.interceptMotionBeforeQueueingWhenScreenOff(policyFlags); } // Native callback. private long interceptKeyBeforeDispatching(InputWindowHandle focus, KeyEvent event, int policyFlags) { return mCallbacks.interceptKeyBeforeDispatching(focus, event, policyFlags); return mWindowManagerCallbacks.interceptKeyBeforeDispatching(focus, event, policyFlags); } // Native callback. private KeyEvent dispatchUnhandledKey(InputWindowHandle focus, KeyEvent event, int policyFlags) { return mCallbacks.dispatchUnhandledKey(focus, event, policyFlags); return mWindowManagerCallbacks.dispatchUnhandledKey(focus, event, policyFlags); } // Native callback. Loading Loading @@ -1359,7 +1363,7 @@ public class InputManagerService extends IInputManager.Stub // Native callback. private int getPointerLayer() { return mCallbacks.getPointerLayer(); return mWindowManagerCallbacks.getPointerLayer(); } // Native callback. Loading Loading @@ -1414,7 +1418,7 @@ public class InputManagerService extends IInputManager.Stub /** * Callback interface implemented by the Window Manager. */ public interface Callbacks { public interface WindowManagerCallbacks { public void notifyConfigurationChanged(); public void notifyLidSwitchChanged(long whenNanos, boolean lidOpen); Loading @@ -1441,8 +1445,8 @@ public class InputManagerService extends IInputManager.Stub * Private handler for the input manager. */ private final class InputManagerHandler extends Handler { public InputManagerHandler() { super(true /*async*/); public InputManagerHandler(Looper looper) { super(looper, null, true /*async*/); } @Override Loading services/java/com/android/server/wm/InputMonitor.java +1 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ import android.view.WindowManager; import java.util.ArrayList; import java.util.Arrays; final class InputMonitor implements InputManagerService.Callbacks { final class InputMonitor implements InputManagerService.WindowManagerCallbacks { private final WindowManagerService mService; // Current window with input focus for keys and other non-touch events. May be null. Loading services/java/com/android/server/wm/WindowManagerService.java +8 −7 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Region; import android.hardware.display.DisplayManager; import android.hardware.input.InputManager; import android.os.Binder; import android.os.Bundle; import android.os.Debug; Loading Loading @@ -738,6 +739,7 @@ public class WindowManagerService extends IWindowManager.Stub public static WindowManagerService main(final Context context, final PowerManagerService pm, final DisplayManagerService dm, final InputManagerService im, final Handler uiHandler, final Handler wmHandler, final boolean haveInputMethods, final boolean showBootMsgs, final boolean onlyCore) { Loading @@ -745,7 +747,7 @@ public class WindowManagerService extends IWindowManager.Stub wmHandler.runWithScissors(new Runnable() { @Override public void run() { holder[0] = new WindowManagerService(context, pm, dm, holder[0] = new WindowManagerService(context, pm, dm, im, uiHandler, haveInputMethods, showBootMsgs, onlyCore); } }, 0); Loading @@ -767,7 +769,8 @@ public class WindowManagerService extends IWindowManager.Stub } private WindowManagerService(Context context, PowerManagerService pm, DisplayManagerService displayManager, Handler uiHandler, DisplayManagerService displayManager, InputManagerService inputManager, Handler uiHandler, boolean haveInputMethods, boolean showBootMsgs, boolean onlyCore) { mContext = context; mHaveInputMethods = haveInputMethods; Loading Loading @@ -814,14 +817,12 @@ public class WindowManagerService extends IWindowManager.Stub | PowerManager.ON_AFTER_RELEASE, TAG); mHoldingScreenWakeLock.setReferenceCounted(false); mInputManager = new InputManagerService(context, mInputMonitor); mInputManager = inputManager; mFxSession = new SurfaceSession(); mAnimator = new WindowAnimator(this); initPolicy(uiHandler); mInputManager.start(); // Add ourself to the Watchdog monitors. Watchdog.getInstance().addMonitor(this); Loading @@ -833,8 +834,8 @@ public class WindowManagerService extends IWindowManager.Stub } } public InputManagerService getInputManagerService() { return mInputManager; public InputMonitor getInputMonitor() { return mInputMonitor; } @Override Loading Loading
services/java/com/android/server/SystemServer.java +8 −2 Original line number Diff line number Diff line Loading @@ -302,16 +302,22 @@ class ServerThread extends Thread { Watchdog.getInstance().init(context, battery, power, alarm, ActivityManagerService.self()); Slog.i(TAG, "Input Manager"); inputManager = new InputManagerService(context, wmHandler); Slog.i(TAG, "Window Manager"); wm = WindowManagerService.main(context, power, display, wm = WindowManagerService.main(context, power, display, inputManager, uiHandler, wmHandler, factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL, !firstBoot, onlyCore); ServiceManager.addService(Context.WINDOW_SERVICE, wm); inputManager = wm.getInputManagerService(); ServiceManager.addService(Context.INPUT_SERVICE, inputManager); ActivityManagerService.self().setWindowManager(wm); inputManager.setWindowManagerCallbacks(wm.getInputMonitor()); inputManager.start(); display.setWindowManager(wm); display.setInputManager(inputManager); Loading
services/java/com/android/server/input/InputManagerService.java +21 −17 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.MessageQueue; import android.os.Process; Loading @@ -70,7 +71,6 @@ import android.view.InputDevice; import android.view.InputEvent; import android.view.KeyEvent; import android.view.PointerIcon; import android.view.Surface; import android.view.ViewConfiguration; import android.view.WindowManagerPolicy; import android.widget.Toast; Loading Loading @@ -109,8 +109,9 @@ public class InputManagerService extends IInputManager.Stub private final int mPtr; private final Context mContext; private final Callbacks mCallbacks; private final InputManagerHandler mHandler; private WindowManagerCallbacks mWindowManagerCallbacks; private boolean mSystemReady; private NotificationManager mNotificationManager; Loading Loading @@ -217,15 +218,18 @@ public class InputManagerService extends IInputManager.Stub /** Switch code: Keypad slide. When set, keyboard is exposed. */ public static final int SW_KEYPAD_SLIDE = 0x0a; public InputManagerService(Context context, Callbacks callbacks) { public InputManagerService(Context context, Handler handler) { this.mContext = context; this.mCallbacks = callbacks; this.mHandler = new InputManagerHandler(); this.mHandler = new InputManagerHandler(handler.getLooper()); Slog.i(TAG, "Initializing input manager"); mPtr = nativeInit(this, mContext, mHandler.getLooper().getQueue()); } public void setWindowManagerCallbacks(WindowManagerCallbacks callbacks) { mWindowManagerCallbacks = callbacks; } public void start() { Slog.i(TAG, "Starting input manager"); nativeStart(mPtr); Loading Loading @@ -1204,7 +1208,7 @@ public class InputManagerService extends IInputManager.Stub // Native callback. private void notifyConfigurationChanged(long whenNanos) { mCallbacks.notifyConfigurationChanged(); mWindowManagerCallbacks.notifyConfigurationChanged(); } // Native callback. Loading @@ -1224,20 +1228,20 @@ public class InputManagerService extends IInputManager.Stub private void notifySwitch(long whenNanos, int switchCode, int switchValue) { switch (switchCode) { case SW_LID: mCallbacks.notifyLidSwitchChanged(whenNanos, switchValue == 0); mWindowManagerCallbacks.notifyLidSwitchChanged(whenNanos, switchValue == 0); break; } } // Native callback. private void notifyInputChannelBroken(InputWindowHandle inputWindowHandle) { mCallbacks.notifyInputChannelBroken(inputWindowHandle); mWindowManagerCallbacks.notifyInputChannelBroken(inputWindowHandle); } // Native callback. private long notifyANR(InputApplicationHandle inputApplicationHandle, InputWindowHandle inputWindowHandle) { return mCallbacks.notifyANR(inputApplicationHandle, inputWindowHandle); return mWindowManagerCallbacks.notifyANR(inputApplicationHandle, inputWindowHandle); } // Native callback. Loading @@ -1258,25 +1262,25 @@ public class InputManagerService extends IInputManager.Stub // Native callback. private int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags, boolean isScreenOn) { return mCallbacks.interceptKeyBeforeQueueing( return mWindowManagerCallbacks.interceptKeyBeforeQueueing( event, policyFlags, isScreenOn); } // Native callback. private int interceptMotionBeforeQueueingWhenScreenOff(int policyFlags) { return mCallbacks.interceptMotionBeforeQueueingWhenScreenOff(policyFlags); return mWindowManagerCallbacks.interceptMotionBeforeQueueingWhenScreenOff(policyFlags); } // Native callback. private long interceptKeyBeforeDispatching(InputWindowHandle focus, KeyEvent event, int policyFlags) { return mCallbacks.interceptKeyBeforeDispatching(focus, event, policyFlags); return mWindowManagerCallbacks.interceptKeyBeforeDispatching(focus, event, policyFlags); } // Native callback. private KeyEvent dispatchUnhandledKey(InputWindowHandle focus, KeyEvent event, int policyFlags) { return mCallbacks.dispatchUnhandledKey(focus, event, policyFlags); return mWindowManagerCallbacks.dispatchUnhandledKey(focus, event, policyFlags); } // Native callback. Loading Loading @@ -1359,7 +1363,7 @@ public class InputManagerService extends IInputManager.Stub // Native callback. private int getPointerLayer() { return mCallbacks.getPointerLayer(); return mWindowManagerCallbacks.getPointerLayer(); } // Native callback. Loading Loading @@ -1414,7 +1418,7 @@ public class InputManagerService extends IInputManager.Stub /** * Callback interface implemented by the Window Manager. */ public interface Callbacks { public interface WindowManagerCallbacks { public void notifyConfigurationChanged(); public void notifyLidSwitchChanged(long whenNanos, boolean lidOpen); Loading @@ -1441,8 +1445,8 @@ public class InputManagerService extends IInputManager.Stub * Private handler for the input manager. */ private final class InputManagerHandler extends Handler { public InputManagerHandler() { super(true /*async*/); public InputManagerHandler(Looper looper) { super(looper, null, true /*async*/); } @Override Loading
services/java/com/android/server/wm/InputMonitor.java +1 −1 Original line number Diff line number Diff line Loading @@ -33,7 +33,7 @@ import android.view.WindowManager; import java.util.ArrayList; import java.util.Arrays; final class InputMonitor implements InputManagerService.Callbacks { final class InputMonitor implements InputManagerService.WindowManagerCallbacks { private final WindowManagerService mService; // Current window with input focus for keys and other non-touch events. May be null. Loading
services/java/com/android/server/wm/WindowManagerService.java +8 −7 Original line number Diff line number Diff line Loading @@ -74,6 +74,7 @@ import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Region; import android.hardware.display.DisplayManager; import android.hardware.input.InputManager; import android.os.Binder; import android.os.Bundle; import android.os.Debug; Loading Loading @@ -738,6 +739,7 @@ public class WindowManagerService extends IWindowManager.Stub public static WindowManagerService main(final Context context, final PowerManagerService pm, final DisplayManagerService dm, final InputManagerService im, final Handler uiHandler, final Handler wmHandler, final boolean haveInputMethods, final boolean showBootMsgs, final boolean onlyCore) { Loading @@ -745,7 +747,7 @@ public class WindowManagerService extends IWindowManager.Stub wmHandler.runWithScissors(new Runnable() { @Override public void run() { holder[0] = new WindowManagerService(context, pm, dm, holder[0] = new WindowManagerService(context, pm, dm, im, uiHandler, haveInputMethods, showBootMsgs, onlyCore); } }, 0); Loading @@ -767,7 +769,8 @@ public class WindowManagerService extends IWindowManager.Stub } private WindowManagerService(Context context, PowerManagerService pm, DisplayManagerService displayManager, Handler uiHandler, DisplayManagerService displayManager, InputManagerService inputManager, Handler uiHandler, boolean haveInputMethods, boolean showBootMsgs, boolean onlyCore) { mContext = context; mHaveInputMethods = haveInputMethods; Loading Loading @@ -814,14 +817,12 @@ public class WindowManagerService extends IWindowManager.Stub | PowerManager.ON_AFTER_RELEASE, TAG); mHoldingScreenWakeLock.setReferenceCounted(false); mInputManager = new InputManagerService(context, mInputMonitor); mInputManager = inputManager; mFxSession = new SurfaceSession(); mAnimator = new WindowAnimator(this); initPolicy(uiHandler); mInputManager.start(); // Add ourself to the Watchdog monitors. Watchdog.getInstance().addMonitor(this); Loading @@ -833,8 +834,8 @@ public class WindowManagerService extends IWindowManager.Stub } } public InputManagerService getInputManagerService() { return mInputManager; public InputMonitor getInputMonitor() { return mInputMonitor; } @Override Loading