diff --git a/AndroidManifest.xml b/AndroidManifest.xml index c2c972625..d9841cbe7 100755 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -66,6 +66,7 @@ pref_escape_plus_key pref_friendlist_subscribe_key pref_link_account_key + pref_proxy_push_notif_key pref_echo_cancellation_key pref_autostart_key Outbound proxy diff --git a/res/values/strings.xml b/res/values/strings.xml index 776ec20af..8c4aae712 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -331,6 +331,7 @@ Change password Use as default Password changed + Allow push notification SIP Accounts diff --git a/res/xml/account_preferences.xml b/res/xml/account_preferences.xml index 48322744c..6467d2efc 100644 --- a/res/xml/account_preferences.xml +++ b/res/xml/account_preferences.xml @@ -103,6 +103,11 @@ android:key="@string/pref_link_account_key" android:persistent="false"/> + + 0) { for (ProxyConfig lpc : lc.getProxyConfigList()) { - String contactInfos = "app-id=" + appId + ";pn-type=" + getString(R.string.push_type) + ";pn-tok=" + regId + ";pn-silent=1"; - String prevContactParams = lpc.getContactParameters(); - if (prevContactParams == null || prevContactParams.compareTo(contactInfos)!=0) { + if (!lpc.isPushNotificationAllowed()) { lpc.edit(); - lpc.setContactUriParameters(contactInfos); + lpc.setContactUriParameters(null); lpc.done(); if (lpc.getIdentityAddress() != null) - Log.d("Push notif infos added to proxy config " + lpc.getIdentityAddress().asStringUriOnly()); + Log.d("Push notif infos removed from proxy config " + lpc.getIdentityAddress().asStringUriOnly()); + } else { + String contactInfos = "app-id=" + appId + ";pn-type=" + getString(R.string.push_type) + ";pn-tok=" + regId + ";pn-silent=1"; + String prevContactParams = lpc.getContactParameters(); + if (prevContactParams == null || prevContactParams.compareTo(contactInfos) != 0) { + lpc.edit(); + lpc.setContactUriParameters(contactInfos); + lpc.done(); + if (lpc.getIdentityAddress() != null) + Log.d("Push notif infos added to proxy config " + lpc.getIdentityAddress().asStringUriOnly()); + } } } lc.refreshRegisters(); diff --git a/src/android/org/linphone/fragments/AccountPreferencesFragment.java b/src/android/org/linphone/fragments/AccountPreferencesFragment.java index 29cec9696..fd13a8039 100644 --- a/src/android/org/linphone/fragments/AccountPreferencesFragment.java +++ b/src/android/org/linphone/fragments/AccountPreferencesFragment.java @@ -260,6 +260,18 @@ public class AccountPreferencesFragment extends PreferencesListFragment implemen return true; } }; + OnPreferenceChangeListener pushNotificationListener = new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + boolean value = (Boolean) newValue; + if (isNewAccount) { + //TODO + } else { + mPrefs.enablePushNotifForProxy(n, value); + } + return true; + } + }; OnPreferenceChangeListener disableChangedListener = new OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { @@ -443,6 +455,12 @@ public class AccountPreferencesFragment extends PreferencesListFragment implemen Preference linkAccount = advanced.getPreference(10); linkAccount.setOnPreferenceClickListener(linkAccountListener); + CheckBoxPreference pushNotif = (CheckBoxPreference) advanced.getPreference(11); + pushNotif.setOnPreferenceChangeListener(pushNotificationListener); + if(!isNewAccount){ + pushNotif.setChecked(mPrefs.isPushNotifEnabledForProxy(n)); + } + PreferenceCategory manage = (PreferenceCategory) getPreferenceScreen().findPreference(getString(R.string.pref_manage_key)); final CheckBoxPreference disable = (CheckBoxPreference) manage.getPreference(0); disable.setEnabled(true); diff --git a/submodules/externals/zxing-cpp b/submodules/externals/zxing-cpp new file mode 160000 index 000000000..9d5bfe077 --- /dev/null +++ b/submodules/externals/zxing-cpp @@ -0,0 +1 @@ +Subproject commit 9d5bfe077dc53968ea1a4b386be7a2af14121aa0 diff --git a/submodules/linphone b/submodules/linphone index 701685a9f..7705ada69 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 701685a9fca6b420861d1917cbadffae6daee71e +Subproject commit 7705ada69553c274040ce7b3164ea8c1584f7edb diff --git a/submodules/mediastreamer2 b/submodules/mediastreamer2 index 65946f227..0be2e0ed8 160000 --- a/submodules/mediastreamer2 +++ b/submodules/mediastreamer2 @@ -1 +1 @@ -Subproject commit 65946f227bd94548264e99ea13c662b0b899c18d +Subproject commit 0be2e0ed887ea9db50666d98f0059c92a3f38ad8