diff options
author | Svet Ganov <svetoslavganov@google.com> | 2015-05-16 22:59:38 -0700 |
---|---|---|
committer | Svet Ganov <svetoslavganov@google.com> | 2015-05-16 22:59:41 -0700 |
commit | 67e067fff4e4ef1eb54f9c238dbf07312434a07e (patch) | |
tree | 095ea665c3482ca42887b1135e09d155a3a8fd5a | |
parent | 11b29e7613a30610981d56786fd5d2e0b7494aab (diff) | |
download | packages_apps_Settings-67e067fff4e4ef1eb54f9c238dbf07312434a07e.tar.gz packages_apps_Settings-67e067fff4e4ef1eb54f9c238dbf07312434a07e.tar.bz2 packages_apps_Settings-67e067fff4e4ef1eb54f9c238dbf07312434a07e.zip |
Hide platform platform legacy permissions behind a menu option - settings.
bug:21195624
Change-Id: Ib1dcfe2a15685c36e2a59e0921ea74d46ec9738c
-rw-r--r-- | res/xml/advanced_apps.xml | 1 | ||||
-rw-r--r-- | src/com/android/settings/applications/AdvancedAppSettings.java | 34 | ||||
-rw-r--r-- | src/com/android/settings/applications/ManagePermissions.java | 192 |
3 files changed, 8 insertions, 219 deletions
diff --git a/res/xml/advanced_apps.xml b/res/xml/advanced_apps.xml index 323dca19b..1e2d51653 100644 --- a/res/xml/advanced_apps.xml +++ b/res/xml/advanced_apps.xml @@ -36,7 +36,6 @@ <PreferenceScreen android:key="manage_perms" - android:fragment="com.android.settings.applications.ManagePermissions" android:title="@string/app_permissions" settings:keywords="@string/keywords_app_permissions" /> diff --git a/src/com/android/settings/applications/AdvancedAppSettings.java b/src/com/android/settings/applications/AdvancedAppSettings.java index 268bc5baf..0d2f206e6 100644 --- a/src/com/android/settings/applications/AdvancedAppSettings.java +++ b/src/com/android/settings/applications/AdvancedAppSettings.java @@ -15,11 +15,10 @@ */ package com.android.settings.applications; -import android.app.Activity; +import android.content.Intent; import android.content.pm.ApplicationInfo; import android.os.Bundle; import android.preference.Preference; -import android.util.Log; import com.android.internal.logging.MetricsLogger; import com.android.settings.R; @@ -27,36 +26,34 @@ import com.android.settings.SettingsPreferenceFragment; import com.android.settings.applications.ApplicationsState.AppEntry; import com.android.settings.applications.ApplicationsState.Session; import com.android.settings.fuelgauge.PowerWhitelistBackend; -import com.android.settingslib.applications.PermissionsInfo; import java.util.ArrayList; public class AdvancedAppSettings extends SettingsPreferenceFragment implements - ApplicationsState.Callbacks, PermissionsInfo.Callback { + ApplicationsState.Callbacks { static final String TAG = "AdvancedAppSettings"; - static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final String KEY_APP_PERM = "manage_perms"; private static final String KEY_APP_DOMAIN_URLS = "domain_urls"; private static final String KEY_HIGH_POWER_APPS = "high_power_apps"; - private ApplicationsState mApplicationsState; private Session mSession; - private Preference mAppPermsPreference; private Preference mAppDomainURLsPreference; private Preference mHighPowerPreference; - private PermissionsInfo mPermissionsInfo; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); addPreferencesFromResource(R.xml.advanced_apps); - mApplicationsState = ApplicationsState.getInstance(getActivity().getApplication()); - mSession = mApplicationsState.newSession(this); + Preference permissions = getPreferenceScreen().findPreference(KEY_APP_PERM); + permissions.setIntent(new Intent(Intent.ACTION_MANAGE_PERMISSIONS)); + + ApplicationsState applicationsState = ApplicationsState.getInstance( + getActivity().getApplication()); + mSession = applicationsState.newSession(this); - mAppPermsPreference = findPreference(KEY_APP_PERM); mAppDomainURLsPreference = findPreference(KEY_APP_DOMAIN_URLS); mHighPowerPreference = findPreference(KEY_HIGH_POWER_APPS); updateUI(); @@ -86,12 +83,6 @@ public class AdvancedAppSettings extends SettingsPreferenceFragment implements } @Override - public void onResume() { - super.onResume(); - mPermissionsInfo = new PermissionsInfo(getActivity(), this); - } - - @Override public void onRunningStateChanged(boolean running) { // No-op. } @@ -130,13 +121,4 @@ public class AdvancedAppSettings extends SettingsPreferenceFragment implements public void onLoadEntriesCompleted() { // No-op. } - - @Override - public void onPermissionLoadComplete() { - Activity activity = getActivity(); - if (activity == null) return; -// mAppPermsPreference.setSummary(activity.getString(R.string.app_permissions_summary, -// mPermissionsInfo.getRuntimePermAppsGrantedCount(), -// mPermissionsInfo.getRuntimePermAppsCount())); - } } diff --git a/src/com/android/settings/applications/ManagePermissions.java b/src/com/android/settings/applications/ManagePermissions.java deleted file mode 100644 index 35356e540..000000000 --- a/src/com/android/settings/applications/ManagePermissions.java +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (C) 2015 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.settings.applications; - -import android.app.Activity; -import android.app.FragmentTransaction; -import android.content.ActivityNotFoundException; -import android.content.Context; -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; -import android.preference.PreferenceScreen; -import android.util.Log; -import android.view.View; - -import com.android.internal.logging.MetricsLogger; -import com.android.settings.AppHeader; -import com.android.settings.R; -import com.android.settings.SettingsPreferenceFragment; -import com.android.settingslib.applications.PermissionsInfo; -import com.android.settingslib.applications.PermissionsInfo.PermissionGroup; - -import java.util.List; - -public class ManagePermissions extends SettingsPreferenceFragment - implements PermissionsInfo.Callback { - - private static final String TAG = "ManagePermissions"; - - private static final String OS_PKG = "android"; - - private PermissionsInfo mPermissionsInfo; - - private PreferenceScreen mExtraScreen; - - @Override - public void onResume() { - super.onResume(); - - mPermissionsInfo = new PermissionsInfo(getActivity(), this); - } - - @Override - public void onActivityCreated(Bundle savedInstanceState) { - super.onActivityCreated(savedInstanceState); - - showLoadingWhenEmpty(); - } - - private void refreshUi() { - Activity activity = getActivity(); - PreferenceScreen screen = getPreferenceScreen(); - if (screen == null) { - screen = getPreferenceManager().createPreferenceScreen(activity); - setPreferenceScreen(screen); - } else { - screen.removeAll(); - if (mExtraScreen != null) { - mExtraScreen.removeAll(); - } - } - final int count = screen.getPreferenceCount(); - if (count == 0) { - final Preference extraScreenPreference = new Preference(activity); - extraScreenPreference.setIcon(R.drawable.ic_toc); - extraScreenPreference.setTitle(R.string.additional_permissions); - List<PermissionGroup> groups = mPermissionsInfo.getGroups(); - for (PermissionGroup group : groups) { - if (group.possibleApps.size() == 0) continue; - PermissionPreference pref = new PermissionPreference(activity, group); - pref.refreshUi(); - if (group.packageName.equals(OS_PKG)) { - screen.addPreference(pref); - } else { - if (mExtraScreen == null) { - mExtraScreen = getPreferenceManager().createPreferenceScreen(activity); - } - mExtraScreen.addPreference(pref); - } - } - if (mExtraScreen != null) { - extraScreenPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference preference) { - AdditionalPermissionsFragment frag = new AdditionalPermissionsFragment(); - frag.setTargetFragment(ManagePermissions.this, 0); - FragmentTransaction ft = getFragmentManager().beginTransaction(); - ft.replace(R.id.main_content, frag); - ft.addToBackStack("AdditionalPerms"); - ft.commit(); - return true; - } - }); - extraScreenPreference.setSummary(getString(R.string.additional_permissions_more, - mExtraScreen.getPreferenceCount())); - screen.addPreference(extraScreenPreference); - } - } else { - updatePrefs(screen); - if (mExtraScreen != null) { - updatePrefs(mExtraScreen); - } - } - } - - private void updatePrefs(PreferenceScreen screen) { - for (int i = 0; i < screen.getPreferenceCount(); i++) { - Preference pref = screen.getPreference(i); - if (pref instanceof PermissionPreference) { - ((PermissionPreference) pref).refreshUi(); - } - } - } - - @Override - public void onPermissionLoadComplete() { - refreshUi(); - } - - @Override - protected int getMetricsCategory() { - return MetricsLogger.MANAGE_PERMISSIONS; - } - - private class PermissionPreference extends Preference implements OnPreferenceClickListener { - private final PermissionGroup mGroup; - - public PermissionPreference(Context context, PermissionGroup group) { - super(context); - setOnPreferenceClickListener(this); - mGroup = group; - } - - public void refreshUi() { - setTitle(mGroup.label); - setIcon(mGroup.icon); -// setSummary(getContext().getString(R.string.app_permissions_group_summary, -// mGroup.grantedApps.size(), mGroup.possibleApps.size())); - } - - @Override - public boolean onPreferenceClick(Preference preference) { - Intent i = new Intent(Intent.ACTION_MANAGE_PERMISSION_APPS) - .putExtra(Intent.EXTRA_PERMISSION_NAME, mGroup.name); - try { - getActivity().startActivity(i); - } catch (ActivityNotFoundException e) { - Log.w(TAG, "No app to handle " + i.getAction()); - } - return true; - } - } - - public static class AdditionalPermissionsFragment extends SettingsPreferenceFragment { - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - setPreferenceScreen(((ManagePermissions) getTargetFragment()).mExtraScreen); - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - Resources resources = getResources(); - Theme theme = getActivity().getTheme(); - AppHeader.createAppHeader(this, resources.getDrawable(R.drawable.ic_toc, theme), - getString(R.string.additional_permissions), null, android.R.color.white); - } - - @Override - protected int getMetricsCategory() { - return MetricsLogger.MANAGE_PERMISSIONS; - } - } - -} |