Merge "Cache IMountService for isUserKeyUnlocked() calls." into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
36cbf5ca37
@@ -114,6 +114,8 @@ public class StorageManager {
|
||||
/** {@hide} */
|
||||
public static final int FLAG_INCLUDE_INVISIBLE = 1 << 10;
|
||||
|
||||
private static volatile IMountService sMountService = null;
|
||||
|
||||
private final Context mContext;
|
||||
private final ContentResolver mResolver;
|
||||
|
||||
@@ -1064,15 +1066,17 @@ public class StorageManager {
|
||||
|
||||
/** {@hide} */
|
||||
public static boolean isUserKeyUnlocked(int userId) {
|
||||
final IMountService mount = IMountService.Stub
|
||||
.asInterface(ServiceManager.getService("mount"));
|
||||
if (mount == null) {
|
||||
if (sMountService == null) {
|
||||
sMountService = IMountService.Stub
|
||||
.asInterface(ServiceManager.getService("mount"));
|
||||
}
|
||||
if (sMountService == null) {
|
||||
Slog.w(TAG, "Early during boot, assuming locked");
|
||||
return false;
|
||||
}
|
||||
final long token = Binder.clearCallingIdentity();
|
||||
try {
|
||||
return mount.isUserKeyUnlocked(userId);
|
||||
return sMountService.isUserKeyUnlocked(userId);
|
||||
} catch (RemoteException e) {
|
||||
throw e.rethrowAsRuntimeException();
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user