diff options
author | Jim Miller <jaggies@google.com> | 2013-10-30 13:58:11 -0700 |
---|---|---|
committer | Jim Miller <jaggies@google.com> | 2013-10-31 14:32:29 -0700 |
commit | a999d463c1f72fc7d9fcb21e850b78ec77793730 (patch) | |
tree | 3d754a02b5e00a3ddca21f8f786b045d73214433 | |
parent | 73f68dbcc6e03aa0071097ea8b1b84995013ff59 (diff) | |
download | frameworks_base-a999d463c1f72fc7d9fcb21e850b78ec77793730.zip frameworks_base-a999d463c1f72fc7d9fcb21e850b78ec77793730.tar.gz frameworks_base-a999d463c1f72fc7d9fcb21e850b78ec77793730.tar.bz2 |
Remove deprecated API calls to KeyguardManager from statusbar
Fixes bug 11448304
Change-Id: I3049a20d9320af0425d7a8f08d5aa208e470e292
3 files changed, 28 insertions, 14 deletions
diff --git a/core/java/android/app/KeyguardManager.java b/core/java/android/app/KeyguardManager.java index 22a21cd..aab6ed8 100644 --- a/core/java/android/app/KeyguardManager.java +++ b/core/java/android/app/KeyguardManager.java @@ -205,7 +205,9 @@ public class KeyguardManager { try { mWM.exitKeyguardSecurely(new IOnKeyguardExitResult.Stub() { public void onKeyguardExitResult(boolean success) throws RemoteException { - callback.onKeyguardExitResult(success); + if (callback != null) { + callback.onKeyguardExitResult(success); + } } }); } catch (RemoteException e) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java index 6a2bc5f..ed00398 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java @@ -18,7 +18,6 @@ package com.android.systemui.statusbar; import android.app.ActivityManager; import android.app.ActivityManagerNative; -import android.app.KeyguardManager; import android.app.Notification; import android.app.PendingIntent; import android.app.TaskStackBuilder; @@ -70,6 +69,7 @@ import com.android.systemui.R; import com.android.systemui.RecentsComponent; import com.android.systemui.SearchPanelView; import com.android.systemui.SystemUI; +import com.android.systemui.statusbar.phone.KeyguardTouchDelegate; import com.android.systemui.statusbar.policy.NotificationRowLayout; import java.util.ArrayList; @@ -128,7 +128,6 @@ public abstract class BaseStatusBar extends SystemUI implements protected boolean mUseHeadsUp = false; protected IDreamManager mDreamManager; - KeyguardManager mKeyguardManager; PowerManager mPowerManager; protected int mRowHeight; @@ -221,7 +220,6 @@ public abstract class BaseStatusBar extends SystemUI implements mDreamManager = IDreamManager.Stub.asInterface( ServiceManager.checkService(DreamService.DREAM_SERVICE)); - mKeyguardManager = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE); mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mProvisioningObserver.onChange(false); // set up @@ -749,9 +747,7 @@ public abstract class BaseStatusBar extends SystemUI implements Log.w(TAG, "Sending contentIntent failed: " + e); } - KeyguardManager kgm = - (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE); - if (kgm != null) kgm.exitKeyguardSecurely(null); + KeyguardTouchDelegate.getInstance(mContext).dismiss(); } try { @@ -1056,10 +1052,12 @@ public abstract class BaseStatusBar extends SystemUI implements boolean isAllowed = notification.extras.getInt(Notification.EXTRA_AS_HEADS_UP, Notification.HEADS_UP_ALLOWED) != Notification.HEADS_UP_NEVER; + final KeyguardTouchDelegate keyguard = KeyguardTouchDelegate.getInstance(mContext); boolean interrupt = (isFullscreen || (isHighPriority && isNoisy)) && isAllowed && mPowerManager.isScreenOn() - && !mKeyguardManager.isKeyguardLocked(); + && !keyguard.isShowingAndNotHidden() + && !keyguard.isInputRestricted(); try { interrupt = interrupt && !mDreamManager.isDreaming(); } catch (RemoteException e) { @@ -1087,8 +1085,7 @@ public abstract class BaseStatusBar extends SystemUI implements } public boolean inKeyguardRestrictedInputMode() { - KeyguardManager km = (KeyguardManager) mContext.getSystemService(Context.KEYGUARD_SERVICE); - return km.inKeyguardRestrictedInputMode(); + return KeyguardTouchDelegate.getInstance(mContext).isInputRestricted(); } public void setInteracting(int barWindow, boolean interacting) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardTouchDelegate.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardTouchDelegate.java index 5c55f0d..c1646ba 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardTouchDelegate.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardTouchDelegate.java @@ -77,10 +77,11 @@ public class KeyguardTouchDelegate { } public static KeyguardTouchDelegate getInstance(Context context) { - if (sInstance == null) { - sInstance = new KeyguardTouchDelegate(context); + KeyguardTouchDelegate instance = sInstance; + if (instance == null) { + instance = sInstance = new KeyguardTouchDelegate(context); } - return sInstance; + return instance; } public boolean isSecure() { @@ -165,7 +166,21 @@ public class KeyguardTouchDelegate { Slog.e(TAG, "RemoteException launching camera!", e); } } else { - Slog.w(TAG, "dispatch(event): NO SERVICE!"); + Slog.w(TAG, "launchCamera(): NO SERVICE!"); + } + } + + public void dismiss() { + final IKeyguardService service = mService; + if (service != null) { + try { + service.dismiss(); + } catch (RemoteException e) { + // What to do? + Slog.e(TAG, "RemoteException dismissing keyguard!", e); + } + } else { + Slog.w(TAG, "dismiss(): NO SERVICE!"); } } |