From e26a8a7616100d3a2e56625cf1b7ce1a1eefba7a Mon Sep 17 00:00:00 2001
From: Satoshi Kataoka <satok@google.com>
Date: Wed, 22 May 2013 01:45:16 +0200
Subject: [PATCH] Fix an issue on hardcoded alarm settings intent

This change fixes a TODO to fix the behavior that the quick settings directly specifies a class of AOSP desk clock.
Currently the quick settings can't work with other alarm clocks and that's fixed by calling "android.intent.action.SET_ALARM" instead.

Change-Id: I028b8a320e945921c096fdc776b52441e7d07202

Signed-off-by: Satoshi Kataoka <satok@google.com>
Tested-by: Moritz Bandemer <replicant@posteo.mx>
---
 packages/SystemUI/AndroidManifest.xml                             | 3 +++
 .../src/com/android/systemui/statusbar/phone/QuickSettings.java   | 8 ++------
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml
index 0432a5c..573f496 100644
--- a/packages/SystemUI/AndroidManifest.xml
+++ b/packages/SystemUI/AndroidManifest.xml
@@ -71,6 +71,9 @@
     <uses-permission android:name="android.permission.READ_DREAM_STATE" />
     <uses-permission android:name="android.permission.WRITE_DREAM_STATE" />
 
+    <!-- Alarm clocks -->
+    <uses-permission android:name="com.android.alarm.permission.SET_ALARM" />
+
     <!-- Power widget -->
     <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
     <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
index 9e22567..a3e6c97 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
@@ -61,6 +61,7 @@ import android.os.Handler;
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.provider.AlarmClock;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Phone;
 import android.provider.ContactsContract.Profile;
@@ -632,12 +633,7 @@ class QuickSettings {
         alarmTile.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                // TODO: Jump into the alarm application
-                Intent intent = new Intent();
-                intent.setComponent(new ComponentName(
-                        "com.android.deskclock",
-                        "com.android.deskclock.AlarmClock"));
-                startSettingsActivity(intent);
+                startSettingsActivity(AlarmClock.ACTION_SET_ALARM);
             }
         });
         mModel.addAlarmTile(alarmTile, new QuickSettingsModel.RefreshCallback() {
-- 
1.9.1

