diff options
author | Brad Fitzpatrick <bradfitz@android.com> | 2010-10-15 08:36:50 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-10-15 08:36:50 -0700 |
commit | feebaf35c0edaed87edc6eb33a33ad9df1a209d6 (patch) | |
tree | fcabeb36fc3be08be14aa5450e325d21eb31fb19 | |
parent | c1e7b2182594aa0463c4a738cc8e7eea6777ef50 (diff) | |
parent | e331644cb570e74a8739cb21ffcc5875663ffa58 (diff) | |
download | frameworks_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.java | 22 | ||||
-rw-r--r-- | core/java/com/android/internal/app/ShutdownThread.java | 2 |
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) { } } |