Centralize the creation of the user system directory

Environment.getUserSystemDirectory(int userId)

Use it all relevant places that was hardcoding it.
Also, wipe out the user's system directory when user is removed, otherwise old state
might be transferred to a new user.

Change-Id: I788ce9c4cf9624229e65efa7047bc0c019ccef0a
diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java
index 492158d..a13c16e 100644
--- a/services/java/com/android/server/pm/UserManagerService.java
+++ b/services/java/com/android/server/pm/UserManagerService.java
@@ -594,6 +594,7 @@
                 // Update the user list
                 writeUserListLocked();
                 updateUserIdsLocked();
+                removeDirectoryRecursive(Environment.getUserSystemDirectory(userHandle));
             }
         }
 
@@ -603,6 +604,17 @@
         mContext.sendBroadcast(addedIntent, android.Manifest.permission.MANAGE_USERS);
     }
 
+    private void removeDirectoryRecursive(File parent) {
+        if (parent.isDirectory()) {
+            String[] files = parent.list();
+            for (String filename : files) {
+                File child = new File(parent, filename);
+                removeDirectoryRecursive(child);
+            }
+        }
+        parent.delete();
+    }
+
     @Override
     public int getUserSerialNumber(int userHandle) {
         synchronized (mPackagesLock) {