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

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