diff options
author | DvTonder <david.vantonder@gmail.com> | 2012-12-30 14:07:51 -0500 |
---|---|---|
committer | DvTonder <david.vantonder@gmail.com> | 2012-12-30 20:47:39 -0500 |
commit | 129e0965185f467450b1bc7321026c7e025e787d (patch) | |
tree | 90b7fb1bcfec4acad100f53deaf43cfa02146e2c /src/com | |
parent | 913fdaaf02b026918e62d0025af632ca78b3ca4a (diff) | |
download | packages_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.java | 31 |
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; + } + } |