summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@android.com>2010-10-15 08:36:50 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-10-15 08:36:50 -0700
commitfeebaf35c0edaed87edc6eb33a33ad9df1a209d6 (patch)
treefcabeb36fc3be08be14aa5450e325d21eb31fb19
parentc1e7b2182594aa0463c4a738cc8e7eea6777ef50 (diff)
parente331644cb570e74a8739cb21ffcc5875663ffa58 (diff)
downloadframeworks_base-feebaf35c0edaed87edc6eb33a33ad9df1a209d6.zip
frameworks_base-feebaf35c0edaed87edc6eb33a33ad9df1a209d6.tar.gz
frameworks_base-feebaf35c0edaed87edc6eb33a33ad9df1a209d6.tar.bz2
Merge "Don't crash on null Vibrator during reboot." into gingerbread
-rw-r--r--core/java/android/os/Vibrator.java22
-rw-r--r--core/java/com/android/internal/app/ShutdownThread.java2
2 files changed, 21 insertions, 3 deletions
diff --git a/core/java/android/os/Vibrator.java b/core/java/android/os/Vibrator.java
index 1895cf8..58ed986 100644
--- a/core/java/android/os/Vibrator.java
+++ b/core/java/android/os/Vibrator.java
@@ -16,6 +16,8 @@
package android.os;
+import android.util.Log;
+
/**
* Class that operates the vibrator on the device.
* <p>
@@ -23,6 +25,8 @@ package android.os;
*/
public class Vibrator
{
+ private static final String TAG = "Vibrator";
+
IVibratorService mService;
private final Binder mToken = new Binder();
@@ -40,9 +44,14 @@ public class Vibrator
*/
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) {
+ } catch (Exception e) {
+ Log.w(TAG, "Failed to vibrate.", e);
}
}
@@ -61,13 +70,18 @@ public class Vibrator
*/
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) {
+ } catch (Exception e) {
+ Log.w(TAG, "Failed to vibrate.", e);
}
} else {
throw new ArrayIndexOutOfBoundsException();
@@ -79,9 +93,13 @@ public class Vibrator
*/
public void cancel()
{
+ if (mService == null) {
+ return;
+ }
try {
mService.cancelVibrate(mToken);
} catch (RemoteException e) {
+ Log.w(TAG, "Failed to cancel vibration.", e);
}
}
}
diff --git a/core/java/com/android/internal/app/ShutdownThread.java b/core/java/com/android/internal/app/ShutdownThread.java
index 714b259..1fcd654 100644
--- a/core/java/com/android/internal/app/ShutdownThread.java
+++ b/core/java/com/android/internal/app/ShutdownThread.java
@@ -364,7 +364,7 @@ public final class ShutdownThread extends Thread {
// vibrator is asynchronous so we need to wait to avoid shutting down too soon.
try {
Thread.sleep(SHUTDOWN_VIBRATE_MS);
- } catch (InterruptedException e) {
+ } catch (InterruptedException unused) {
}
}