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

Commit 11ca81e1 authored by Jeff Brown's avatar Jeff Brown Committed by Android (Google) Code Review
Browse files

Merge "Use new input manager API."

parents 7719be16 b4765ac7
Loading
Loading
Loading
Loading
+13 −39
Original line number Diff line number Diff line
@@ -19,22 +19,20 @@ package com.android.settings;
import android.content.ContentResolver;
import android.content.Context;
import android.database.ContentObserver;
import android.hardware.input.InputManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.preference.SeekBarDialogPreference;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.util.AttributeSet;
import android.view.IWindowManager;
import android.view.View;
import android.widget.SeekBar;

public class PointerSpeedPreference extends SeekBarDialogPreference implements
        SeekBar.OnSeekBarChangeListener {
    private final InputManager mIm;
    private SeekBar mSeekBar;

    private int mOldSpeed;
@@ -42,9 +40,6 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements

    private boolean mTouchInProgress;

    private static final int MIN_SPEED = -7;
    private static final int MAX_SPEED = 7;

    private ContentObserver mSpeedObserver = new ContentObserver(new Handler()) {
        @Override
        public void onChange(boolean selfChange) {
@@ -54,6 +49,7 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements

    public PointerSpeedPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        mIm = (InputManager)getContext().getSystemService(Context.INPUT_SERVICE);
    }

    @Override
@@ -72,15 +68,15 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
        super.onBindDialogView(view);

        mSeekBar = getSeekBar(view);
        mSeekBar.setMax(MAX_SPEED - MIN_SPEED);
        mOldSpeed = getSpeed(0);
        mSeekBar.setProgress(mOldSpeed - MIN_SPEED);
        mSeekBar.setMax(InputManager.MAX_POINTER_SPEED - InputManager.MIN_POINTER_SPEED);
        mOldSpeed = mIm.getPointerSpeed();
        mSeekBar.setProgress(mOldSpeed - InputManager.MIN_POINTER_SPEED);
        mSeekBar.setOnSeekBarChangeListener(this);
    }

    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
        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) {
        mTouchInProgress = false;
        setSpeed(seekBar.getProgress() + MIN_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;
        mIm.tryPointerSpeed(seekBar.getProgress() + InputManager.MIN_POINTER_SPEED);
    }

    private void onSpeedChanged() {
        int speed = getSpeed(0);
        mSeekBar.setProgress(speed - MIN_SPEED);
        int speed = mIm.getPointerSpeed();
        mSeekBar.setProgress(speed - InputManager.MIN_POINTER_SPEED);
    }

    @Override
@@ -115,8 +101,7 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
        final ContentResolver resolver = getContext().getContentResolver();

        if (positiveResult) {
            Settings.System.putInt(resolver, Settings.System.POINTER_SPEED,
                    mSeekBar.getProgress() + MIN_SPEED);
            mIm.setPointerSpeed(mSeekBar.getProgress() + InputManager.MIN_POINTER_SPEED);
        } else {
            restoreOldState();
        }
@@ -127,21 +112,10 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
    private void restoreOldState() {
        if (mRestoredOldState) return;

        setSpeed(mOldSpeed);
        mIm.tryPointerSpeed(mOldSpeed);
        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
    protected Parcelable onSaveInstanceState() {
        final Parcelable superState = super.onSaveInstanceState();
@@ -169,7 +143,7 @@ public class PointerSpeedPreference extends SeekBarDialogPreference implements
        super.onRestoreInstanceState(myState.getSuperState());
        mOldSpeed = myState.oldSpeed;
        mSeekBar.setProgress(myState.progress);
        setSpeed(myState.progress + MIN_SPEED);
        mIm.tryPointerSpeed(myState.progress + InputManager.MIN_POINTER_SPEED);
    }

    private static class SavedState extends BaseSavedState {