diff options
author | Jason Monk <jmonk@google.com> | 2015-06-15 13:16:00 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-15 13:16:01 +0000 |
commit | 0635bc7c9d805e0fa57afe568646d501dfdcc413 (patch) | |
tree | c1134bbd8cf67471833a4c2d46170ad5e0979f28 /src/com | |
parent | 54018d2656ff58234752fab7eeb85d1e61a7faa8 (diff) | |
parent | f589a098e175c9779aa4ba9d4c40eea6cdafde2e (diff) | |
download | android_packages_apps_PackageInstaller-0635bc7c9d805e0fa57afe568646d501dfdcc413.tar.gz android_packages_apps_PackageInstaller-0635bc7c9d805e0fa57afe568646d501dfdcc413.tar.bz2 android_packages_apps_PackageInstaller-0635bc7c9d805e0fa57afe568646d501dfdcc413.zip |
Merge "Permissions theme fixing" into mnc-dev
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java | 81 | ||||
-rw-r--r-- | src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java | 1 |
2 files changed, 48 insertions, 34 deletions
diff --git a/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java b/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java index 24f2c9e1..2122ad26 100644 --- a/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/ManagePermissionsFragment.java @@ -20,8 +20,6 @@ import android.app.Activity; import android.app.FragmentTransaction; import android.content.ActivityNotFoundException; import android.content.Intent; -import android.content.res.Resources; -import android.content.res.Resources.Theme; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; @@ -31,13 +29,12 @@ import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; -import android.view.View; import com.android.packageinstaller.R; import com.android.packageinstaller.permission.model.PermissionApps; +import com.android.packageinstaller.permission.model.PermissionApps.PmCache; import com.android.packageinstaller.permission.model.PermissionGroup; import com.android.packageinstaller.permission.model.PermissionGroups; -import com.android.packageinstaller.permission.model.PermissionApps.PmCache; import com.android.packageinstaller.permission.utils.Utils; import java.util.List; @@ -48,6 +45,8 @@ public final class ManagePermissionsFragment extends PreferenceFragment private static final String OS_PKG = "android"; + private static final String EXTRA_PREFS_KEY = "extra_prefs_key"; + private PermissionGroups mPermissions; private PreferenceScreen mExtraScreen; @@ -147,11 +146,6 @@ public final class ManagePermissionsFragment extends PreferenceFragment if (screen == null) { screen = getPreferenceManager().createPreferenceScreen(activity); setPreferenceScreen(screen); - } else { - screen.removeAll(); - if (mExtraScreen != null) { - mExtraScreen.removeAll(); - } } // Use this to speed up getting the info for all of the PermissionApps below. @@ -164,13 +158,29 @@ public final class ManagePermissionsFragment extends PreferenceFragment continue; } - final Preference preference = new Preference(activity); - preference.setOnPreferenceClickListener(this); - preference.setKey(group.getName()); - preference.setIcon(Utils.applyTint(getContext(), group.getIcon(), - android.R.attr.colorControlNormal)); - preference.setTitle(group.getLabel()); - preference.setPersistent(false); + Preference preference = findPreference(group.getName()); + if (preference == null && mExtraScreen != null) { + preference = mExtraScreen.findPreference(group.getName()); + } + if (preference == null) { + preference = new Preference(activity, null); + preference.setOnPreferenceClickListener(this); + preference.setKey(group.getName()); + preference.setIcon(Utils.applyTint(activity, group.getIcon(), + android.R.attr.colorControlNormal)); + preference.setTitle(group.getLabel()); + preference.setPersistent(false); + if (group.getDeclaringPackage().equals(OS_PKG)) { + screen.addPreference(preference); + } else { + if (mExtraScreen == null) { + mExtraScreen = getPreferenceManager().createPreferenceScreen(activity); + } + mExtraScreen.addPreference(preference); + } + } + final Preference finalPref = preference; + new PermissionApps(getContext(), group.getName(), new PermissionApps.Callback() { @Override public void onPermissionsLoaded(PermissionApps permissionApps) { @@ -179,23 +189,16 @@ public final class ManagePermissionsFragment extends PreferenceFragment } int granted = permissionApps.getGrantedCount(); int total = permissionApps.getTotalCount(); - preference.setSummary(getString(R.string.app_permissions_group_summary, + finalPref.setSummary(getString(R.string.app_permissions_group_summary, granted, total)); } }, cache).refresh(false); - - if (group.getDeclaringPackage().equals(OS_PKG)) { - screen.addPreference(preference); - } else { - if (mExtraScreen == null) { - mExtraScreen = getPreferenceManager().createPreferenceScreen(activity); - } - mExtraScreen.addPreference(preference); - } } - if (mExtraScreen != null && mExtraScreen.getPreferenceCount() > 0) { + if (mExtraScreen != null && mExtraScreen.getPreferenceCount() > 0 + && screen.findPreference(EXTRA_PREFS_KEY) == null) { Preference extraScreenPreference = new Preference(activity); + extraScreenPreference.setKey(EXTRA_PREFS_KEY); extraScreenPreference.setIcon(R.drawable.ic_toc); extraScreenPreference.setTitle(R.string.additional_permissions); extraScreenPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() { @@ -216,20 +219,30 @@ public final class ManagePermissionsFragment extends PreferenceFragment } } - public static class AdditionalPermissionsFragment extends SettingsWithHeader { + public static class AdditionalPermissionsFragment extends PreferenceFragment { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); + getActivity().setTitle(R.string.additional_permissions); setPreferenceScreen(((ManagePermissionsFragment) getTargetFragment()).mExtraScreen); + setHasOptionsMenu(true); } @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - Resources resources = getResources(); - Theme theme = getActivity().getTheme(); - setHeader(resources.getDrawable(R.drawable.ic_toc, theme), - getString(R.string.additional_permissions), null); + public void onDestroy() { + getActivity().setTitle(R.string.app_permissions); + super.onDestroy(); } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + getFragmentManager().popBackStack(); + return true; + } + return super.onOptionsItemSelected(item); + } + } } diff --git a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java index eb56e754..3c05c463 100644 --- a/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java +++ b/src/com/android/packageinstaller/permission/ui/PermissionAppsFragment.java @@ -195,6 +195,7 @@ public final class PermissionAppsFragment extends PreferenceFragment implements } if (pref == null) { pref = new SwitchPreference(context); + pref.setLayoutResource(R.layout.preference_app); pref.setOnPreferenceChangeListener(this); pref.setKey(app.getKey()); pref.setIcon(app.getIcon()); |