1 /* 2 * Copyright (C) 2013 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.internal.policy.impl.keyguard; 18 19 import android.os.Bundle; 20 import android.os.IBinder; 21 import android.os.RemoteException; 22 import android.util.Slog; 23 import android.view.MotionEvent; 24 25 import com.android.internal.policy.IKeyguardShowCallback; 26 import com.android.internal.policy.IKeyguardExitCallback; 27 import com.android.internal.policy.IKeyguardService; 28 29 /** 30 * A wrapper class for KeyguardService. It implements IKeyguardService to ensure the interface 31 * remains consistent. 32 * 33 */ 34 public class KeyguardServiceWrapper implements IKeyguardService { 35 private IKeyguardService mService; 36 private String TAG = "KeyguardServiceWrapper"; 37 38 public KeyguardServiceWrapper(IKeyguardService service) { 39 mService = service; 40 } 41 42 public boolean isShowing() { 43 try { 44 return mService.isShowing(); 45 } catch (RemoteException e) { 46 Slog.w(TAG , "Remote Exception", e); 47 } 48 return false; 49 } 50 51 public boolean isSecure() { 52 try { 53 return mService.isSecure(); 54 } catch (RemoteException e) { 55 Slog.w(TAG , "Remote Exception", e); 56 } 57 return false; // TODO cache state 58 } 59 60 public boolean isShowingAndNotHidden() { 61 try { 62 return mService.isShowingAndNotHidden(); 63 } catch (RemoteException e) { 64 Slog.w(TAG , "Remote Exception", e); 65 } 66 return false; // TODO cache state 67 } 68 69 public boolean isInputRestricted() { 70 try { 71 return mService.isInputRestricted(); 72 } catch (RemoteException e) { 73 Slog.w(TAG , "Remote Exception", e); 74 } 75 return false; // TODO cache state 76 } 77 78 public boolean isDismissable() { 79 try { 80 return mService.isDismissable(); 81 } catch (RemoteException e) { 82 Slog.w(TAG , "Remote Exception", e); 83 } 84 return true; // TODO cache state 85 } 86 87 public void verifyUnlock(IKeyguardExitCallback callback) { 88 try { 89 mService.verifyUnlock(callback); 90 } catch (RemoteException e) { 91 Slog.w(TAG , "Remote Exception", e); 92 } 93 } 94 95 public void keyguardDone(boolean authenticated, boolean wakeup) { 96 try { 97 mService.keyguardDone(authenticated, wakeup); 98 } catch (RemoteException e) { 99 Slog.w(TAG , "Remote Exception", e); 100 } 101 } 102 103 public void setHidden(boolean isHidden) { 104 try { 105 mService.setHidden(isHidden); 106 } catch (RemoteException e) { 107 Slog.w(TAG , "Remote Exception", e); 108 } 109 } 110 111 public void dismiss() { 112 try { 113 mService.dismiss(); 114 } catch (RemoteException e) { 115 Slog.w(TAG , "Remote Exception", e); 116 } 117 } 118 119 public void onDreamingStarted() { 120 try { 121 mService.onDreamingStarted(); 122 } catch (RemoteException e) { 123 Slog.w(TAG , "Remote Exception", e); 124 } 125 } 126 127 public void onDreamingStopped() { 128 try { 129 mService.onDreamingStopped(); 130 } catch (RemoteException e) { 131 Slog.w(TAG , "Remote Exception", e); 132 } 133 } 134 135 public void onScreenTurnedOff(int reason) { 136 try { 137 mService.onScreenTurnedOff(reason); 138 } catch (RemoteException e) { 139 Slog.w(TAG , "Remote Exception", e); 140 } 141 } 142 143 public void onScreenTurnedOn(IKeyguardShowCallback result) { 144 try { 145 mService.onScreenTurnedOn(result); 146 } catch (RemoteException e) { 147 Slog.w(TAG , "Remote Exception", e); 148 } 149 } 150 151 public void setKeyguardEnabled(boolean enabled) { 152 try { 153 mService.setKeyguardEnabled(enabled); 154 } catch (RemoteException e) { 155 Slog.w(TAG , "Remote Exception", e); 156 } 157 } 158 159 public void onSystemReady() { 160 try { 161 mService.onSystemReady(); 162 } catch (RemoteException e) { 163 Slog.w(TAG , "Remote Exception", e); 164 } 165 } 166 167 public void doKeyguardTimeout(Bundle options) { 168 try { 169 mService.doKeyguardTimeout(options); 170 } catch (RemoteException e) { 171 Slog.w(TAG , "Remote Exception", e); 172 } 173 } 174 175 public void setCurrentUser(int userId) { 176 try { 177 mService.setCurrentUser(userId); 178 } catch (RemoteException e) { 179 Slog.w(TAG , "Remote Exception", e); 180 } 181 } 182 183 public void onBootCompleted() { 184 try { 185 mService.onBootCompleted(); 186 } catch (RemoteException e) { 187 Slog.w(TAG , "Remote Exception", e); 188 } 189 } 190 191 public void showAssistant() { 192 // Not used by PhoneWindowManager 193 } 194 195 public void dispatch(MotionEvent event) { 196 // Not used by PhoneWindowManager. See code in {@link NavigationBarView} 197 } 198 199 public void launchCamera() { 200 // Not used by PhoneWindowManager. See code in {@link NavigationBarView} 201 } 202 203 @Override 204 public IBinder asBinder() { 205 return mService.asBinder(); 206 } 207 208 }