summaryrefslogtreecommitdiff
path: root/Settings/src/com/android/tv/settings/device/apps/specialaccess/AllFilesAccess.java
diff options
context:
space:
mode:
Diffstat (limited to 'Settings/src/com/android/tv/settings/device/apps/specialaccess/AllFilesAccess.java')
-rw-r--r--Settings/src/com/android/tv/settings/device/apps/specialaccess/AllFilesAccess.java19
1 files changed, 11 insertions, 8 deletions
diff --git a/Settings/src/com/android/tv/settings/device/apps/specialaccess/AllFilesAccess.java b/Settings/src/com/android/tv/settings/device/apps/specialaccess/AllFilesAccess.java
index 425cee0d4..ed317ffd4 100644
--- a/Settings/src/com/android/tv/settings/device/apps/specialaccess/AllFilesAccess.java
+++ b/Settings/src/com/android/tv/settings/device/apps/specialaccess/AllFilesAccess.java
@@ -25,11 +25,11 @@ import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import androidx.preference.Preference;
import androidx.preference.PreferenceGroup;
-import androidx.preference.SwitchPreference;
import androidx.preference.TwoStatePreference;
import com.android.settingslib.applications.ApplicationsState;
import com.android.tv.settings.R;
+import com.android.tv.settings.widget.SwitchWithSoundPreference;
/**
* Settings screen for managing "All files access" permission
@@ -56,16 +56,13 @@ public class AllFilesAccess extends ManageAppOp {
@Override
public Preference bindPreference(@NonNull Preference preference,
ApplicationsState.AppEntry entry) {
- final TwoStatePreference switchPref = (SwitchPreference) preference;
+ final TwoStatePreference switchPref = (SwitchWithSoundPreference) preference;
switchPref.setTitle(entry.label);
switchPref.setKey(entry.info.packageName);
switchPref.setIcon(entry.icon);
switchPref.setOnPreferenceChangeListener((pref, grant) -> {
- pref.getContext().getSystemService(AppOpsManager.class)
- .setMode(getAppOpsOpCode(), entry.info.uid, entry.info.packageName,
- (Boolean) grant
- ? AppOpsManager.MODE_ALLOWED
- : AppOpsManager.MODE_ERRORED);
+ findEntriesUsingPackageName(entry.info.packageName)
+ .forEach(packageEntry -> setMode(entry, (Boolean) grant));
return true;
});
switchPref.setSummary(getPreferenceSummary(entry));
@@ -77,7 +74,7 @@ public class AllFilesAccess extends ManageAppOp {
@NonNull
@Override
public Preference createAppPreference() {
- return new SwitchPreference(getPreferenceManager().getContext());
+ return new SwitchWithSoundPreference(getPreferenceManager().getContext());
}
@NonNull
@@ -96,6 +93,12 @@ public class AllFilesAccess extends ManageAppOp {
}
}
+ private void setMode(ApplicationsState.AppEntry entry, boolean grant) {
+ getContext().getSystemService(AppOpsManager.class)
+ .setMode(getAppOpsOpCode(), entry.info.uid, entry.info.packageName,
+ grant ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_ERRORED);
+ }
+
@Override
protected int getPageId() {
return TvSettingsEnums.APPS_SPECIAL_APP_ACCESS_ALL_FILES_ACCESS;