From 92c5452f088c48c57428a8b522dc8fc5725c2775 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Tue, 2 Sep 2014 17:10:18 -0700 Subject: [PATCH] Change the location mode before applying restrictions Once the location sharing restriction is applied, the setting cannot be changed, so change the setting first. Bug: 17348894 Change-Id: I9dcad230e816aaa2482f1f35f1993f51d14eabc7 --- src/com/android/settings/users/UserSettings.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index c0ffca5afdf..f5ea6aa715e 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -418,9 +418,11 @@ public class UserSettings extends SettingsPreferenceFragment int userId = newUserInfo.id; UserHandle user = new UserHandle(userId); mUserManager.setUserRestriction(UserManager.DISALLOW_MODIFY_ACCOUNTS, true, user); - mUserManager.setUserRestriction(UserManager.DISALLOW_SHARE_LOCATION, true, user); + // Change the setting before applying the DISALLOW_SHARE_LOCATION restriction, otherwise + // the putIntForUser() will fail. Secure.putIntForUser(getContentResolver(), Secure.LOCATION_MODE, Secure.LOCATION_MODE_OFF, userId); + mUserManager.setUserRestriction(UserManager.DISALLOW_SHARE_LOCATION, true, user); Bitmap bitmap = createBitmapFromDrawable( USER_DRAWABLES[userId % UserSettings.USER_DRAWABLES.length]); mUserManager.setUserIcon(userId, bitmap);