Merge "Implement application-level high priority setting." into lmp-dev
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index 34d465e..510d0d6 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -70,7 +70,7 @@
      * Show a checkbox in the per-app notification control dialog to allow the user
      * to promote this app's notifications to higher priority.
      */
-    private static final boolean ENABLE_APP_NOTIFICATION_PRIORITY_OPTION = false;
+    private static final boolean ENABLE_APP_NOTIFICATION_PRIORITY_OPTION = true;
     /**
      * Show a checkbox in the per-app notification control dialog to allow the user to
      * selectively redact this app's notifications on the lockscreen.
@@ -585,13 +585,27 @@
         }
 
         public boolean getHighPriority(String pkg, int uid) {
-            // TODO get high-pri state from NoMan
-            return false;
+            INotificationManager nm = INotificationManager.Stub.asInterface(
+                    ServiceManager.getService(Context.NOTIFICATION_SERVICE));
+            try {
+                return nm.getPackagePriority(pkg, uid) == Notification.PRIORITY_MAX;
+            } catch (Exception e) {
+                Log.w(TAG, "Error calling NoMan", e);
+                return false;
+            }
         }
 
-        public boolean setHighPriority(String pkg, int uid, boolean priority) {
-            // TODO save high-pri state to NoMan
-            return true;
+        public boolean setHighPriority(String pkg, int uid, boolean highPriority) {
+            INotificationManager nm = INotificationManager.Stub.asInterface(
+                    ServiceManager.getService(Context.NOTIFICATION_SERVICE));
+            try {
+                nm.setPackagePriority(pkg, uid,
+                        highPriority ? Notification.PRIORITY_MAX : Notification.PRIORITY_DEFAULT);
+                return true;
+            } catch (Exception e) {
+                Log.w(TAG, "Error calling NoMan", e);
+                return false;
+            }
         }
 
         public boolean getSensitive(String pkg, int uid) {