Merge "Fix getTempContainerId()" into gingerbread

This commit is contained in:
Kenny Root
2010-07-28 14:48:40 -07:00
committed by Android (Google) Code Review

View File

@ -187,7 +187,9 @@ class PackageManagerService extends IPackageManager.Stub {
static final ComponentName DEFAULT_CONTAINER_COMPONENT = new ComponentName(
"com.android.defcontainer",
"com.android.defcontainer.DefaultContainerService");
static final String mTempContainerPrefix = "smdl2tmp";
final HandlerThread mHandlerThread = new HandlerThread("PackageManager",
Process.THREAD_PRIORITY_BACKGROUND);
final PackageHandler mHandler;
@ -9549,48 +9551,28 @@ class PackageManagerService extends IPackageManager.Stub {
}
}
static String getTempContainerId() {
String prefix = "smdl2tmp";
int tmpIdx = 1;
String list[] = PackageHelper.getSecureContainerList();
if (list != null) {
int idx = 0;
int idList[] = new int[MAX_CONTAINERS];
boolean neverFound = true;
for (String name : list) {
// Ignore null entries
if (name == null) {
continue;
}
int sidx = name.indexOf(prefix);
if (sidx == -1) {
// Not a temp file. just ignore
continue;
}
String subStr = name.substring(sidx + prefix.length());
idList[idx] = -1;
if (subStr != null) {
try {
int cid = Integer.parseInt(subStr);
idList[idx++] = cid;
neverFound = false;
} catch (NumberFormatException e) {
}
}
}
if (!neverFound) {
// Sort idList
Arrays.sort(idList);
for (int j = 1; j <= idList.length; j++) {
if (idList[j-1] != j) {
tmpIdx = j;
break;
}
}
}
}
return prefix + tmpIdx;
}
/* package */ static String getTempContainerId() {
int tmpIdx = 1;
String list[] = PackageHelper.getSecureContainerList();
if (list != null) {
for (final String name : list) {
// Ignore null and non-temporary container entries
if (name == null || !name.startsWith(mTempContainerPrefix)) {
continue;
}
String subStr = name.substring(mTempContainerPrefix.length());
try {
int cid = Integer.parseInt(subStr);
if (cid >= tmpIdx) {
tmpIdx = cid + 1;
}
} catch (NumberFormatException e) {
}
}
}
return mTempContainerPrefix + tmpIdx;
}
/*
* Update media status on PackageManager.