From e4300b1237f976789e39004d0d4375b6dc169859 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Mon, 23 Aug 2010 17:00:11 -0700 Subject: [PATCH] Fix for AST-117 - call is silent w/ no vibration if call state not idle --- .../com/todoroo/astrid/reminders/Notifications.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java b/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java index 8a25b7c35..ccbf8824a 100644 --- a/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java +++ b/astrid/plugin-src/com/todoroo/astrid/reminders/Notifications.java @@ -11,6 +11,7 @@ import android.content.res.Resources; import android.graphics.Color; import android.media.AudioManager; import android.net.Uri; +import android.telephony.TelephonyManager; import android.util.Log; import com.timsu.astrid.R; @@ -215,6 +216,10 @@ public class Notifications extends BroadcastReceiver { AudioManager audioManager = (AudioManager)context.getSystemService( Context.AUDIO_SERVICE); + // detect call state + TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); + int callState = tm.getCallState(); + // if non-stop mode is activated, set up the flags for insistent // notification, and increase the volume to full volume, so the user // will actually pay attention to the alarm @@ -228,7 +233,7 @@ public class Notifications extends BroadcastReceiver { } // quiet hours = no sound - if(quietHours) { + if(quietHours || callState != TelephonyManager.CALL_STATE_IDLE) { notification.sound = null; } else { String notificationPreference = Preferences.getStringValue(R.string.p_rmd_ringtone); @@ -247,8 +252,9 @@ public class Notifications extends BroadcastReceiver { } // quiet hours && ! due date or snooze = no vibrate - if(quietHours && !(type == ReminderService.TYPE_DUE || - type == ReminderService.TYPE_SNOOZE)) { + if(quietHours && !(type == ReminderService.TYPE_DUE || type == ReminderService.TYPE_SNOOZE)) { + notification.vibrate = null; + } else if(callState != TelephonyManager.CALL_STATE_IDLE) { notification.vibrate = null; } else { if (Preferences.getBoolean(R.string.p_rmd_vibrate, true)