Merge "Don't cache return of getService in Environment" into honeycomb

This commit is contained in:
Kenny Root
2011-01-18 13:12:55 -08:00
committed by Android (Google) Code Review

View File

@@ -20,22 +20,19 @@ import java.io.File;
import android.content.res.Resources;
import android.os.storage.IMountService;
import android.util.Log;
/**
* Provides access to environment variables.
*/
public class Environment {
private static final String TAG = "Environment";
private static final File ROOT_DIRECTORY
= getDirectory("ANDROID_ROOT", "/system");
private static final String SYSTEM_PROPERTY_EFS_ENABLED = "persist.security.efs.enabled";
private static class MountServiceHolder {
static IMountService mSingleton = IMountService.Stub.asInterface(ServiceManager
.getService("mount"));
}
private static final Object mLock = new Object();
private volatile static Boolean mIsExternalStorageEmulated = null;
@@ -401,7 +398,9 @@ public class Environment {
*/
public static String getExternalStorageState() {
try {
return MountServiceHolder.mSingleton.getVolumeState(getExternalStorageDirectory()
IMountService mountService = IMountService.Stub.asInterface(ServiceManager
.getService("mount"));
return mountService.getVolumeState(getExternalStorageDirectory()
.toString());
} catch (Exception rex) {
return Environment.MEDIA_REMOVED;
@@ -433,12 +432,14 @@ public class Environment {
if (mIsExternalStorageEmulated == null) {
boolean externalStorageEmulated;
try {
externalStorageEmulated =
MountServiceHolder.mSingleton.isExternalStorageEmulated();
IMountService mountService = IMountService.Stub.asInterface(ServiceManager
.getService("mount"));
externalStorageEmulated = mountService.isExternalStorageEmulated();
mIsExternalStorageEmulated = Boolean.valueOf(externalStorageEmulated);
} catch (Exception e) {
externalStorageEmulated = false;
Log.e(TAG, "couldn't talk to MountService", e);
return false;
}
mIsExternalStorageEmulated = Boolean.valueOf(externalStorageEmulated);
}
}
}