diff options
Diffstat (limited to 'src/com/android/settings/DevelopmentSettings.java')
-rw-r--r-- | src/com/android/settings/DevelopmentSettings.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java index 5ae3b1b..3666212 100644 --- a/src/com/android/settings/DevelopmentSettings.java +++ b/src/com/android/settings/DevelopmentSettings.java @@ -79,6 +79,7 @@ import android.widget.TextView; import android.widget.Toast; import com.android.internal.logging.MetricsLogger; +import com.android.settings.Settings.AppOpsSummaryActivity; import com.android.settings.fuelgauge.InactiveApps; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.Indexable; @@ -178,6 +179,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment private static final String ROOT_ACCESS_KEY = "root_access"; private static final String ROOT_ACCESS_PROPERTY = "persist.sys.root_access"; + private static final String ROOT_APPOPS_KEY = "root_appops"; + private static final String UPDATE_RECOVERY_KEY = "update_recovery"; private static final String UPDATE_RECOVERY_PROPERTY = "persist.sys.recovery_update"; @@ -292,6 +295,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment private PreferenceScreen mDevelopmentTools; private ColorModePreference mColorModePreference; + private Preference mRootAppops; + private SwitchPreference mAdvancedReboot; private SwitchPreference mUpdateRecovery; @@ -477,6 +482,10 @@ public class DevelopmentSettings extends SettingsPreferenceFragment mRootAccess = (ListPreference) findPreference(ROOT_ACCESS_KEY); mRootAccess.setOnPreferenceChangeListener(this); + + mRootAppops = (Preference) findPreference(ROOT_APPOPS_KEY); + mRootAppops.setOnPreferenceClickListener(this); + if (!removeRootOptionsIfRequired()) { if (isRootForAppsAvailable()) { mRootAccess.setEntries(R.array.root_access_entries); @@ -486,6 +495,7 @@ public class DevelopmentSettings extends SettingsPreferenceFragment mRootAccess.setEntryValues(R.array.root_access_values_adb); } mAllPrefs.add(mRootAccess); + mAllPrefs.add(mRootAppops); } mDevelopmentTools = (PreferenceScreen) findPreference(DEVELOPMENT_TOOLS); @@ -841,6 +851,10 @@ public class DevelopmentSettings extends SettingsPreferenceFragment mRootAccess.setValue(value); mRootAccess.setSummary(getResources() .getStringArray(R.array.root_access_entries)[Integer.valueOf(value)]); + + if (mRootAppops != null) { + mRootAppops.setEnabled(isRootForAppsEnabled()); + } } private boolean isRootForAppsAvailable() { @@ -1910,6 +1924,13 @@ public class DevelopmentSettings extends SettingsPreferenceFragment preference == mTransitionAnimationScale || preference == mAnimatorDurationScale) { ((AnimationScalePreference) preference).click(); + } else if (preference == mRootAppops) { + Activity mActivity = getActivity(); + Intent intent = new Intent(Intent.ACTION_MAIN); + intent.putExtra("appops_tab", getString(R.string.app_ops_categories_su)); + intent.setClass(mActivity, AppOpsSummaryActivity.class); + mActivity.startActivity(intent); + return true; } return false; } |