Fix race reading input configuration during system startup.

Change-Id: I9360c4ec5c29937fce06b44ffc71fca58c8b3d5f
diff --git a/services/java/com/android/server/InputManager.java b/services/java/com/android/server/InputManager.java
index 024aec5..29ca9a4 100644
--- a/services/java/com/android/server/InputManager.java
+++ b/services/java/com/android/server/InputManager.java
@@ -53,10 +53,6 @@
     private final Context mContext;
     private final WindowManagerService mWindowManagerService;
     
-    private int mTouchScreenConfig;
-    private int mKeyboardConfig;
-    private int mNavigationConfig;
-    
     private static native void nativeInit(Callbacks callbacks);
     private static native void nativeStart();
     private static native void nativeSetDisplaySize(int displayId, int width, int height);
@@ -79,6 +75,7 @@
     private static native void nativeSetInputDispatchMode(boolean enabled, boolean frozen);
     private static native void nativeSetFocusedApplication(InputApplication application);
     private static native InputDevice nativeGetInputDevice(int deviceId);
+    private static native void nativeGetInputConfiguration(Configuration configuration);
     private static native int[] nativeGetInputDeviceIds();
     private static native String nativeDump();
     
@@ -114,10 +111,6 @@
         
         this.mCallbacks = new Callbacks();
         
-        mTouchScreenConfig = Configuration.TOUCHSCREEN_NOTOUCH;
-        mKeyboardConfig = Configuration.KEYBOARD_NOKEYS;
-        mNavigationConfig = Configuration.NAVIGATION_NONAV;
-        
         init();
     }
     
@@ -154,9 +147,7 @@
             throw new IllegalArgumentException("config must not be null.");
         }
         
-        config.touchscreen = mTouchScreenConfig;
-        config.keyboard = mKeyboardConfig;
-        config.navigation = mNavigationConfig;
+        nativeGetInputConfiguration(config);
     }
     
     /**
@@ -367,12 +358,7 @@
         }
         
         @SuppressWarnings("unused")
-        public void notifyConfigurationChanged(long whenNanos,
-                int touchScreenConfig, int keyboardConfig, int navigationConfig) {
-            mTouchScreenConfig = touchScreenConfig;
-            mKeyboardConfig = keyboardConfig;
-            mNavigationConfig = navigationConfig;
-            
+        public void notifyConfigurationChanged(long whenNanos) {
             mWindowManagerService.sendNewConfiguration();
         }