import android.os.Binder;
import android.os.Bundle;
import android.os.Environment;
+import android.os.FileObserver;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
/** Whether to use the dev/input/event or uevent subsystem for the audio jack. */
final boolean mUseDevInputEventForAudioJack;
+ private class TscalObserver extends FileObserver {
+ public TscalObserver() {
+ super("/data/misc/tscal/pointercal", CLOSE_WRITE);
+ }
+
+ @Override
+ public void onEvent(int event, String path) {
+ Slog.i(TAG, "detect pointercal changed");
+ reloadDeviceAliases();
+ }
+ }
+ private final TscalObserver mTscalObserver = new TscalObserver();
+
public InputManagerService(Context context) {
this.mContext = context;
this.mHandler = new InputManagerHandler(DisplayThread.get().getLooper());
mPtr = nativeInit(this, mContext, mHandler.getLooper().getQueue());
LocalServices.addService(InputManagerInternal.class, new LocalService());
+ mTscalObserver.startWatching();
}
public void setWindowManagerCallbacks(WindowManagerCallbacks callbacks) {