Merge "Cache IMountService for isUserKeyUnlocked() calls." into nyc-dev

am: 36cbf5ca37

* commit '36cbf5ca378523bfa4f5394e39f5fcff2b2461de':
  Cache IMountService for isUserKeyUnlocked() calls.

Change-Id: I1ad2d1eba64a89e7a22dc86c7241f6f85a5f2a0b
This commit is contained in:
Jeff Sharkey
2016-05-27 02:42:44 +00:00
committed by android-build-merger

View File

@@ -114,6 +114,8 @@ public class StorageManager {
/** {@hide} */ /** {@hide} */
public static final int FLAG_INCLUDE_INVISIBLE = 1 << 10; public static final int FLAG_INCLUDE_INVISIBLE = 1 << 10;
private static volatile IMountService sMountService = null;
private final Context mContext; private final Context mContext;
private final ContentResolver mResolver; private final ContentResolver mResolver;
@@ -1064,15 +1066,17 @@ public class StorageManager {
/** {@hide} */ /** {@hide} */
public static boolean isUserKeyUnlocked(int userId) { public static boolean isUserKeyUnlocked(int userId) {
final IMountService mount = IMountService.Stub if (sMountService == null) {
.asInterface(ServiceManager.getService("mount")); sMountService = IMountService.Stub
if (mount == null) { .asInterface(ServiceManager.getService("mount"));
}
if (sMountService == null) {
Slog.w(TAG, "Early during boot, assuming locked"); Slog.w(TAG, "Early during boot, assuming locked");
return false; return false;
} }
final long token = Binder.clearCallingIdentity(); final long token = Binder.clearCallingIdentity();
try { try {
return mount.isUserKeyUnlocked(userId); return sMountService.isUserKeyUnlocked(userId);
} catch (RemoteException e) { } catch (RemoteException e) {
throw e.rethrowAsRuntimeException(); throw e.rethrowAsRuntimeException();
} finally { } finally {