summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorDvTonder <david.vantonder@gmail.com>2012-12-30 14:07:51 -0500
committerDvTonder <david.vantonder@gmail.com>2012-12-30 20:47:39 -0500
commit129e0965185f467450b1bc7321026c7e025e787d (patch)
tree90b7fb1bcfec4acad100f53deaf43cfa02146e2c /src/com
parent913fdaaf02b026918e62d0025af632ca78b3ca4a (diff)
downloadpackages_apps_settings-129e0965185f467450b1bc7321026c7e025e787d.zip
packages_apps_settings-129e0965185f467450b1bc7321026c7e025e787d.tar.gz
packages_apps_settings-129e0965185f467450b1bc7321026c7e025e787d.tar.bz2
Settings: Add support for Lock clock (part 1 of 3)
Change-Id: I13556ce58902e4c6151872c0f0aebe2152677de4
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/settings/cyanogenmod/SystemSettings.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/com/android/settings/cyanogenmod/SystemSettings.java b/src/com/android/settings/cyanogenmod/SystemSettings.java
index 703a10d..5a9ffc2 100644
--- a/src/com/android/settings/cyanogenmod/SystemSettings.java
+++ b/src/com/android/settings/cyanogenmod/SystemSettings.java
@@ -17,22 +17,29 @@
package com.android.settings.cyanogenmod;
import android.content.Context;
+import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
+import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.provider.Settings;
+import android.util.Log;
import android.view.IWindowManager;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
public class SystemSettings extends SettingsPreferenceFragment {
private static final String TAG = "SystemSettings";
private static final String KEY_NOTIFICATION_PULSE = "notification_pulse";
private static final String KEY_BATTERY_LIGHT = "battery_light";
private static final String KEY_HARDWARE_KEYS = "hardware_keys";
+ private static final String KEY_LOCK_CLOCK = "lock_clock";
private PreferenceScreen mNotificationPulse;
private PreferenceScreen mBatteryPulse;
@@ -42,6 +49,11 @@ public class SystemSettings extends SettingsPreferenceFragment {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.system_settings);
+
+ // Dont display the lock clock preference if its not installed
+ removePreferenceIfPackageNotInstalled(findPreference(KEY_LOCK_CLOCK));
+
+ // Notification lights
mNotificationPulse = (PreferenceScreen) findPreference(KEY_NOTIFICATION_PULSE);
if (mNotificationPulse != null) {
if (!getResources().getBoolean(com.android.internal.R.bool.config_intrusiveNotificationLed)) {
@@ -51,6 +63,7 @@ public class SystemSettings extends SettingsPreferenceFragment {
}
}
+ // Battery lights
mBatteryPulse = (PreferenceScreen) findPreference(KEY_BATTERY_LIGHT);
if (mBatteryPulse != null) {
if (getResources().getBoolean(
@@ -103,4 +116,22 @@ public class SystemSettings extends SettingsPreferenceFragment {
super.onPause();
}
+ private boolean removePreferenceIfPackageNotInstalled(Preference preference) {
+ String intentUri=((PreferenceScreen) preference).getIntent().toUri(1);
+ Pattern pattern = Pattern.compile("component=([^/]+)/");
+ Matcher matcher = pattern.matcher(intentUri);
+
+ String packageName=matcher.find()?matcher.group(1):null;
+ if(packageName != null) {
+ try {
+ getPackageManager().getPackageInfo(packageName, 0);
+ } catch (NameNotFoundException e) {
+ Log.e(TAG,"package "+packageName+" not installed, hiding preference.");
+ getPreferenceScreen().removePreference(preference);
+ return true;
+ }
+ }
+ return false;
+ }
+
}