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" /> +