15ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller/*
25ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * Copyright (C) 2013 The Android Open Source Project
35ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller *
45ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * Licensed under the Apache License, Version 2.0 (the "License");
55ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * you may not use this file except in compliance with the License.
65ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * You may obtain a copy of the License at
75ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller *
85ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller *      http://www.apache.org/licenses/LICENSE-2.0
95ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller *
105ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * Unless required by applicable law or agreed to in writing, software
115ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * distributed under the License is distributed on an "AS IS" BASIS,
125ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * See the License for the specific language governing permissions and
145ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * limitations under the License.
155ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller */
165ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
17b10e33ff804a831c71be9303146cea892b9aeb5dJorim Jaggipackage com.android.server.policy.keyguard;
185ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
19ab954546dc49e1070ed8513efbddc8954b529c23Jim Millerimport android.content.Context;
205ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Millerimport android.os.Bundle;
215ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Millerimport android.os.IBinder;
225ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Millerimport android.os.RemoteException;
2325190577cc69eaa5930c6fbdc2fcca03afc84982Jim Millerimport android.util.Slog;
245ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
25241ae10b2189f449e57d8d660235ac56d8fb1b80Jorim Jaggiimport com.android.internal.policy.IKeyguardDismissCallback;
26740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggiimport com.android.internal.policy.IKeyguardDrawnCallback;
2725190577cc69eaa5930c6fbdc2fcca03afc84982Jim Millerimport com.android.internal.policy.IKeyguardExitCallback;
285ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Millerimport com.android.internal.policy.IKeyguardService;
29ab954546dc49e1070ed8513efbddc8954b529c23Jim Millerimport com.android.internal.policy.IKeyguardStateCallback;
305ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
3184dc08a208eea7a4ddf043cadbb28987cf90ae22Jorim Jaggiimport java.io.PrintWriter;
3284dc08a208eea7a4ddf043cadbb28987cf90ae22Jorim Jaggi
335ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller/**
345ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * A wrapper class for KeyguardService.  It implements IKeyguardService to ensure the interface
355ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller * remains consistent.
365ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller *
375ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller */
385ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Millerpublic class KeyguardServiceWrapper implements IKeyguardService {
39ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    private KeyguardStateMonitor mKeyguardStateMonitor;
405ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    private IKeyguardService mService;
4125190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller    private String TAG = "KeyguardServiceWrapper";
425ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
43e69c93181f1f313dcedd07f677af1cea953fdf16Jorim Jaggi    public KeyguardServiceWrapper(Context context, IKeyguardService service,
44e69c93181f1f313dcedd07f677af1cea953fdf16Jorim Jaggi            KeyguardStateMonitor.StateCallback callback) {
455ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        mService = service;
46e69c93181f1f313dcedd07f677af1cea953fdf16Jorim Jaggi        mKeyguardStateMonitor = new KeyguardStateMonitor(context, service, callback);
475ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
485ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
49ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
50ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    public void verifyUnlock(IKeyguardExitCallback callback) {
515ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
52ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller            mService.verifyUnlock(callback);
535ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
5425190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
555ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
565ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
575ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
58ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
596626f54e658e3da44fab8a5cd6d9d3d4852e2cd1Jorim Jaggi    public void setOccluded(boolean isOccluded, boolean animate) {
605ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
616626f54e658e3da44fab8a5cd6d9d3d4852e2cd1Jorim Jaggi            mService.setOccluded(isOccluded, animate);
625ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
6325190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
645ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
655ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
665ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
67ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override
68ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    public void addStateMonitorCallback(IKeyguardStateCallback callback) {
695ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
70ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller            mService.addStateMonitorCallback(callback);
715ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
7225190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
735ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
745ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
755ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
76ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
77c80c67e7bc96691b6e3700bac49e819ad52db0aeLucas Dupin    public void dismiss(IKeyguardDismissCallback callback, CharSequence message) {
785ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
79c80c67e7bc96691b6e3700bac49e819ad52db0aeLucas Dupin            mService.dismiss(callback, message);
805ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
8125190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
825ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
835ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
845ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
85ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
865ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    public void onDreamingStarted() {
875ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
885ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller            mService.onDreamingStarted();
895ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
9025190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
915ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
925ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
935ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
94ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
955ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    public void onDreamingStopped() {
965ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
975ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller            mService.onDreamingStopped();
985ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
9925190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
1005ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
1015ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
1025ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
103d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi    @Override
104d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi    public void onStartedGoingToSleep(int reason) {
1055ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
106d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi            mService.onStartedGoingToSleep(reason);
1075ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
10825190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
1095ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
1105ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
1115ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
112d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi    @Override
113f1cdf9558d2b7f8fe5b8cf3d309b48809f04403bJorim Jaggi    public void onFinishedGoingToSleep(int reason, boolean cameraGestureTriggered) {
114d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi        try {
115f1cdf9558d2b7f8fe5b8cf3d309b48809f04403bJorim Jaggi            mService.onFinishedGoingToSleep(reason, cameraGestureTriggered);
116d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi        } catch (RemoteException e) {
117d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi            Slog.w(TAG , "Remote Exception", e);
118d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi        }
119d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi    }
120d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi
121d175b6cfe0b35dfe251cc9315aacb048bf6e54c5Jorim Jaggi    @Override
122740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi    public void onStartedWakingUp() {
1235ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
124740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi            mService.onStartedWakingUp();
125740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi        } catch (RemoteException e) {
126740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi            Slog.w(TAG , "Remote Exception", e);
127740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi        }
128740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi    }
129740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi
130740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi    @Override
131369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos    public void onFinishedWakingUp() {
132369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos        try {
133369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos            mService.onFinishedWakingUp();
134369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos        } catch (RemoteException e) {
135369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos            Slog.w(TAG , "Remote Exception", e);
136369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos        }
137369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos    }
138369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos
139369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos    @Override
140740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi    public void onScreenTurningOn(IKeyguardDrawnCallback callback) {
141740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi        try {
142740452e8756cb7f51ed185c3906a5ca61b8fcdd4Jorim Jaggi            mService.onScreenTurningOn(callback);
1435ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
14425190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
1455ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
1465ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
1475ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
1480d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi    @Override
1490d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi    public void onScreenTurnedOn() {
1500d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi        try {
1510d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi            mService.onScreenTurnedOn();
1520d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi        } catch (RemoteException e) {
153369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos            Slog.w(TAG , "Remote Exception", e);
154369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos        }
155369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos    }
156369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos
157369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos    @Override
158369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos    public void onScreenTurningOff() {
159369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos        try {
160369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos            mService.onScreenTurningOff();
161369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos        } catch (RemoteException e) {
1620d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi            Slog.w(TAG , "Remote Exception", e);
1630d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi        }
1640d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi    }
1650d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi
1660d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi    @Override
1670d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi    public void onScreenTurnedOff() {
1680d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi        try {
1690d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi            mService.onScreenTurnedOff();
1700d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi        } catch (RemoteException e) {
1710d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi            Slog.w(TAG , "Remote Exception", e);
1720d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi        }
1730d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi    }
1740d210f6395072db4a4c53d4cb8fac4a59a3965b4Jorim Jaggi
175ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
1765ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    public void setKeyguardEnabled(boolean enabled) {
1775ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
1785ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller            mService.setKeyguardEnabled(enabled);
1795ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
18025190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
1815ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
1825ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
1835ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
184ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
1855ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    public void onSystemReady() {
1865ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
1875ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller            mService.onSystemReady();
1885ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
18925190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
1905ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
1915ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
1925ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
193ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
1945ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    public void doKeyguardTimeout(Bundle options) {
1955ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
1965ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller            mService.doKeyguardTimeout(options);
1975ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
19825190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
1995ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
2005ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
2015ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
202ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
2031839645126c8e7e0909e8ed8f0686c2122ba6078Evan Rosky    public void setSwitchingUser(boolean switching) {
2041839645126c8e7e0909e8ed8f0686c2122ba6078Evan Rosky        try {
2051839645126c8e7e0909e8ed8f0686c2122ba6078Evan Rosky            mService.setSwitchingUser(switching);
2061839645126c8e7e0909e8ed8f0686c2122ba6078Evan Rosky        } catch (RemoteException e) {
2071839645126c8e7e0909e8ed8f0686c2122ba6078Evan Rosky            Slog.w(TAG , "Remote Exception", e);
2081839645126c8e7e0909e8ed8f0686c2122ba6078Evan Rosky        }
2091839645126c8e7e0909e8ed8f0686c2122ba6078Evan Rosky    }
2101839645126c8e7e0909e8ed8f0686c2122ba6078Evan Rosky
2111839645126c8e7e0909e8ed8f0686c2122ba6078Evan Rosky    @Override // Binder interface
2125ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    public void setCurrentUser(int userId) {
213ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller        mKeyguardStateMonitor.setCurrentUser(userId);
2145ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        try {
2155ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller            mService.setCurrentUser(userId);
2165ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        } catch (RemoteException e) {
21725190577cc69eaa5930c6fbdc2fcca03afc84982Jim Miller            Slog.w(TAG , "Remote Exception", e);
2185ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller        }
2195ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
2205ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
221ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
222e5f910a667088ab63e017d5851f0956c77b823daJim Miller    public void onBootCompleted() {
223e5f910a667088ab63e017d5851f0956c77b823daJim Miller        try {
224e5f910a667088ab63e017d5851f0956c77b823daJim Miller            mService.onBootCompleted();
225e5f910a667088ab63e017d5851f0956c77b823daJim Miller        } catch (RemoteException e) {
226e5f910a667088ab63e017d5851f0956c77b823daJim Miller            Slog.w(TAG , "Remote Exception", e);
227e5f910a667088ab63e017d5851f0956c77b823daJim Miller        }
228e5f910a667088ab63e017d5851f0956c77b823daJim Miller    }
229e5f910a667088ab63e017d5851f0956c77b823daJim Miller
230ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
231e29b2dbc762bfa66093d76f5a65f55328d8753c9Jorim Jaggi    public void startKeyguardExitAnimation(long startTime, long fadeoutDuration) {
2320d674623facfbd3e9c520d2be4ed98977b92a1a2Jorim Jaggi        try {
233e29b2dbc762bfa66093d76f5a65f55328d8753c9Jorim Jaggi            mService.startKeyguardExitAnimation(startTime, fadeoutDuration);
2340d674623facfbd3e9c520d2be4ed98977b92a1a2Jorim Jaggi        } catch (RemoteException e) {
2350d674623facfbd3e9c520d2be4ed98977b92a1a2Jorim Jaggi            Slog.w(TAG , "Remote Exception", e);
2360d674623facfbd3e9c520d2be4ed98977b92a1a2Jorim Jaggi        }
2370d674623facfbd3e9c520d2be4ed98977b92a1a2Jorim Jaggi    }
2380d674623facfbd3e9c520d2be4ed98977b92a1a2Jorim Jaggi
239b4045d3791566a1965024591def87dff7d120295Andrew Zeng    @Override
240b4045d3791566a1965024591def87dff7d120295Andrew Zeng    public void onShortPowerPressedGoHome() {
241b4045d3791566a1965024591def87dff7d120295Andrew Zeng        try {
242b4045d3791566a1965024591def87dff7d120295Andrew Zeng            mService.onShortPowerPressedGoHome();
243b4045d3791566a1965024591def87dff7d120295Andrew Zeng        } catch (RemoteException e) {
244b4045d3791566a1965024591def87dff7d120295Andrew Zeng            Slog.w(TAG , "Remote Exception", e);
245b4045d3791566a1965024591def87dff7d120295Andrew Zeng        }
246b4045d3791566a1965024591def87dff7d120295Andrew Zeng    }
247b4045d3791566a1965024591def87dff7d120295Andrew Zeng
248ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    @Override // Binder interface
249ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    public IBinder asBinder() {
250ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller        return mService.asBinder();
2515ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
2525ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller
253ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    public boolean isShowing() {
254ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller        return mKeyguardStateMonitor.isShowing();
255caf24fc2c4bb9747eb80138bf3ce0be067851749Jim Miller    }
256caf24fc2c4bb9747eb80138bf3ce0be067851749Jim Miller
257d88eb2693b6a70af0f5fbc5881ce855e28de33aaAdrian Roos    public boolean isTrusted() {
258d88eb2693b6a70af0f5fbc5881ce855e28de33aaAdrian Roos        return mKeyguardStateMonitor.isTrusted();
259d88eb2693b6a70af0f5fbc5881ce855e28de33aaAdrian Roos    }
260d88eb2693b6a70af0f5fbc5881ce855e28de33aaAdrian Roos
261d11d1a9486d44b98e28b70c25711ebfc283b746eJorim Jaggi    public boolean hasLockscreenWallpaper() {
262d11d1a9486d44b98e28b70c25711ebfc283b746eJorim Jaggi        return mKeyguardStateMonitor.hasLockscreenWallpaper();
263d11d1a9486d44b98e28b70c25711ebfc283b746eJorim Jaggi    }
264d11d1a9486d44b98e28b70c25711ebfc283b746eJorim Jaggi
265e4044bb617ea849939058d953e250fcd540c75ccJim Miller    public boolean isSecure(int userId) {
266e4044bb617ea849939058d953e250fcd540c75ccJim Miller        return mKeyguardStateMonitor.isSecure(userId);
267138f25d75665bd07d34294364c5b6f530b33503fJim Miller    }
268138f25d75665bd07d34294364c5b6f530b33503fJim Miller
269ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller    public boolean isInputRestricted() {
270ab954546dc49e1070ed8513efbddc8954b529c23Jim Miller        return mKeyguardStateMonitor.isInputRestricted();
2715ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller    }
27284dc08a208eea7a4ddf043cadbb28987cf90ae22Jorim Jaggi
27384dc08a208eea7a4ddf043cadbb28987cf90ae22Jorim Jaggi    public void dump(String prefix, PrintWriter pw) {
27484dc08a208eea7a4ddf043cadbb28987cf90ae22Jorim Jaggi        mKeyguardStateMonitor.dump(prefix, pw);
27584dc08a208eea7a4ddf043cadbb28987cf90ae22Jorim Jaggi    }
2765ecd81154fa039961f65bb4e36d18ac555b0d1d6Jim Miller}