Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56c02dc3 authored by Kenny Root's avatar Kenny Root Committed by Android (Google) Code Review
Browse files

Merge "Fix getTempContainerId()" into gingerbread

parents b1bb7180 c78a8079
Loading
Loading
Loading
Loading
+25 −43
Original line number Diff line number Diff line
@@ -188,6 +188,8 @@ class PackageManagerService extends IPackageManager.Stub {
            "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,47 +9551,27 @@ class PackageManagerService extends IPackageManager.Stub {
        }
    }

   static String getTempContainerId() {
       String prefix = "smdl2tmp";
    /* package */ static String getTempContainerId() {
        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
            for (final String name : list) {
                // Ignore null and non-temporary container entries
                if (name == null || !name.startsWith(mTempContainerPrefix)) {
                    continue;
                }
               String subStr = name.substring(sidx + prefix.length());
               idList[idx] = -1;
               if (subStr != null) {

                String subStr = name.substring(mTempContainerPrefix.length());
                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;
                    if (cid >= tmpIdx) {
                        tmpIdx = cid + 1;
                    }
                } catch (NumberFormatException e) {
                }
            }
        }
       return prefix + tmpIdx;
        return mTempContainerPrefix + tmpIdx;
    }

   /*