Merge "Catch a few extra users of UserEnvironment." into klp-dev
diff --git a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
index 6343d0a..6e34bbb 100644
--- a/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
+++ b/packages/DefaultContainerService/src/com/android/defcontainer/DefaultContainerService.java
@@ -295,10 +295,10 @@
             try {
                 while ((item = pm.nextPackageToClean(item)) != null) {
                     final UserEnvironment userEnv = new UserEnvironment(item.userId);
-                    eraseFiles(userEnv.getExternalStorageAppDataDirectory(item.packageName));
-                    eraseFiles(userEnv.getExternalStorageAppMediaDirectory(item.packageName));
+                    eraseFiles(userEnv.buildExternalStorageAppDataDirs(item.packageName));
+                    eraseFiles(userEnv.buildExternalStorageAppMediaDirs(item.packageName));
                     if (item.andCode) {
-                        eraseFiles(userEnv.getExternalStorageAppObbDirectory(item.packageName));
+                        eraseFiles(userEnv.buildExternalStorageAppObbDirs(item.packageName));
                     }
                 }
             } catch (RemoteException e) {
@@ -306,6 +306,12 @@
         }
     }
 
+    void eraseFiles(File[] paths) {
+        for (File path : paths) {
+            eraseFiles(path);
+        }
+    }
+
     void eraseFiles(File path) {
         if (path.isDirectory()) {
             String[] files = path.list();
diff --git a/packages/SharedStorageBackup/src/com/android/sharedstoragebackup/ObbBackupService.java b/packages/SharedStorageBackup/src/com/android/sharedstoragebackup/ObbBackupService.java
index 7ebe096..0485334 100644
--- a/packages/SharedStorageBackup/src/com/android/sharedstoragebackup/ObbBackupService.java
+++ b/packages/SharedStorageBackup/src/com/android/sharedstoragebackup/ObbBackupService.java
@@ -57,7 +57,7 @@
                 int token, IBackupManager callbackBinder) {
             final FileDescriptor outFd = data.getFileDescriptor();
             try {
-                File obbDir = Environment.getExternalStorageAppObbDirectory(packageName);
+                File obbDir = Environment.buildExternalStorageAppObbDirs(packageName)[0];
                 if (obbDir != null) {
                     if (obbDir.exists()) {
                         ArrayList<File> obbList = allFileContents(obbDir);
@@ -106,7 +106,7 @@
                 long fileSize, int type, String path, long mode, long mtime,
                 int token, IBackupManager callbackBinder) {
             try {
-                File outFile = Environment.getExternalStorageAppObbDirectory(packageName);
+                File outFile = Environment.buildExternalStorageAppObbDirs(packageName)[0];
                 if (outFile != null) {
                     outFile = new File(outFile, path);
                 }
diff --git a/test-runner/src/android/test/mock/MockContext.java b/test-runner/src/android/test/mock/MockContext.java
index 44077ae..252a14e 100644
--- a/test-runner/src/android/test/mock/MockContext.java
+++ b/test-runner/src/android/test/mock/MockContext.java
@@ -577,4 +577,19 @@
     public DisplayAdjustments getDisplayAdjustments(int displayId) {
         throw new UnsupportedOperationException();
     }
+
+    @Override
+    public File[] getExternalFilesDirs(String type) {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public File[] getObbDirs() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public File[] getExternalCacheDirs() {
+        throw new UnsupportedOperationException();
+    }
 }