diff --git a/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java b/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java
index 42597e4cb..94bbcf468 100644
--- a/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java
+++ b/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java
@@ -12,6 +12,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceManager;
+import android.preference.PreferenceScreen;
import org.tasks.time.DateTime;
import org.tasks.R;
@@ -45,8 +46,10 @@ public class ReminderPreferences extends InjectingPreferenceActivity {
addPreferencesFromResource(R.xml.preferences_reminders);
+ PreferenceScreen preferenceScreen = getPreferenceScreen();
if (preJellybean()) {
- getPreferenceScreen().removePreference(findPreference(getString(R.string.p_rmd_notif_actions_enabled)));
+ preferenceScreen.removePreference(findPreference(getString(R.string.p_rmd_notif_actions_enabled)));
+ preferenceScreen.removePreference(findPreference(getString(R.string.p_notification_priority)));
}
if (deviceInfo.supportsLocationServices()) {
@@ -54,7 +57,7 @@ public class ReminderPreferences extends InjectingPreferenceActivity {
setExtraOnChange(R.string.p_geofence_responsiveness, RESET_GEOFENCES);
setExtraOnChange(R.string.p_geofence_reminders_enabled, TOGGLE_GEOFENCES);
} else {
- getPreferenceScreen().removePreference(findPreference(getString(R.string.geolocation_reminders)));
+ preferenceScreen.removePreference(findPreference(getString(R.string.geolocation_reminders)));
}
initializeRingtonePreference();
diff --git a/src/main/java/org/tasks/Notifier.java b/src/main/java/org/tasks/Notifier.java
index cad66a383..c7c8a39dd 100644
--- a/src/main/java/org/tasks/Notifier.java
+++ b/src/main/java/org/tasks/Notifier.java
@@ -43,6 +43,7 @@ import java.io.InputStream;
import javax.inject.Inject;
import static com.google.common.base.Strings.isNullOrEmpty;
+import static com.todoroo.andlib.utility.AndroidUtilities.atLeastJellybean;
import static org.tasks.time.DateTimeUtils.currentTimeMillis;
public class Notifier {
@@ -58,7 +59,7 @@ public class Notifier {
private final TelephonyManager telephonyManager;
private final AudioManager audioManager;
private final VoiceOutputAssistant voiceOutputAssistant;
- private Preferences preferences;
+ private final Preferences preferences;
@Inject
public Notifier(@ForApplication Context context, TaskDao taskDao,
@@ -279,6 +280,20 @@ public class Notifier {
notification.defaults = Notification.DEFAULT_LIGHTS;
}
+ if (atLeastJellybean()) {
+ switch (preferences.getNotificationPriority()) {
+ case 0:
+ notification.priority = NotificationCompat.PRIORITY_DEFAULT;
+ break;
+ case -1:
+ notification.priority = NotificationCompat.PRIORITY_LOW;
+ break;
+ default:
+ notification.priority = NotificationCompat.PRIORITY_HIGH;
+ break;
+ }
+ }
+
boolean voiceReminder = preferences.getBoolean(R.string.p_voiceRemindersEnabled, false) && !isNullOrEmpty(text);
// if multi-ring is activated and the setting p_rmd_maxvolume allows it, set up the flags for insistent
diff --git a/src/main/java/org/tasks/preferences/Preferences.java b/src/main/java/org/tasks/preferences/Preferences.java
index 5cc141ea5..2cfe68277 100644
--- a/src/main/java/org/tasks/preferences/Preferences.java
+++ b/src/main/java/org/tasks/preferences/Preferences.java
@@ -96,6 +96,10 @@ public class Preferences {
return defaultCalendar != null && !defaultCalendar.equals("-1") && !defaultCalendar.equals("0");
}
+ public int getNotificationPriority() {
+ return getInt(R.string.p_notification_priority, 1);
+ }
+
public String getDefaultCalendar() {
return getStringValue(R.string.gcal_p_default);
}
diff --git a/src/main/res/values/keys.xml b/src/main/res/values/keys.xml
index 2ebfe9270..d468ca8ad 100644
--- a/src/main/res/values/keys.xml
+++ b/src/main/res/values/keys.xml
@@ -240,6 +240,7 @@
show_completed_tasks
reverse_sort
manual_sort
+ notification_priority
- @string/TEA_ctrl_when_pref
@@ -261,4 +262,16 @@
- @string/ring_nonstop
+
+ - @string/high_priority
+ - @string/default_priority
+ - @string/low_priority
+
+
+
+ - 1
+ - 0
+ - -1
+
+
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index d8bfbf467..3d012bbdc 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -123,6 +123,10 @@
Get Plug-ins
No application found to open attachment
Add attachment
+ High
+ Default
+ Low
+ Notification Priority
diff --git a/src/main/res/xml/preferences_reminders.xml b/src/main/res/xml/preferences_reminders.xml
index 93c3ae43c..130d46cea 100644
--- a/src/main/res/xml/preferences_reminders.xml
+++ b/src/main/res/xml/preferences_reminders.xml
@@ -12,6 +12,13 @@
android:defaultValue="true"
android:key="@string/p_rmd_enabled"
android:title="@string/enabled" />
+