diff --git a/res/values/strings.xml b/res/values/strings.xml
index b569f27e80a..d2128f6d118 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8832,10 +8832,6 @@
Permission manager
-
- Apps using %1$s
-
- Apps using %1$s, and more
Tap to wake
diff --git a/src/com/android/settings/applications/AppPermissionsPreferenceController.java b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
deleted file mode 100644
index 4458ea4105c..00000000000
--- a/src/com/android/settings/applications/AppPermissionsPreferenceController.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Copyright (C) 2017 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.content.Context;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.icu.text.ListFormatter;
-import android.util.ArraySet;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.BasePreferenceController;
-import com.android.settingslib.applications.PermissionsSummaryHelper;
-
-import java.util.List;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-public class AppPermissionsPreferenceController extends BasePreferenceController {
-
- private static final String TAG = "AppPermissionPrefCtrl";
- private static final int NUM_PACKAGE_TO_CHECK = 4;
-
- @VisibleForTesting
- static int NUM_PERMISSIONS_TO_SHOW = 3;
-
- private final PackageManager mPackageManager;
- private final Set mPermissionGroups;
-
- private final PermissionsSummaryHelper.PermissionsResultCallback mPermissionsCallback =
- new PermissionsSummaryHelper.PermissionsResultCallback() {
- @Override
- public void onPermissionSummaryResult(int standardGrantedPermissionCount,
- int requestedPermissionCount, int additionalGrantedPermissionCount,
- List grantedGroupLabels) {
- updateSummary(grantedGroupLabels);
- }
- };
-
- @VisibleForTesting
- int mNumPackageChecked;
-
- private Preference mPreference;
-
- public AppPermissionsPreferenceController(Context context, String preferenceKey) {
- super(context, preferenceKey);
- mPackageManager = context.getPackageManager();
- mPermissionGroups = new ArraySet<>();
- }
-
- @Override
- public int getAvailabilityStatus() {
- return AVAILABLE;
- }
-
- @Override
- public void updateState(Preference preference) {
- mPreference = preference;
- mNumPackageChecked = 0;
- queryPermissionSummary();
- }
-
- @VisibleForTesting
- void queryPermissionSummary() {
- final List installedPackages =
- mPackageManager.getInstalledPackages(PackageManager.GET_PERMISSIONS);
- // Here we only get the first four apps and check their permissions.
- final List packagesWithPermission = installedPackages.stream()
- .filter(pInfo -> pInfo.permissions != null)
- .limit(NUM_PACKAGE_TO_CHECK)
- .collect(Collectors.toList());
-
- for (PackageInfo installedPackage : packagesWithPermission) {
- PermissionsSummaryHelper.getPermissionSummary(mContext,
- installedPackage.packageName, mPermissionsCallback);
- }
- }
-
- @VisibleForTesting
- void updateSummary(List grantedGroupLabels) {
- mPermissionGroups.addAll(grantedGroupLabels);
- mNumPackageChecked++;
-
- if (mNumPackageChecked < NUM_PACKAGE_TO_CHECK) {
- return;
- }
-
- final List permissionsToShow = mPermissionGroups.stream()
- .limit(NUM_PERMISSIONS_TO_SHOW)
- .collect(Collectors.toList());
- final boolean isMoreShowed = mPermissionGroups.size() > NUM_PERMISSIONS_TO_SHOW;
- CharSequence summary;
-
- if (!permissionsToShow.isEmpty()) {
- if (isMoreShowed) {
- summary = mContext.getString(R.string.app_permissions_summary_more,
- ListFormatter.getInstance().format(permissionsToShow).toLowerCase());
- } else {
- summary = mContext.getString(R.string.app_permissions_summary,
- ListFormatter.getInstance().format(permissionsToShow).toLowerCase());
- }
- } else {
- summary = mContext.getString(
- R.string.runtime_permissions_summary_no_permissions_granted);
- }
- mPreference.setSummary(summary);
- }
-}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java
deleted file mode 100644
index dfa938313b3..00000000000
--- a/tests/robotests/src/com/android/settings/applications/AppPermissionsPreferenceControllerTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (C) 2017 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 static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-
-import android.content.Context;
-import android.content.pm.PackageManager.NameNotFoundException;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class AppPermissionsPreferenceControllerTest {
-
- private Context mContext;
- private AppPermissionsPreferenceController mController;
- private Preference mPreference;
-
- @Before
- public void setUp() throws NameNotFoundException {
- mContext = RuntimeEnvironment.application;
- mPreference = spy(new Preference(mContext));
- mController = spy(new AppPermissionsPreferenceController(mContext, "pref_key"));
- }
-
- @Test
- public void isAvailable_shouldAlwaysReturnTrue() {
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
- public void updateState_shouldResetNumPackageChecked() {
- doNothing().when(mController).queryPermissionSummary();
- mController.mNumPackageChecked = 3;
-
- mController.updateState(mPreference);
-
- assertThat(mController.mNumPackageChecked).isEqualTo(0);
- }
-
- @Test
- public void updateSummary_noGrantedPermission_shouldSetNoPermissionGrantedSummary() {
- doNothing().when(mController).queryPermissionSummary();
- mController.updateState(mPreference);
- mController.mNumPackageChecked = 3;
-
- mController.updateSummary(new ArrayList<>());
-
- assertThat(mPreference.getSummary()).isEqualTo(
- mContext.getString(R.string.runtime_permissions_summary_no_permissions_granted));
- }
-
- @Test
- public void updateSummary_hasOnePermission_shouldSetPermissionAsSummary() {
- doNothing().when(mController).queryPermissionSummary();
- mController.updateState(mPreference);
- final String permission = "location";
- final ArrayList labels = new ArrayList<>();
- labels.add(permission);
- final String summary = "Apps using " + permission;
- mController.mNumPackageChecked = 3;
-
- mController.updateSummary(labels);
-
- assertThat(mPreference.getSummary()).isEqualTo(summary);
- }
-
- @Test
- public void updateSummary_hasThreePermissions_shouldShowThreePermissionAsSummary() {
- doNothing().when(mController).queryPermissionSummary();
- mController.updateState(mPreference);
- mController.mNumPackageChecked = 3;
- final List labels = new ArrayList<>();
- labels.add("Phone");
- labels.add("SMS");
- labels.add("Microphone");
-
- mController.updateSummary(labels);
-
- final String summary = "Apps using microphone, sms, and phone";
- assertThat(mPreference.getSummary()).isEqualTo(summary);
- }
-
- @Test
- public void updateSummary_hasFivePermissions_shouldShowThreePermissionsAndMoreAsSummary() {
- doNothing().when(mController).queryPermissionSummary();
- mController.updateState(mPreference);
- mController.mNumPackageChecked = 3;
- final List labels = new ArrayList<>();
- labels.add("Phone");
- labels.add("SMS");
- labels.add("Microphone");
- labels.add("Contacts");
- labels.add("Camera");
- labels.add("Location");
-
- mController.updateSummary(labels);
-
- final String summary = "Apps using microphone, contacts, and sms, and more";
- assertThat(mPreference.getSummary()).isEqualTo(summary);
- }
-
- @Test
- public void updateSummary_notReachCallbackCount_shouldNotSetSummary() {
- doNothing().when(mController).queryPermissionSummary();
- mController.updateState(mPreference);
- final String permission = "location";
- final ArrayList labels = new ArrayList<>();
- labels.add(permission);
-
- mController.updateSummary(labels);
-
- verify(mPreference, never()).setSummary(anyString());
- }
-}