Merge "Add NPE check for method assignDefaultPhoto in Utils.java"
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 1dbd471..248358c 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -368,10 +368,21 @@
         } catch (IOException ioe) { }
     }
 
-    public static void assignDefaultPhoto(Context context, int userId) {
+    /**
+     * Assign the default photo to user with {@paramref userId}
+     * @param context used to get the {@link UserManager}
+     * @param userId  used to get the icon bitmap
+     * @return true if assign photo successfully, false if failed
+     */
+    public static boolean assignDefaultPhoto(Context context, int userId) {
+        if (context == null) {
+            return false;
+        }
         UserManager um = (UserManager) context.getSystemService(Context.USER_SERVICE);
         Bitmap bitmap = getDefaultUserIconAsBitmap(userId);
         um.setUserIcon(userId, bitmap);
+
+        return true;
     }
 
     public static String getMeProfileName(Context context, boolean full) {
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index dc8bfb8..a794953 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -422,14 +422,16 @@
 
     private UserInfo createRestrictedProfile() {
         UserInfo newUserInfo = mUserManager.createRestrictedProfile(mAddingUserName);
-        Utils.assignDefaultPhoto(getActivity(), newUserInfo.id);
+        if (newUserInfo != null && !Utils.assignDefaultPhoto(getActivity(), newUserInfo.id)) {
+            return null;
+        }
         return newUserInfo;
     }
 
     private UserInfo createTrustedUser() {
         UserInfo newUserInfo = mUserManager.createUser(mAddingUserName, 0);
-        if (newUserInfo != null) {
-            Utils.assignDefaultPhoto(getActivity(), newUserInfo.id);
+        if (newUserInfo != null && !Utils.assignDefaultPhoto(getActivity(), newUserInfo.id)) {
+            return null;
         }
         return newUserInfo;
     }
diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java
index dacd303..05e0a64 100644
--- a/tests/robotests/src/com/android/settings/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/UtilsTest.java
@@ -65,4 +65,10 @@
 
         assertThat(Utils.getWifiIpAddresses(mContext)).isNull();
     }
+
+    @Test
+    public void testAssignDefaultPhoto_ContextNull_ReturnFalseAndNotCrash() {
+        // Should not crash here
+        assertThat(Utils.assignDefaultPhoto(null, 0)).isFalse();
+    }
 }