Correctly check for ability to write to system settings
Use Settings.System.canWrite instead of direct check of AppOp
using AppOpsManager
Bug: 22987149
Change-Id: I2484d531cce988af6e054d4c900efa277f7e622f
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index abf854c..c459d35 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -91,10 +91,10 @@
@Override
public void onHeaderClick(Header header, int position) {
if (header.id == R.id.settings_header_sounds_and_vibration) {
- // If we don't have the AppOp to write to system settings, go to system sound settings
- // instead. Otherwise, perform the super implementation (which launches our own
- // preference fragment.
- if (!PermissionsUtil.hasAppOp(this, AppOpsManager.OPSTR_WRITE_SETTINGS)) {
+ // If we don't have the permission to write to system settings, go to system sound
+ // settings instead. Otherwise, perform the super implementation (which launches our
+ // own preference fragment.
+ if (!Settings.System.canWrite(this)) {
Toast.makeText(
this,
getResources().getString(R.string.toast_cannot_write_system_settings),
diff --git a/src/com/android/dialer/settings/SoundSettingsFragment.java b/src/com/android/dialer/settings/SoundSettingsFragment.java
index 1dedcaa..8384700 100644
--- a/src/com/android/dialer/settings/SoundSettingsFragment.java
+++ b/src/com/android/dialer/settings/SoundSettingsFragment.java
@@ -132,7 +132,7 @@
public void onResume() {
super.onResume();
- if (!PermissionsUtil.hasAppOp(getContext(), AppOpsManager.OPSTR_WRITE_SETTINGS)) {
+ if (!Settings.System.canWrite(getContext())) {
// If the user launches this setting fragment, then toggles the WRITE_SYSTEM_SETTINGS
// AppOp, then close the fragment since there is nothing useful to do.
getActivity().onBackPressed();
@@ -155,7 +155,7 @@
*/
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
- if (!PermissionsUtil.hasAppOp(getContext(), AppOpsManager.OPSTR_WRITE_SETTINGS)) {
+ if (!Settings.System.canWrite(getContext())) {
// A user shouldn't be able to get here, but this protects against monkey crashes.
Toast.makeText(
getContext(),
@@ -181,7 +181,7 @@
*/
@Override
public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
- if (!PermissionsUtil.hasAppOp(getContext(), AppOpsManager.OPSTR_WRITE_SETTINGS)) {
+ if (!Settings.System.canWrite(getContext())) {
Toast.makeText(
getContext(),
getResources().getString(R.string.toast_cannot_write_system_settings),