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 | |
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
-rw-r--r-- | res/values/strings.xml | 4 | ||||
-rw-r--r-- | res/xml/system_settings.xml | 10 | ||||
-rw-r--r-- | src/com/android/settings/cyanogenmod/SystemSettings.java | 31 |
3 files changed, 45 insertions, 0 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml index a589807..586102a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5085,5 +5085,9 @@ <string name="sms_security_check_limit_summary">Display an alert dialog to prevent applications from sending SMS messages too frequently. Current limit: %d messages in 15 minutes</string> <string name="sms_security_check_limit_default">30 (Default)</string> + <!--- Lock clock --> + <string name="lock_clock_title">Lock clock widget</string> + <string name="lock_clock_summary">View or change how the Lock clock widgets will display</string> + <!-- **** CYANOGENMOD ADDITIONS END **** --> </resources> diff --git a/res/xml/system_settings.xml b/res/xml/system_settings.xml index c28af49..703c6f7 100644 --- a/res/xml/system_settings.xml +++ b/res/xml/system_settings.xml @@ -39,6 +39,16 @@ android:title="@string/power_menu_title" android:fragment="com.android.settings.cyanogenmod.PowerMenu" /> + <!-- Lock clock --> + <PreferenceScreen + android:key="lock_clock" + android:title="@string/lock_clock_title" + android:summary="@string/lock_clock_summary"> + <intent android:action="android.intent.action.MAIN" + android:targetPackage="com.cyanogenmod.lockclock" + android:targetClass="com.cyanogenmod.lockclock.preference.Preferences" /> + </PreferenceScreen> + <PreferenceScreen android:key="notification_pulse" android:title="@string/notification_pulse_title" 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; + } + } |