Merge "Use new input manager API."

This commit is contained in:
Jeff Brown
2012-04-05 19:34:58 -07:00
committed by Android (Google) Code Review

View File

@@ -19,22 +19,20 @@ package com.android.settings;
import android.content.ContentResolver; import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.hardware.input.InputManager;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.preference.SeekBarDialogPreference; import android.preference.SeekBarDialogPreference;
import android.provider.Settings; import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.IWindowManager;
import android.view.View; import android.view.View;
import android.widget.SeekBar; import android.widget.SeekBar;
public class PointerSpeedPreference extends SeekBarDialogPreference implements public class PointerSpeedPreference extends SeekBarDialogPreference implements
SeekBar.OnSeekBarChangeListener { SeekBar.OnSeekBarChangeListener {
private final InputManager mIm;
private SeekBar mSeekBar; private SeekBar mSeekBar;
private int mOldSpeed; private int mOldSpeed;
@@ -42,9 +40,6 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
private boolean mTouchInProgress; private boolean mTouchInProgress;
private static final int MIN_SPEED = -7;
private static final int MAX_SPEED = 7;
private ContentObserver mSpeedObserver = new ContentObserver(new Handler()) { private ContentObserver mSpeedObserver = new ContentObserver(new Handler()) {
@Override @Override
public void onChange(boolean selfChange) { public void onChange(boolean selfChange) {
@@ -54,6 +49,7 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
public PointerSpeedPreference(Context context, AttributeSet attrs) { public PointerSpeedPreference(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
mIm = (InputManager)getContext().getSystemService(Context.INPUT_SERVICE);
} }
@Override @Override
@@ -72,15 +68,15 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
super.onBindDialogView(view); super.onBindDialogView(view);
mSeekBar = getSeekBar(view); mSeekBar = getSeekBar(view);
mSeekBar.setMax(MAX_SPEED - MIN_SPEED); mSeekBar.setMax(InputManager.MAX_POINTER_SPEED - InputManager.MIN_POINTER_SPEED);
mOldSpeed = getSpeed(0); mOldSpeed = mIm.getPointerSpeed();
mSeekBar.setProgress(mOldSpeed - MIN_SPEED); mSeekBar.setProgress(mOldSpeed - InputManager.MIN_POINTER_SPEED);
mSeekBar.setOnSeekBarChangeListener(this); mSeekBar.setOnSeekBarChangeListener(this);
} }
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) { public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
if (!mTouchInProgress) { if (!mTouchInProgress) {
setSpeed(progress + MIN_SPEED); mIm.tryPointerSpeed(progress + InputManager.MIN_POINTER_SPEED);
} }
} }
@@ -90,22 +86,12 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
public void onStopTrackingTouch(SeekBar seekBar) { public void onStopTrackingTouch(SeekBar seekBar) {
mTouchInProgress = false; mTouchInProgress = false;
setSpeed(seekBar.getProgress() + MIN_SPEED); mIm.tryPointerSpeed(seekBar.getProgress() + InputManager.MIN_POINTER_SPEED);
}
private int getSpeed(int defaultValue) {
int speed = defaultValue;
try {
speed = Settings.System.getInt(getContext().getContentResolver(),
Settings.System.POINTER_SPEED);
} catch (SettingNotFoundException snfe) {
}
return speed;
} }
private void onSpeedChanged() { private void onSpeedChanged() {
int speed = getSpeed(0); int speed = mIm.getPointerSpeed();
mSeekBar.setProgress(speed - MIN_SPEED); mSeekBar.setProgress(speed - InputManager.MIN_POINTER_SPEED);
} }
@Override @Override
@@ -115,8 +101,7 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
final ContentResolver resolver = getContext().getContentResolver(); final ContentResolver resolver = getContext().getContentResolver();
if (positiveResult) { if (positiveResult) {
Settings.System.putInt(resolver, Settings.System.POINTER_SPEED, mIm.setPointerSpeed(mSeekBar.getProgress() + InputManager.MIN_POINTER_SPEED);
mSeekBar.getProgress() + MIN_SPEED);
} else { } else {
restoreOldState(); restoreOldState();
} }
@@ -127,21 +112,10 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
private void restoreOldState() { private void restoreOldState() {
if (mRestoredOldState) return; if (mRestoredOldState) return;
setSpeed(mOldSpeed); mIm.tryPointerSpeed(mOldSpeed);
mRestoredOldState = true; mRestoredOldState = true;
} }
private void setSpeed(int speed) {
try {
IWindowManager wm = IWindowManager.Stub.asInterface(
ServiceManager.getService("window"));
if (wm != null) {
wm.setPointerSpeed(speed);
}
} catch (RemoteException e) {
}
}
@Override @Override
protected Parcelable onSaveInstanceState() { protected Parcelable onSaveInstanceState() {
final Parcelable superState = super.onSaveInstanceState(); final Parcelable superState = super.onSaveInstanceState();
@@ -169,7 +143,7 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
super.onRestoreInstanceState(myState.getSuperState()); super.onRestoreInstanceState(myState.getSuperState());
mOldSpeed = myState.oldSpeed; mOldSpeed = myState.oldSpeed;
mSeekBar.setProgress(myState.progress); mSeekBar.setProgress(myState.progress);
setSpeed(myState.progress + MIN_SPEED); mIm.tryPointerSpeed(myState.progress + InputManager.MIN_POINTER_SPEED);
} }
private static class SavedState extends BaseSavedState { private static class SavedState extends BaseSavedState {