diff options
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.java | 19 |
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; |