Merge "Simplify User management settings to bare minimum" into jb-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b18d58bdf5
@@ -33,41 +33,4 @@
|
|||||||
/>
|
/>
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="restrictions_category"
|
|
||||||
android:title="@string/user_restrictions_heading">
|
|
||||||
<Preference
|
|
||||||
android:key="associated_account"
|
|
||||||
android:title="@string/user_account_title"
|
|
||||||
android:enabled="false"
|
|
||||||
android:persistent="false"
|
|
||||||
/>
|
|
||||||
<CheckBoxPreference
|
|
||||||
android:key="market_requires_pin"
|
|
||||||
android:title="@string/user_market_requires_pin"
|
|
||||||
android:persistent="false"
|
|
||||||
android:enabled="false"
|
|
||||||
/>
|
|
||||||
<ListPreference
|
|
||||||
android:key="content_rating"
|
|
||||||
android:title="@string/user_max_content_rating"
|
|
||||||
android:entries="@array/user_content_ratings_entries"
|
|
||||||
android:entryValues="@array/user_content_ratings_values"
|
|
||||||
android:persistent="false"
|
|
||||||
android:enabled="false"
|
|
||||||
/>
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="system_apps_category"
|
|
||||||
android:title="@string/user_system_apps_heading">
|
|
||||||
<!-- Dynamically added content -->
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
<PreferenceCategory
|
|
||||||
android:key="market_apps_category"
|
|
||||||
android:title="@string/user_market_apps_heading">
|
|
||||||
<!-- Dynamically added content -->
|
|
||||||
</PreferenceCategory>
|
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -65,31 +65,14 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
private static final String KEY_USER_NAME = "user_name";
|
private static final String KEY_USER_NAME = "user_name";
|
||||||
private static final String KEY_USER_PICTURE = "user_picture";
|
private static final String KEY_USER_PICTURE = "user_picture";
|
||||||
private static final String KEY_INSTALLED_APPS = "market_apps_category";
|
|
||||||
private static final String KEY_SYSTEM_APPS = "system_apps_category";
|
|
||||||
private static final String KEY_ACCOUNT = "associated_account";
|
|
||||||
private static final String KEY_RESTRICTIONS = "restrictions_category";
|
|
||||||
|
|
||||||
public static final String EXTRA_USER_ID = "user_id";
|
public static final String EXTRA_USER_ID = "user_id";
|
||||||
|
|
||||||
private static final int RESULT_PICK_IMAGE = 1;
|
private static final int RESULT_PICK_IMAGE = 1;
|
||||||
private static final int RESULT_CROP_IMAGE = 2;
|
private static final int RESULT_CROP_IMAGE = 2;
|
||||||
|
|
||||||
static class AppState {
|
|
||||||
boolean dirty;
|
|
||||||
boolean enabled;
|
|
||||||
|
|
||||||
AppState(boolean enabled) {
|
|
||||||
this.enabled = enabled;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private HashMap<String, AppState> mAppStates = new HashMap<String, AppState>();
|
|
||||||
private PreferenceGroup mSystemAppGroup;
|
|
||||||
private PreferenceGroup mInstalledAppGroup;
|
|
||||||
private EditTextPreference mNamePref;
|
private EditTextPreference mNamePref;
|
||||||
private Preference mPicturePref;
|
private Preference mPicturePref;
|
||||||
private Preference mAccountPref;
|
|
||||||
|
|
||||||
private IPackageManager mIPm;
|
private IPackageManager mIPm;
|
||||||
private PackageManager mPm;
|
private PackageManager mPm;
|
||||||
@@ -110,20 +93,10 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
|||||||
if (mUserId == -1) {
|
if (mUserId == -1) {
|
||||||
mUserId = mUm.createUser(getString(R.string.user_new_user_name), 0).id;
|
mUserId = mUm.createUser(getString(R.string.user_new_user_name), 0).id;
|
||||||
}
|
}
|
||||||
mSystemAppGroup = (PreferenceGroup) findPreference(KEY_SYSTEM_APPS);
|
|
||||||
mInstalledAppGroup = (PreferenceGroup) findPreference(KEY_INSTALLED_APPS);
|
|
||||||
mNamePref = (EditTextPreference) findPreference(KEY_USER_NAME);
|
mNamePref = (EditTextPreference) findPreference(KEY_USER_NAME);
|
||||||
mNamePref.setOnPreferenceChangeListener(this);
|
mNamePref.setOnPreferenceChangeListener(this);
|
||||||
mPicturePref = findPreference(KEY_USER_PICTURE);
|
mPicturePref = findPreference(KEY_USER_PICTURE);
|
||||||
mPicturePref.setOnPreferenceClickListener(this);
|
mPicturePref.setOnPreferenceClickListener(this);
|
||||||
mAccountPref = findPreference(KEY_ACCOUNT);
|
|
||||||
mAccountPref.setOnPreferenceClickListener(this);
|
|
||||||
|
|
||||||
if (mUserId == 0) {
|
|
||||||
getPreferenceScreen().removePreference(mSystemAppGroup);
|
|
||||||
getPreferenceScreen().removePreference(mInstalledAppGroup);
|
|
||||||
getPreferenceScreen().removePreference(findPreference(KEY_RESTRICTIONS));
|
|
||||||
}
|
|
||||||
setHasOptionsMenu(true);
|
setHasOptionsMenu(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,7 +109,6 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
|||||||
} else {
|
} else {
|
||||||
initNewUser();
|
initNewUser();
|
||||||
}
|
}
|
||||||
refreshApps();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -198,63 +170,6 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
|||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void insertAppInfo(PreferenceGroup group, HashMap<String, AppState> appStateMap,
|
|
||||||
PackageInfo info, boolean defaultState) {
|
|
||||||
if (info != null) {
|
|
||||||
String pkgName = info.packageName;
|
|
||||||
String name = info.applicationInfo.loadLabel(mPm).toString();
|
|
||||||
Drawable icon = info.applicationInfo.loadIcon(mPm);
|
|
||||||
AppState appState = appStateMap.get(info.packageName);
|
|
||||||
boolean enabled = appState == null ? defaultState : appState.enabled;
|
|
||||||
CheckBoxPreference appPref = new CheckBoxPreference(getActivity());
|
|
||||||
appPref.setTitle(name != null ? name : pkgName);
|
|
||||||
appPref.setIcon(icon);
|
|
||||||
appPref.setChecked(enabled);
|
|
||||||
appPref.setKey(pkgName);
|
|
||||||
appPref.setPersistent(false);
|
|
||||||
appPref.setOnPreferenceChangeListener(this);
|
|
||||||
group.addPreference(appPref);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void refreshApps() {
|
|
||||||
if (mUserId == 0) return;
|
|
||||||
mSystemAppGroup.removeAll();
|
|
||||||
mInstalledAppGroup.removeAll();
|
|
||||||
|
|
||||||
boolean firstTime = mAppStates.isEmpty();
|
|
||||||
|
|
||||||
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
|
|
||||||
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
|
|
||||||
List<ResolveInfo> apps = mPm.queryIntentActivities(mainIntent, 0);
|
|
||||||
|
|
||||||
for (ResolveInfo resolveInfo : apps) {
|
|
||||||
PackageInfo info;
|
|
||||||
try {
|
|
||||||
info = mIPm.getPackageInfo(resolveInfo.activityInfo.packageName,
|
|
||||||
0 /* flags */,
|
|
||||||
mUserId < 0 ? 0 : mUserId);
|
|
||||||
} catch (RemoteException re) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (firstTime) {
|
|
||||||
mAppStates.put(resolveInfo.activityInfo.packageName,
|
|
||||||
new AppState(info.applicationInfo.enabled));
|
|
||||||
}
|
|
||||||
if ((info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
|
|
||||||
if (mSystemAppGroup.findPreference(info.packageName) != null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
insertAppInfo(mSystemAppGroup, mAppStates, info, false);
|
|
||||||
} else {
|
|
||||||
if (mInstalledAppGroup.findPreference(info.packageName) != null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
insertAppInfo(mInstalledAppGroup, mAppStates, info, false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
if (preference instanceof CheckBoxPreference) {
|
if (preference instanceof CheckBoxPreference) {
|
||||||
@@ -300,10 +215,7 @@ public class UserDetailsSettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceClick(Preference preference) {
|
public boolean onPreferenceClick(Preference preference) {
|
||||||
if (preference == mAccountPref) {
|
if (preference == mPicturePref) {
|
||||||
// Intent launch = AccountManager.newChooseAccountsIntent(null, null, new String[]{"com.google"}, false, null,
|
|
||||||
// null, null, null);
|
|
||||||
} else if (preference == mPicturePref) {
|
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
intent.setType("image/*");
|
intent.setType("image/*");
|
||||||
intent.setAction(Intent.ACTION_GET_CONTENT);
|
intent.setAction(Intent.ACTION_GET_CONTENT);
|
||||||
|
Reference in New Issue
Block a user