summaryrefslogtreecommitdiffstats
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
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
-rw-r--r--res/values/strings.xml4
-rw-r--r--res/xml/system_settings.xml10
-rw-r--r--src/com/android/settings/cyanogenmod/SystemSettings.java31
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;
+ }
+
}