summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/settings/DeviceInfoSettings.java17
-rw-r--r--src/com/android/settings/cyanogenmod/privacyguard/PrivacyGuardManager.java11
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);