aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AndroidManifest.xml4
-rwxr-xr-xsrc/com/cyanogenmod/lockclock/ClockWidgetService.java11
-rw-r--r--src/com/cyanogenmod/lockclock/misc/WidgetUtils.java40
3 files changed, 48 insertions, 7 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 34f63e4..b9349b8 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,8 +16,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cyanogenmod.lockclock"
- android:versionCode="10"
- android:versionName="2.2.4" >
+ android:versionCode="11"
+ android:versionName="2.2.5" >
<uses-sdk
android:minSdkVersion="17"
diff --git a/src/com/cyanogenmod/lockclock/ClockWidgetService.java b/src/com/cyanogenmod/lockclock/ClockWidgetService.java
index ebd7823..73a182e 100755
--- a/src/com/cyanogenmod/lockclock/ClockWidgetService.java
+++ b/src/com/cyanogenmod/lockclock/ClockWidgetService.java
@@ -166,7 +166,7 @@ public class ClockWidgetService extends IntentService {
private void refreshClock(RemoteViews clockViews, boolean smallWidget, boolean digitalClock) {
// Analog or Digital clock
if (digitalClock) {
- // Hours/Minutes is specific to Didital, set it's size
+ // Hours/Minutes is specific to Digital, set it's size
refreshClockFont(clockViews);
clockViews.setViewVisibility(R.id.digital_clock, View.VISIBLE);
clockViews.setViewVisibility(R.id.analog_clock, View.GONE);
@@ -179,10 +179,11 @@ public class ClockWidgetService extends IntentService {
refreshDateAlarmFont(clockViews, smallWidget);
// Register an onClickListener on Clock, starting DeskClock
- ComponentName clk = new ComponentName("com.android.deskclock", "com.android.deskclock.DeskClock");
- Intent i = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER).setComponent(clk);
- PendingIntent pi = PendingIntent.getActivity(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
- clockViews.setOnClickPendingIntent(R.id.clock_panel, pi);
+ Intent i = WidgetUtils.getDefaultClockIntent(this);
+ if (i != null) {
+ PendingIntent pi = PendingIntent.getActivity(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
+ clockViews.setOnClickPendingIntent(R.id.clock_panel, pi);
+ }
}
private void refreshClockFont(RemoteViews clockViews) {
diff --git a/src/com/cyanogenmod/lockclock/misc/WidgetUtils.java b/src/com/cyanogenmod/lockclock/misc/WidgetUtils.java
index 3f3589e..dd9454f 100644
--- a/src/com/cyanogenmod/lockclock/misc/WidgetUtils.java
+++ b/src/com/cyanogenmod/lockclock/misc/WidgetUtils.java
@@ -18,7 +18,10 @@
package com.cyanogenmod.lockclock.misc;
import android.appwidget.AppWidgetManager;
+import android.content.ComponentName;
import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
@@ -130,4 +133,41 @@ public class WidgetUtils {
}
return 1f;
}
+
+ /**
+ * The following two methods return the default DeskClock intent depending on which
+ * clock package is installed
+ *
+ * Copyright 2013 Google Inc.
+ */
+ private static final String[] CLOCK_PACKAGES = new String[] {
+ "com.google.android.deskclock",
+ "com.android.deskclock",
+ };
+
+ public static Intent getDefaultClockIntent(Context context) {
+ PackageManager pm = context.getPackageManager();
+ for (String packageName : CLOCK_PACKAGES) {
+ try {
+ pm.getPackageInfo(packageName, 0);
+ return pm.getLaunchIntentForPackage(packageName);
+ } catch (PackageManager.NameNotFoundException ignored) {
+ }
+ }
+ return null;
+ }
+
+ public static Intent getDefaultAlarmsIntent(Context context) {
+ PackageManager pm = context.getPackageManager();
+ for (String packageName : CLOCK_PACKAGES) {
+ try {
+ ComponentName cn = new ComponentName(packageName,
+ "com.android.deskclock.AlarmClock");
+ pm.getActivityInfo(cn, 0);
+ return Intent.makeMainActivity(cn);
+ } catch (PackageManager.NameNotFoundException ignored) {
+ }
+ }
+ return getDefaultClockIntent(context);
+ }
}