diff options
-rw-r--r-- | Android.mk | 3 | ||||
-rw-r--r-- | core/java/com/android/internal/policy/IKeyguardExitCallback.aidl (renamed from core/java/com/android/internal/policy/IKeyguardResult.aidl) | 5 | ||||
-rw-r--r-- | core/java/com/android/internal/policy/IKeyguardService.aidl | 14 | ||||
-rw-r--r-- | core/java/com/android/internal/policy/IKeyguardShowCallback.aidl | 20 | ||||
-rw-r--r-- | packages/Keyguard/AndroidManifest.xml | 12 | ||||
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardService.java | 25 | ||||
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardTestActivity.java | 16 | ||||
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java | 23 | ||||
-rw-r--r-- | packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java | 50 | ||||
-rw-r--r-- | policy/src/com/android/internal/policy/impl/KeyguardServiceWrapper.java | 68 | ||||
-rw-r--r-- | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 13 | ||||
-rw-r--r-- | policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java | 92 |
12 files changed, 166 insertions, 175 deletions
@@ -180,7 +180,8 @@ LOCAL_SRC_FILES += \ core/java/com/android/internal/backup/IBackupTransport.aidl \ core/java/com/android/internal/policy/IFaceLockCallback.aidl \ core/java/com/android/internal/policy/IFaceLockInterface.aidl \ - core/java/com/android/internal/policy/IKeyguardResult.aidl \ + core/java/com/android/internal/policy/IKeyguardShowCallback.aidl \ + core/java/com/android/internal/policy/IKeyguardExitCallback.aidl \ core/java/com/android/internal/policy/IKeyguardService.aidl \ core/java/com/android/internal/os/IDropBoxManagerService.aidl \ core/java/com/android/internal/os/IResultReceiver.aidl \ diff --git a/core/java/com/android/internal/policy/IKeyguardResult.aidl b/core/java/com/android/internal/policy/IKeyguardExitCallback.aidl index 998cd61..3702712 100644 --- a/core/java/com/android/internal/policy/IKeyguardResult.aidl +++ b/core/java/com/android/internal/policy/IKeyguardExitCallback.aidl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 The Android Open Source Project + * Copyright (C) 2013 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. @@ -15,7 +15,6 @@ */ package com.android.internal.policy; -oneway interface IKeyguardResult { - void onShown(IBinder windowToken); +oneway interface IKeyguardExitCallback { void onKeyguardExitResult(boolean success); } diff --git a/core/java/com/android/internal/policy/IKeyguardService.aidl b/core/java/com/android/internal/policy/IKeyguardService.aidl index 76a4cfa..880464d 100644 --- a/core/java/com/android/internal/policy/IKeyguardService.aidl +++ b/core/java/com/android/internal/policy/IKeyguardService.aidl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012 The Android Open Source Project + * Copyright (C) 2013 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. @@ -15,7 +15,8 @@ */ package com.android.internal.policy; -import com.android.internal.policy.IKeyguardResult; +import com.android.internal.policy.IKeyguardShowCallback; +import com.android.internal.policy.IKeyguardExitCallback; import android.os.Bundle; @@ -25,17 +26,16 @@ interface IKeyguardService { boolean isShowingAndNotHidden(); boolean isInputRestricted(); boolean isDismissable(); - oneway void userActivity(); - oneway void verifyUnlock(IKeyguardResult result); + oneway void verifyUnlock(IKeyguardExitCallback callback); oneway void keyguardDone(boolean authenticated, boolean wakeup); oneway void setHidden(boolean isHidden); oneway void dismiss(); - oneway void onWakeKeyWhenKeyguardShowingTq(int keyCode); - oneway void onWakeMotionWhenKeyguardShowingTq(); + oneway void onWakeKeyWhenKeyguardShowing(int keyCode); + oneway void onWakeMotionWhenKeyguardShowing(); oneway void onDreamingStarted(); oneway void onDreamingStopped(); oneway void onScreenTurnedOff(int reason); - oneway void onScreenTurnedOn(IKeyguardResult result); + oneway void onScreenTurnedOn(IKeyguardShowCallback callback); oneway void setKeyguardEnabled(boolean enabled); oneway void onSystemReady(); oneway void doKeyguardTimeout(in Bundle options); diff --git a/core/java/com/android/internal/policy/IKeyguardShowCallback.aidl b/core/java/com/android/internal/policy/IKeyguardShowCallback.aidl new file mode 100644 index 0000000..a2784d9 --- /dev/null +++ b/core/java/com/android/internal/policy/IKeyguardShowCallback.aidl @@ -0,0 +1,20 @@ +/* + * Copyright (C) 2013 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.android.internal.policy; + +oneway interface IKeyguardShowCallback { + void onShown(IBinder windowToken); +} diff --git a/packages/Keyguard/AndroidManifest.xml b/packages/Keyguard/AndroidManifest.xml index 0741882..38e764a 100644 --- a/packages/Keyguard/AndroidManifest.xml +++ b/packages/Keyguard/AndroidManifest.xml @@ -45,17 +45,5 @@ <service android:name=".KeyguardService" android:exported="true" /> - <activity android:name=".KeyguardTestActivity" - android:label="@string/app_name" - android:theme="@android:style/Theme.Holo" - android:hardwareAccelerated="true" - android:process="com.android.keyguard.keyguard_test" - > - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - </application> </manifest> diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardService.java b/packages/Keyguard/src/com/android/keyguard/KeyguardService.java index e697948..9fa4790 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardService.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardService.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010 The Android Open Source Project + * Copyright (C) 2013 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. @@ -24,10 +24,10 @@ import android.content.Intent; import android.os.Bundle; import android.os.IBinder; import android.util.Log; -import android.view.accessibility.AccessibilityManager; import com.android.internal.policy.IKeyguardService; -import com.android.internal.policy.IKeyguardResult; +import com.android.internal.policy.IKeyguardExitCallback; +import com.android.internal.policy.IKeyguardShowCallback; import com.android.internal.widget.LockPatternUtils; public class KeyguardService extends Service { @@ -66,11 +66,8 @@ public class KeyguardService extends Service { public boolean isInputRestricted() { return mKeyguardViewMediator.isInputRestricted(); } - public void userActivity() { - mKeyguardViewMediator.userActivity(); - } - public void verifyUnlock(IKeyguardResult result) { - mKeyguardViewMediator.verifyUnlock(result); + public void verifyUnlock(IKeyguardExitCallback callback) { + mKeyguardViewMediator.verifyUnlock(callback); } public void keyguardDone(boolean authenticated, boolean wakeup) { mKeyguardViewMediator.keyguardDone(authenticated, wakeup); @@ -81,11 +78,11 @@ public class KeyguardService extends Service { public void dismiss() { mKeyguardViewMediator.dismiss(); } - public void onWakeKeyWhenKeyguardShowingTq(int keyCode) { - mKeyguardViewMediator.onWakeKeyWhenKeyguardShowingTq(keyCode); + public void onWakeKeyWhenKeyguardShowing(int keyCode) { + mKeyguardViewMediator.onWakeKeyWhenKeyguardShowing(keyCode); } - public void onWakeMotionWhenKeyguardShowingTq() { - mKeyguardViewMediator.onWakeMotionWhenKeyguardShowingTq(); + public void onWakeMotionWhenKeyguardShowing() { + mKeyguardViewMediator.onWakeMotionWhenKeyguardShowing(); } public void onDreamingStarted() { mKeyguardViewMediator.onDreamingStarted(); @@ -96,8 +93,8 @@ public class KeyguardService extends Service { public void onScreenTurnedOff(int reason) { mKeyguardViewMediator.onScreenTurnedOff(reason); } - public void onScreenTurnedOn(IKeyguardResult result) { - mKeyguardViewMediator.onScreenTurnedOn(result); + public void onScreenTurnedOn(IKeyguardShowCallback callback) { + mKeyguardViewMediator.onScreenTurnedOn(callback); } public void setKeyguardEnabled(boolean enabled) { mKeyguardViewMediator.setKeyguardEnabled(enabled); diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardTestActivity.java b/packages/Keyguard/src/com/android/keyguard/KeyguardTestActivity.java index 3deaeed..0ff00e3 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardTestActivity.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardTestActivity.java @@ -16,7 +16,8 @@ package com.android.keyguard; -import com.android.internal.policy.IKeyguardResult; +import com.android.internal.policy.IKeyguardShowCallback; +import com.android.internal.policy.IKeyguardExitCallback; import com.android.internal.policy.IKeyguardService; import android.app.Activity; @@ -58,16 +59,21 @@ public class KeyguardTestActivity extends Activity implements OnClickListener { IKeyguardService mService = null; - KeyguardResult mKeyguardResult = new KeyguardResult(); + KeyguardShowCallback mKeyguardShowCallback = new KeyguardShowCallback(); + KeyguardExitCallback mKeyguardExitCallback = new KeyguardExitCallback(); + RemoteServiceConnection mConnection; private boolean mSentSystemReady; - class KeyguardResult extends IKeyguardResult.Stub { + class KeyguardShowCallback extends IKeyguardShowCallback.Stub { @Override public void onShown(IBinder windowToken) throws RemoteException { Log.v(TAG, "Keyguard is shown, windowToken = " + windowToken); } + } + + class KeyguardExitCallback extends IKeyguardExitCallback.Stub { @Override public void onKeyguardExitResult(boolean success) throws RemoteException { @@ -236,7 +242,7 @@ public class KeyguardTestActivity extends Activity implements OnClickListener { try { switch (v.getId()) { case R.id.on_screen_turned_on: - mService.onScreenTurnedOn(mKeyguardResult); + mService.onScreenTurnedOn(mKeyguardShowCallback); break; case R.id.on_screen_turned_off: mService.onScreenTurnedOff(WindowManagerPolicy.OFF_BECAUSE_OF_USER); @@ -249,7 +255,7 @@ public class KeyguardTestActivity extends Activity implements OnClickListener { mService.doKeyguardTimeout(null); break; case R.id.verify_unlock: - mService.verifyUnlock(mKeyguardResult); + mService.verifyUnlock(mKeyguardExitCallback); break; } } catch (RemoteException e) { diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java b/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java index dac52ad..ef3fa6e 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardViewManager.java @@ -16,7 +16,7 @@ package com.android.keyguard; -import com.android.internal.policy.IKeyguardResult; +import com.android.internal.policy.IKeyguardShowCallback; import com.android.internal.widget.LockPatternUtils; import android.app.Activity; @@ -331,7 +331,7 @@ public class KeyguardViewManager { } } - public synchronized void onScreenTurnedOn(final IKeyguardResult result) { + public synchronized void onScreenTurnedOn(final IKeyguardShowCallback callback) { if (DEBUG) Log.d(TAG, "onScreenTurnedOn()"); mScreenOn = true; if (mKeyguardView != null) { @@ -339,7 +339,7 @@ public class KeyguardViewManager { // Caller should wait for this window to be shown before turning // on the screen. - if (result != null) { + if (callback != null) { if (mKeyguardHost.getVisibility() == View.VISIBLE) { // Keyguard may be in the process of being shown, but not yet // updated with the window manager... give it a chance to do so. @@ -351,28 +351,25 @@ public class KeyguardViewManager { token = mKeyguardHost.getWindowToken(); } try { - result.onShown(token); + callback.onShown(token); } catch (RemoteException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + Slog.w(TAG, "Exception calling onShown():", e); } } }); } else { try { - result.onShown(null); + callback.onShown(null); } catch (RemoteException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + Slog.w(TAG, "Exception calling onShown():", e); } } } - } else if (result != null) { + } else if (callback != null) { try { - result.onShown(null); + callback.onShown(null); } catch (RemoteException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + Slog.w(TAG, "Exception calling onShown():", e); } } } diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java b/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java index f8fbddf..cc35b5f 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardViewMediator.java @@ -16,7 +16,8 @@ package com.android.keyguard; -import com.android.internal.policy.IKeyguardResult; +import com.android.internal.policy.IKeyguardExitCallback; +import com.android.internal.policy.IKeyguardShowCallback; import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT; import android.app.Activity; @@ -46,6 +47,7 @@ import android.provider.Settings; import android.telephony.TelephonyManager; import android.util.EventLog; import android.util.Log; +import android.util.Slog; import android.view.KeyEvent; import android.view.WindowManager; import android.view.WindowManagerPolicy; @@ -220,7 +222,7 @@ public class KeyguardViewMediator { * how we'll ultimately let them know whether it was successful. We use this * var being non-null as an indicator that there is an in progress request. */ - private IKeyguardResult mExitSecureCallback; + private IKeyguardExitCallback mExitSecureCallback; // the properties of the keyguard @@ -463,7 +465,7 @@ public class KeyguardViewMediator { mPM.wakeUp(SystemClock.uptimeMillis()); } - public void userActivity() { + private void userActivity() { userActivity(AWAKE_INTERVAL_DEFAULT_MS); } @@ -590,7 +592,7 @@ public class KeyguardViewMediator { try { mExitSecureCallback.onKeyguardExitResult(false); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e); } mExitSecureCallback = null; if (!mExternallyEnabled) { @@ -664,13 +666,13 @@ public class KeyguardViewMediator { /** * Let's us know the screen was turned on. */ - public void onScreenTurnedOn(IKeyguardResult result) { + public void onScreenTurnedOn(IKeyguardShowCallback callback) { synchronized (this) { mScreenOn = true; cancelDoKeyguardLaterLocked(); if (DEBUG) Log.d(TAG, "onScreenTurnedOn, seq = " + mDelayedShowingSequence); - if (result != null) { - notifyScreenOnLocked(result); + if (callback != null) { + notifyScreenOnLocked(callback); } } maybeSendUserPresentBroadcast(); @@ -744,7 +746,7 @@ public class KeyguardViewMediator { try { mExitSecureCallback.onKeyguardExitResult(false); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e); } mExitSecureCallback = null; resetStateLocked(null); @@ -773,16 +775,16 @@ public class KeyguardViewMediator { /** * @see android.app.KeyguardManager#exitKeyguardSecurely */ - public void verifyUnlock(IKeyguardResult result) { + public void verifyUnlock(IKeyguardExitCallback callback) { synchronized (this) { if (DEBUG) Log.d(TAG, "verifyUnlock"); if (!mUpdateMonitor.isDeviceProvisioned()) { // don't allow this api when the device isn't provisioned if (DEBUG) Log.d(TAG, "ignoring because device isn't provisioned"); try { - result.onKeyguardExitResult(false); + callback.onKeyguardExitResult(false); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e); } } else if (mExternallyEnabled) { // this only applies when the user has externally disabled the @@ -790,19 +792,19 @@ public class KeyguardViewMediator { // using the api properly. Log.w(TAG, "verifyUnlock called when not externally disabled"); try { - result.onKeyguardExitResult(false); + callback.onKeyguardExitResult(false); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e); } } else if (mExitSecureCallback != null) { // already in progress with someone else try { - result.onKeyguardExitResult(false); + callback.onKeyguardExitResult(false); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG, "Failed to call onKeyguardExitResult(false)", e); } } else { - mExitSecureCallback = result; + mExitSecureCallback = callback; verifyUnlockLocked(); } } @@ -962,7 +964,7 @@ public class KeyguardViewMediator { * @see #onScreenTurnedOn() * @see #handleNotifyScreenOn */ - private void notifyScreenOnLocked(IKeyguardResult result) { + private void notifyScreenOnLocked(IKeyguardShowCallback result) { if (DEBUG) Log.d(TAG, "notifyScreenOnLocked"); Message msg = mHandler.obtainMessage(NOTIFY_SCREEN_ON, result); mHandler.sendMessage(msg); @@ -973,7 +975,7 @@ public class KeyguardViewMediator { * its state accordingly and then poke the wake lock when it is ready. * @param keyCode The wake key. * @see #handleWakeWhenReady - * @see #onWakeKeyWhenKeyguardShowingTq(int) + * @see #onWakeKeyWhenKeyguardShowing(int) */ private void wakeWhenReady(int keyCode) { if (DBG_WAKE) Log.d(TAG, "wakeWhenReady(" + keyCode + ")"); @@ -1055,7 +1057,7 @@ public class KeyguardViewMediator { * * @param keyCode The keycode of the key that woke the device */ - public void onWakeKeyWhenKeyguardShowingTq(int keyCode) { + public void onWakeKeyWhenKeyguardShowing(int keyCode) { if (DEBUG) Log.d(TAG, "onWakeKeyWhenKeyguardShowing(" + keyCode + ")"); // give the keyguard view manager a chance to adjust the state of the @@ -1074,7 +1076,7 @@ public class KeyguardViewMediator { * Be sure not to take any action that takes a long time; any significant * action should be posted to a handler. */ - public void onWakeMotionWhenKeyguardShowingTq() { + public void onWakeMotionWhenKeyguardShowing() { if (DEBUG) Log.d(TAG, "onWakeMotionWhenKeyguardShowing()"); // give the keyguard view manager a chance to adjust the state of the @@ -1100,7 +1102,7 @@ public class KeyguardViewMediator { try { mExitSecureCallback.onKeyguardExitResult(authenticated); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG, "Failed to call onKeyguardExitResult(" + authenticated + ")", e); } mExitSecureCallback = null; @@ -1142,7 +1144,7 @@ public class KeyguardViewMediator { handleNotifyScreenOff(); return; case NOTIFY_SCREEN_ON: - handleNotifyScreenOn((IKeyguardResult) msg.obj); + handleNotifyScreenOn((IKeyguardShowCallback) msg.obj); return; case WAKE_WHEN_READY: handleWakeWhenReady(msg.arg1); @@ -1433,10 +1435,10 @@ public class KeyguardViewMediator { * Handle message sent by {@link #notifyScreenOnLocked()} * @see #NOTIFY_SCREEN_ON */ - private void handleNotifyScreenOn(IKeyguardResult result) { + private void handleNotifyScreenOn(IKeyguardShowCallback callback) { synchronized (KeyguardViewMediator.this) { if (DEBUG) Log.d(TAG, "handleNotifyScreenOn"); - mKeyguardViewManager.onScreenTurnedOn(result); + mKeyguardViewManager.onScreenTurnedOn(callback); } } diff --git a/policy/src/com/android/internal/policy/impl/KeyguardServiceWrapper.java b/policy/src/com/android/internal/policy/impl/KeyguardServiceWrapper.java index b87acfd..e649125 100644 --- a/policy/src/com/android/internal/policy/impl/KeyguardServiceWrapper.java +++ b/policy/src/com/android/internal/policy/impl/KeyguardServiceWrapper.java @@ -19,8 +19,10 @@ package com.android.internal.policy.impl; import android.os.Bundle; import android.os.IBinder; import android.os.RemoteException; +import android.util.Slog; -import com.android.internal.policy.IKeyguardResult; +import com.android.internal.policy.IKeyguardShowCallback; +import com.android.internal.policy.IKeyguardExitCallback; import com.android.internal.policy.IKeyguardService; /** @@ -30,6 +32,7 @@ import com.android.internal.policy.IKeyguardService; */ public class KeyguardServiceWrapper implements IKeyguardService { private IKeyguardService mService; + private String TAG = "KeyguardServiceWrapper"; public KeyguardServiceWrapper(IKeyguardService service) { mService = service; @@ -39,7 +42,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { return mService.isShowing(); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } return false; } @@ -48,7 +51,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { return mService.isSecure(); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } return false; // TODO cache state } @@ -57,7 +60,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { return mService.isShowingAndNotHidden(); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } return false; // TODO cache state } @@ -66,7 +69,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { return mService.isInputRestricted(); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } return false; // TODO cache state } @@ -75,25 +78,16 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { return mService.isDismissable(); } catch (RemoteException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } return true; // TODO cache state } - public void userActivity() { + public void verifyUnlock(IKeyguardExitCallback callback) { try { - mService.userActivity(); + mService.verifyUnlock(callback); } catch (RemoteException e) { - e.printStackTrace(); - } - } - - public void verifyUnlock(IKeyguardResult result) { - try { - mService.verifyUnlock(result); - } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -101,7 +95,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.keyguardDone(authenticated, wakeup); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -109,7 +103,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.setHidden(isHidden); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -117,23 +111,23 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.dismiss(); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } - public void onWakeKeyWhenKeyguardShowingTq(int keyCode) { + public void onWakeKeyWhenKeyguardShowing(int keyCode) { try { - mService.onWakeKeyWhenKeyguardShowingTq(keyCode); + mService.onWakeKeyWhenKeyguardShowing(keyCode); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } - public void onWakeMotionWhenKeyguardShowingTq() { + public void onWakeMotionWhenKeyguardShowing() { try { - mService.onWakeMotionWhenKeyguardShowingTq(); + mService.onWakeMotionWhenKeyguardShowing(); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -141,7 +135,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.onDreamingStarted(); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -149,7 +143,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.onDreamingStopped(); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -157,15 +151,15 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.onScreenTurnedOff(reason); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } - public void onScreenTurnedOn(IKeyguardResult result) { + public void onScreenTurnedOn(IKeyguardShowCallback result) { try { mService.onScreenTurnedOn(result); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -173,7 +167,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.setKeyguardEnabled(enabled); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -181,7 +175,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.onSystemReady(); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -189,7 +183,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.doKeyguardTimeout(options); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -197,7 +191,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.setCurrentUser(userId); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } @@ -205,7 +199,7 @@ public class KeyguardServiceWrapper implements IKeyguardService { try { mService.showAssistant(); } catch (RemoteException e) { - e.printStackTrace(); + Slog.w(TAG , "Remote Exception", e); } } diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 6b2637f..46f0fd2 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -727,7 +727,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (keyguardShowing) { // since it took two seconds of long press to bring this up, // poke the wake lock so they have some time to see the dialog. - mKeyguardDelegate.userActivity(); + mPowerManager.userActivity(SystemClock.uptimeMillis(), false); } } @@ -1689,10 +1689,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { hideKeyguardScrim(); break; case TYPE_KEYGUARD_SCRIM: - // TODO: put this back when done testing -// if (mKeyguardScrim != null) { -// return WindowManagerGlobal.ADD_MULTIPLE_SINGLETON; -// } + if (mKeyguardScrim != null) { + return WindowManagerGlobal.ADD_MULTIPLE_SINGLETON; + } mKeyguardScrim = win; break; @@ -3912,7 +3911,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { if (isWakeMotion) { if (mKeyguardDelegate != null && mKeyguardDelegate.isShowing()) { // If the keyguard is showing, let it decide what to do with the wake motion. - mKeyguardDelegate.onWakeMotionWhenKeyguardShowingTq(); + mKeyguardDelegate.onWakeMotionWhenKeyguardShowing(); } else { // Otherwise, wake the device ourselves. result |= ACTION_WAKE_UP; @@ -4732,7 +4731,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { public void keepScreenOnStoppedLw() { if (mKeyguardDelegate != null && !mKeyguardDelegate.isShowingAndNotHidden()) { long curTime = SystemClock.uptimeMillis(); - mPowerManager.userActivity(curTime, false); + mPowerManager.userActivity(SystemClock.uptimeMillis(), false); } } diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java index 0dd41e5..bf18b99 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java @@ -12,11 +12,11 @@ import android.util.Log; import android.util.Slog; import android.view.WindowManagerPolicy.OnKeyguardExitResult; -import com.android.internal.policy.IKeyguardResult; +import com.android.internal.policy.IKeyguardExitCallback; +import com.android.internal.policy.IKeyguardShowCallback; import com.android.internal.policy.IKeyguardService; import com.android.internal.widget.LockPatternUtils; import com.android.internal.policy.impl.KeyguardServiceWrapper; -import com.android.internal.policy.impl.keyguard.KeyguardServiceDelegate.ShowListener; /** * A local class that keeps a cache of keyguard state that can be restored in the event @@ -27,12 +27,11 @@ public class KeyguardServiceDelegate { private static final String KEYGUARD_PACKAGE = "com.android.keyguard"; private static final String KEYGUARD_CLASS = "com.android.keyguard.KeyguardService"; private static final String TAG = "KeyguardServiceDelegate"; - private final static boolean DEBUG = true; - private ServiceConnection mKeyguardConnection; + private static final boolean DEBUG = true; protected KeyguardServiceWrapper mKeyguardService; private KeyguardState mKeyguardState = new KeyguardState(); - /* package */ class KeyguardState { + /* package */ static final class KeyguardState { boolean showing; boolean showingAndNotHidden; boolean inputRestricted; @@ -45,29 +44,18 @@ public class KeyguardServiceDelegate { public int offReason; public int currentUser; public boolean screenIsOn; - public boolean restoreStateWhenConnected; - public ShowListener showListener; }; public interface ShowListener { public void onShown(IBinder windowToken); } - private class KeyguardResult extends IKeyguardResult.Stub { + // A delegate class to map a particular invocation with a ShowListener object. + private final class KeyguardShowDelegate extends IKeyguardShowCallback.Stub { private ShowListener mShowListener; - private OnKeyguardExitResult mOnKeyguardExitResult; - KeyguardResult(ShowListener showListener, OnKeyguardExitResult onKeyguardExitResult) { + KeyguardShowDelegate(ShowListener showListener) { mShowListener = showListener; - mOnKeyguardExitResult = onKeyguardExitResult; - } - - @Override - public IBinder asBinder() { - if (DEBUG) Log.v(TAG, "asBinder() called for KeyguardResult, " - + "mShowListener = " + mShowListener - + ", mOnKeyguardExitResult = " + mOnKeyguardExitResult); - return super.asBinder(); } @Override @@ -77,6 +65,15 @@ public class KeyguardServiceDelegate { mShowListener.onShown(windowToken); } } + }; + + // A delegate class to map a particular invocation with an OnKeyguardExitResult object. + private final class KeyguardExitDelegate extends IKeyguardExitCallback.Stub { + private OnKeyguardExitResult mOnKeyguardExitResult; + + KeyguardExitDelegate(OnKeyguardExitResult onKeyguardExitResult) { + mOnKeyguardExitResult = onKeyguardExitResult; + } @Override public void onKeyguardExitResult(boolean success) throws RemoteException { @@ -88,7 +85,6 @@ public class KeyguardServiceDelegate { }; public KeyguardServiceDelegate(Context context, LockPatternUtils lockPatternUtils) { - mKeyguardConnection = createServiceConnection(); Intent intent = new Intent(); intent.setClassName(KEYGUARD_PACKAGE, KEYGUARD_CLASS); if (!context.bindServiceAsUser(intent, mKeyguardConnection, @@ -99,27 +95,24 @@ public class KeyguardServiceDelegate { } } - private ServiceConnection createServiceConnection() { - return new ServiceConnection() { - - @Override - public void onServiceConnected(ComponentName name, IBinder service) { - if (DEBUG) Log.v(TAG, "*** Keyguard connected (yay!)"); - mKeyguardService = new KeyguardServiceWrapper( - IKeyguardService.Stub.asInterface(service)); - if (mKeyguardState.systemIsReady) { - mKeyguardService.onSystemReady(); - } + private final ServiceConnection mKeyguardConnection = new ServiceConnection() { + @Override + public void onServiceConnected(ComponentName name, IBinder service) { + if (DEBUG) Log.v(TAG, "*** Keyguard connected (yay!)"); + mKeyguardService = new KeyguardServiceWrapper( + IKeyguardService.Stub.asInterface(service)); + if (mKeyguardState.systemIsReady) { + mKeyguardService.onSystemReady(); } + } - @Override - public void onServiceDisconnected(ComponentName name) { - if (DEBUG) Log.v(TAG, "*** Keyguard disconnected (boo!)"); - mKeyguardService = null; - } + @Override + public void onServiceDisconnected(ComponentName name) { + if (DEBUG) Log.v(TAG, "*** Keyguard disconnected (boo!)"); + mKeyguardService = null; + } - }; - } + }; public boolean isShowing() { if (mKeyguardService != null) { @@ -144,7 +137,7 @@ public class KeyguardServiceDelegate { public void verifyUnlock(final OnKeyguardExitResult onKeyguardExitResult) { if (mKeyguardService != null) { - mKeyguardService.verifyUnlock(new KeyguardResult(null, onKeyguardExitResult)); + mKeyguardService.verifyUnlock(new KeyguardExitDelegate(onKeyguardExitResult)); } } @@ -176,13 +169,13 @@ public class KeyguardServiceDelegate { public void onWakeKeyWhenKeyguardShowingTq(int keycodePower) { if (mKeyguardService != null) { - mKeyguardService.onWakeKeyWhenKeyguardShowingTq(keycodePower); + mKeyguardService.onWakeKeyWhenKeyguardShowing(keycodePower); } } - public void onWakeMotionWhenKeyguardShowingTq() { + public void onWakeMotionWhenKeyguardShowing() { if (mKeyguardService != null) { - mKeyguardService.onWakeMotionWhenKeyguardShowingTq(); + mKeyguardService.onWakeMotionWhenKeyguardShowing(); } } @@ -203,12 +196,13 @@ public class KeyguardServiceDelegate { public void onScreenTurnedOn(final ShowListener showListener) { if (mKeyguardService != null) { if (DEBUG) Log.v(TAG, "onScreenTurnedOn(showListener = " + showListener + ")"); - mKeyguardService.onScreenTurnedOn(new KeyguardResult(showListener, null)); + mKeyguardService.onScreenTurnedOn(new KeyguardShowDelegate(showListener)); } else { // try again when we establish a connection - if (DEBUG) Log.w(TAG, "onScreenTurnedOn(): no keyguard service!"); - mKeyguardState.showListener = showListener; - mKeyguardState.restoreStateWhenConnected = true; + Slog.w(TAG, "onScreenTurnedOn(): no keyguard service!"); + // This shouldn't happen, but if it does, invoke the listener immediately + // to avoid a dark screen... + showListener.onShown(null); } mKeyguardState.screenIsOn = true; } @@ -263,10 +257,4 @@ public class KeyguardServiceDelegate { mKeyguardState.currentUser = newUserId; } - public void userActivity() { - if (mKeyguardService != null) { - mKeyguardService.userActivity(); - } - } - } |