diff options
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/settings/DeviceInfoSettings.java | 17 | ||||
-rw-r--r-- | src/com/android/settings/cyanogenmod/privacyguard/PrivacyGuardManager.java | 11 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 3f8aca3e1..23fa672fd 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -102,6 +102,7 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { String status = getResources().getString(R.string.selinux_status_permissive); setStringSummary(KEY_SELINUX_STATUS, status); } + findPreference(KEY_SELINUX_STATUS).setEnabled(true); // Remove selinux information if property is not present removePreferenceIfPropertyMissing(getPreferenceScreen(), KEY_SELINUX_STATUS, @@ -252,6 +253,22 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment { Log.e(LOG_TAG, "Unable to start activity " + intent.toString()); } } + } else if (preference.getKey().equals(KEY_SELINUX_STATUS)) { + System.arraycopy(mHits, 1, mHits, 0, mHits.length-1); + mHits[mHits.length-1] = SystemClock.uptimeMillis(); + if (mHits[0] >= (SystemClock.uptimeMillis()-500)) { + SELinux.setSELinuxEnforce(!SELinux.isSELinuxEnforced()); + if (!SELinux.isSELinuxEnabled()) { + String status = getResources().getString(R.string.selinux_status_disabled); + setStringSummary(KEY_SELINUX_STATUS, status); + } else if (!SELinux.isSELinuxEnforced()) { + String status = getResources().getString(R.string.selinux_status_permissive); + setStringSummary(KEY_SELINUX_STATUS, status); + } else if (SELinux.isSELinuxEnforced()) { + String status = getResources().getString(R.string.selinux_status_enforcing); + setStringSummary(KEY_SELINUX_STATUS, status); + } + } } return super.onPreferenceTreeClick(preferenceScreen, preference); } diff --git a/src/com/android/settings/cyanogenmod/privacyguard/PrivacyGuardManager.java b/src/com/android/settings/cyanogenmod/privacyguard/PrivacyGuardManager.java index 9e271470c..51942aed8 100644 --- a/src/com/android/settings/cyanogenmod/privacyguard/PrivacyGuardManager.java +++ b/src/com/android/settings/cyanogenmod/privacyguard/PrivacyGuardManager.java @@ -21,6 +21,7 @@ import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.app.Fragment; +import android.app.FragmentManager; import android.content.ActivityNotFoundException; import android.content.DialogInterface; import android.content.Intent; @@ -107,6 +108,16 @@ public class PrivacyGuardManager extends Fragment } @Override + public void onDestroyView() { + super.onDestroyView(); + FragmentManager fm = getFragmentManager(); + Fragment f = fm.findFragmentById(R.id.privacy_guard_prefs); + if (f != null && !fm.isDestroyed()) { + fm.beginTransaction().remove(f).commit(); + } + } + + @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); |