From 26b9e56b19472a2608e3f3feefd647ca63306e33 Mon Sep 17 00:00:00 2001 From: Yorke Lee Date: Thu, 6 Aug 2015 17:59:49 -0700 Subject: 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 --- src/com/android/dialer/settings/DialerSettingsActivity.java | 8 ++++---- src/com/android/dialer/settings/SoundSettingsFragment.java | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java index abf854c08..c459d35c5 100644 --- a/src/com/android/dialer/settings/DialerSettingsActivity.java +++ b/src/com/android/dialer/settings/DialerSettingsActivity.java @@ -91,10 +91,10 @@ public class DialerSettingsActivity extends PreferenceActivity { @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 1dedcaaff..83847004d 100644 --- a/src/com/android/dialer/settings/SoundSettingsFragment.java +++ b/src/com/android/dialer/settings/SoundSettingsFragment.java @@ -132,7 +132,7 @@ public class SoundSettingsFragment extends PreferenceFragment 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 @@ public class SoundSettingsFragment extends PreferenceFragment */ @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 @@ public class SoundSettingsFragment extends PreferenceFragment */ @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), -- cgit v1.2.3