author | wei.wang <wei.wang@amlogic.com> | 2012-08-01 11:58:12 (GMT) |
---|---|---|
committer | wei.wang <wei.wang@amlogic.com> | 2012-08-01 11:58:12 (GMT) |
commit | e33a1dedb7ed3626752563a3466736e63257b398 (patch) | |
tree | c065e76bb37c3e6ff853e546e0b144c67673e452 | |
parent | fe4f6f87d626b353f434969506a1b50035bd4495 (diff) | |
download | RemoteIME-e33a1dedb7ed3626752563a3466736e63257b398.zip RemoteIME-e33a1dedb7ed3626752563a3466736e63257b398.tar.gz RemoteIME-e33a1dedb7ed3626752563a3466736e63257b398.tar.bz2 |
build new branch 'jb-amlogic' : mv Vibrate.java from os to this app
-rwxr-xr-x | src/com/amlogic/inputmethod/remote/SoftKeyboardView.java | 2 | ||||
-rwxr-xr-x | src/com/amlogic/inputmethod/remote/Vibrator.java | 130 |
2 files changed, 131 insertions, 1 deletions
diff --git a/src/com/amlogic/inputmethod/remote/SoftKeyboardView.java b/src/com/amlogic/inputmethod/remote/SoftKeyboardView.java index 74be3e7..36f5e05 100755 --- a/src/com/amlogic/inputmethod/remote/SoftKeyboardView.java +++ b/src/com/amlogic/inputmethod/remote/SoftKeyboardView.java @@ -26,7 +26,7 @@ import android.graphics.Paint; import android.graphics.Rect; import android.graphics.Paint.FontMetricsInt; import android.graphics.drawable.Drawable; -import android.os.Vibrator; +/*import android.os.Vibrator;*/ import android.util.AttributeSet; import android.view.View; diff --git a/src/com/amlogic/inputmethod/remote/Vibrator.java b/src/com/amlogic/inputmethod/remote/Vibrator.java new file mode 100755 index 0000000..846bc90 --- a/dev/null +++ b/src/com/amlogic/inputmethod/remote/Vibrator.java @@ -0,0 +1,130 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.amlogic.inputmethod.remote; + +import android.util.Log; +import android.os.IVibratorService; +import android.os.Binder; +import android.os.RemoteException; +import android.os.ServiceManager; +/** + * Class that operates the vibrator on the device. + * <p> + * If your process exits, any vibration you started with will stop. + * </p> + */ +public class Vibrator +{ + private static final String TAG = "Vibrator"; + + IVibratorService mService; + private final Binder mToken = new Binder(); + + /** @hide */ + public Vibrator() + { + mService = IVibratorService.Stub.asInterface( + ServiceManager.getService("vibrator")); + } + + /** + * Check whether the hardware has a vibrator. Returns true if a vibrator + * exists, else false. + */ + public boolean hasVibrator() { + if (mService == null) { + Log.w(TAG, "Failed to vibrate; no vibrator service."); + return false; + } + try { + return mService.hasVibrator(); + } catch (RemoteException e) { + } + return false; + } + + /** + * Turn the vibrator on. + * + * @param milliseconds The number of milliseconds to vibrate. + */ + public void vibrate(long milliseconds) + { + if (mService == null) { + Log.w(TAG, "Failed to vibrate; no vibrator service."); + return; + } + try { + mService.vibrate(milliseconds, mToken); + } catch (RemoteException e) { + Log.w(TAG, "Failed to vibrate.", e); + } + } + + /** + * Vibrate with a given pattern. + * + * <p> + * Pass in an array of ints that are the durations for which to turn on or off + * the vibrator in milliseconds. The first value indicates the number of milliseconds + * to wait before turning the vibrator on. The next value indicates the number of milliseconds + * for which to keep the vibrator on before turning it off. Subsequent values alternate + * between durations in milliseconds to turn the vibrator off or to turn the vibrator on. + * </p><p> + * To cause the pattern to repeat, pass the index into the pattern array at which + * to start the repeat, or -1 to disable repeating. + * </p> + * + * @param pattern an array of longs of times for which to turn the vibrator on or off. + * @param repeat the index into pattern at which to repeat, or -1 if + * you don't want to repeat. + */ + public void vibrate(long[] pattern, int repeat) + { + if (mService == null) { + Log.w(TAG, "Failed to vibrate; no vibrator service."); + return; + } + // catch this here because the server will do nothing. pattern may + // not be null, let that be checked, because the server will drop it + // anyway + if (repeat < pattern.length) { + try { + mService.vibratePattern(pattern, repeat, mToken); + } catch (RemoteException e) { + Log.w(TAG, "Failed to vibrate.", e); + } + } else { + throw new ArrayIndexOutOfBoundsException(); + } + } + + /** + * Turn the vibrator off. + */ + public void cancel() + { + if (mService == null) { + return; + } + try { + mService.cancelVibrate(mToken); + } catch (RemoteException e) { + Log.w(TAG, "Failed to cancel vibration.", e); + } + } +} |