diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java
index cf9f3102a..a3dd4c67a 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/SettingsActivity.java
@@ -104,6 +104,7 @@ public class SettingsActivity extends AbstractSettingsActivity {
protected String[] getPreferenceKeysWithSummary() {
return new String[]{
"audio_player",
+ "notification_mode_calls",
"notification_mode_sms",
"notification_mode_k9mail",
"pebble_emu_addr",
diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/PhoneCallReceiver.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/PhoneCallReceiver.java
index f19a84d99..c17829176 100644
--- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/PhoneCallReceiver.java
+++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/externalevents/PhoneCallReceiver.java
@@ -3,6 +3,8 @@ package nodomain.freeyourgadget.gadgetbridge.externalevents;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
import android.telephony.TelephonyManager;
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
@@ -22,11 +24,11 @@ public class PhoneCallReceiver extends BroadcastReceiver {
String stateStr = intent.getExtras().getString(TelephonyManager.EXTRA_STATE);
String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
int state = 0;
- if (stateStr.equals(TelephonyManager.EXTRA_STATE_IDLE)) {
+ if (TelephonyManager.EXTRA_STATE_IDLE.equals(stateStr)) {
state = TelephonyManager.CALL_STATE_IDLE;
- } else if (stateStr.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)) {
+ } else if (TelephonyManager.EXTRA_STATE_OFFHOOK.equals(stateStr)) {
state = TelephonyManager.CALL_STATE_OFFHOOK;
- } else if (stateStr.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
+ } else if (TelephonyManager.EXTRA_STATE_RINGING.equals(stateStr)) {
state = TelephonyManager.CALL_STATE_RINGING;
}
@@ -62,6 +64,10 @@ public class PhoneCallReceiver extends BroadcastReceiver {
break;
}
if (callCommand != null) {
+ SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
+ if ("never".equals(sharedPrefs.getString("notification_mode_calls", "always"))) {
+ return;
+ }
GBApplication.deviceService().onSetCallState(mSavedNumber, null, callCommand);
}
mLastState = state;
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 88b4f5f34..c18572139 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -11,6 +11,15 @@
- never
+
+ - @string/always
+ - @string/never
+
+
+ - always
+ - never
+
+
- @string/male
- @string/female
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c96ad764d..cbba2238a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -41,8 +41,8 @@
Notifications
Repetitions
+ Phone Calls
SMS
- Incoming Calls
K9-Mail
Pebble Messages
Support for applications which send Notifications to the Pebble via Intent. Can be used for Conversations.
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 65b1cdcde..599e88b4c 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -25,6 +25,13 @@
android:key="pref_key_notifications"
android:title="@string/pref_header_notifications">
+
+