diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 62607fc2d..949e6c1cf 100755
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -232,11 +232,6 @@
android:resource="@xml/authenticator" />
-
-
-
-
-
diff --git a/app/src/main/java/org/linphone/LinphoneManager.java b/app/src/main/java/org/linphone/LinphoneManager.java
index 2ea38cb77..cce9bf3a2 100644
--- a/app/src/main/java/org/linphone/LinphoneManager.java
+++ b/app/src/main/java/org/linphone/LinphoneManager.java
@@ -41,7 +41,6 @@ import android.hardware.SensorManager;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.ConnectivityManager;
-import android.net.Network;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build;
@@ -124,10 +123,8 @@ import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration;
import org.linphone.mediastream.video.capture.hwconf.AndroidCameraConfiguration.AndroidCamera;
import org.linphone.mediastream.video.capture.hwconf.Hacks;
import org.linphone.receivers.BluetoothManager;
-import org.linphone.receivers.DozeReceiver;
import org.linphone.receivers.HookReceiver;
import org.linphone.receivers.KeepAliveReceiver;
-import org.linphone.receivers.NetworkManager;
import org.linphone.receivers.OutgoingCallReceiver;
import org.linphone.settings.LinphonePreferences;
import org.linphone.utils.FileUtils;
@@ -179,20 +176,15 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
private final String mBasePath;
private boolean mAudioFocused;
private boolean mEchoTesterIsRunning;
- private boolean mDozeModeEnabled;
private boolean mCallGsmON;
- private int mLastNetworkType = -1;
private final ConnectivityManager mConnectivityManager;
private BroadcastReceiver mKeepAliveReceiver;
- private BroadcastReceiver mDozeReceiver;
private BroadcastReceiver mHookReceiver;
private BroadcastReceiver mCallReceiver;
private BroadcastReceiver mNetworkReceiver;
private IntentFilter mKeepAliveIntentFilter;
- private IntentFilter mDozeIntentFilter;
private IntentFilter mHookIntentFilter;
private IntentFilter mCallIntentFilter;
- private IntentFilter mNetworkIntentFilter;
private final Handler mHandler = new Handler();
private WakeLock mProximityWakelock;
private AccountCreator mAccountCreator;
@@ -699,11 +691,6 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
} catch (Exception e) {
Log.e("[Manager] unregister receiver exception: " + e);
}
- try {
- dozeManager(false);
- } catch (Exception e) {
- Log.e("[Manager] unregister receiver exception: " + e);
- }
mCore = null;
}
}
@@ -846,30 +833,11 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK,
mServiceContext.getPackageName() + ";manager_proximity_sensor");
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- mDozeIntentFilter = new IntentFilter();
- mDozeIntentFilter.addAction(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED);
- mDozeReceiver = new DozeReceiver();
- mDozeModeEnabled =
- ((PowerManager) mServiceContext.getSystemService(Context.POWER_SERVICE))
- .isDeviceIdleMode();
- mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter);
- }
-
mHookIntentFilter = new IntentFilter("com.base.module.phone.HOOKEVENT");
mHookIntentFilter.setPriority(999);
mHookReceiver = new HookReceiver();
mServiceContext.registerReceiver(mHookReceiver, mHookIntentFilter);
- // Since Android N we need to register the network manager
- if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
- mNetworkReceiver = new NetworkManager();
- mNetworkIntentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
- mServiceContext.registerReceiver(mNetworkReceiver, mNetworkIntentFilter);
- }
-
- updateNetworkReachability();
-
resetCameraFromPreferences();
mAccountCreator =
@@ -927,65 +895,6 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
lInputStream.close();
}
- public void updateNetworkReachability() {
- if (mConnectivityManager == null) return;
-
- boolean connected;
- NetworkInfo networkInfo = mConnectivityManager.getActiveNetworkInfo();
- connected = networkInfo != null && networkInfo.isConnected();
-
- if (networkInfo == null && Version.sdkAboveOrEqual(Version.API21_LOLLIPOP_50)) {
- for (Network network : mConnectivityManager.getAllNetworks()) {
- if (network != null) {
- networkInfo = mConnectivityManager.getNetworkInfo(network);
- if (networkInfo != null && networkInfo.isConnected()) {
- connected = true;
- break;
- }
- }
- }
- }
-
- if (networkInfo == null || !connected) {
- Log.i("[Manager] No connectivity: setting network unreachable");
- mCore.setNetworkReachable(false);
- } else if (mDozeModeEnabled) {
- Log.i("[Manager] Doze Mode enabled: shutting down network");
- mCore.setNetworkReachable(false);
- } else if (connected) {
- manageTunnelServer(networkInfo);
-
- boolean wifiOnly = LinphonePreferences.instance().isWifiOnlyEnabled();
- if (wifiOnly) {
- if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
- mCore.setNetworkReachable(true);
- } else {
- Log.i("[Manager] Wifi-only mode, setting network not reachable");
- mCore.setNetworkReachable(false);
- }
- } else {
- int curtype = networkInfo.getType();
-
- if (curtype != mLastNetworkType) {
- // if kind of network has changed, we need to notify network_reachable(false) to
- // make sure all current connections are destroyed.
- // they will be re-created during setNetworkReachable(true).
- Log.i("[Manager] Connectivity has changed.");
- mCore.setNetworkReachable(false);
- }
- mCore.setNetworkReachable(true);
- mLastNetworkType = curtype;
- }
- }
-
- if (mCore.isNetworkReachable()) {
- // When network isn't available, push informations might not be set. This should fix the
- // issue.
- LinphonePreferences prefs = LinphonePreferences.instance();
- prefs.setPushNotificationEnabled(prefs.isPushNotificationEnabled());
- }
- }
-
private void destroyLinphoneCore() {
if (LinphonePreferences.instance() != null) {
// We set network reachable at false before destroy LC to not send register with expires
@@ -998,24 +907,6 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
mCore = null;
}
- private void dozeManager(boolean enable) {
- if (enable) {
- Log.i("[Manager][Doze Mode]: register");
- mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter);
- mDozeModeEnabled = true;
- } else {
- Log.i("[Manager][Doze Mode]: unregister");
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- try {
- mServiceContext.unregisterReceiver(mDozeReceiver);
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- }
- }
- mDozeModeEnabled = false;
- }
- }
-
public void enableProximitySensing(boolean enable) {
if (enable) {
if (!mProximitySensingEnabled) {
@@ -1060,18 +951,6 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
return mRessources.getString(key);
}
- /* Simple implementation as Android way seems very complicate:
- For example: with wifi and mobile actives; when pulling mobile down:
- I/Linphone( 8397): WIFI connected: setting network reachable
- I/Linphone( 8397): new state [RegistrationProgress]
- I/Linphone( 8397): mobile disconnected: setting network unreachable
- I/Linphone( 8397): Managing tunnel
- I/Linphone( 8397): WIFI connected: setting network reachable
- */
- public void connectivityChanged() {
- updateNetworkReachability();
- }
-
public void onNewSubscriptionRequested(Core lc, Friend lf, String url) {}
public void onNotifyPresenceReceived(Core lc, Friend lf) {}
@@ -1703,10 +1582,6 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou
dialog.show();
}
- public void setDozeModeEnabled(boolean b) {
- mDozeModeEnabled = b;
- }
-
public String getmDynamicConfigFile() {
return mDynamicConfigFile;
}
diff --git a/app/src/main/java/org/linphone/receivers/DozeReceiver.java b/app/src/main/java/org/linphone/receivers/DozeReceiver.java
deleted file mode 100644
index 5109e999c..000000000
--- a/app/src/main/java/org/linphone/receivers/DozeReceiver.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package org.linphone.receivers;
-
-/*
-DozeReceiver.java
-Copyright (C) 2017 Belledonne Communications, Grenoble, France
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.Build;
-import android.os.PowerManager;
-import org.linphone.LinphoneManager;
-import org.linphone.LinphoneService;
-import org.linphone.R;
-import org.linphone.core.Core;
-import org.linphone.core.tools.Log;
-import org.linphone.settings.LinphonePreferences;
-import org.linphone.utils.LinphoneUtils;
-
-/*
- * Purpose of this receiver is to disable keep alives when device is on idle
- * */
-public class DozeReceiver extends android.content.BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- PowerManager pm;
- if (!LinphoneService.isReady()) return;
-
- boolean isDebugEnabled = LinphonePreferences.instance().isDebugEnabled();
- LinphoneUtils.configureLoggingService(isDebugEnabled, context.getString(R.string.app_name));
- Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
- if (lc == null) return;
-
- pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
- boolean dozeM = pm.isDeviceIdleMode();
- Log.i("[DozeReceiver] Idle Mode: " + dozeM);
- LinphoneManager.getInstance().setDozeModeEnabled(dozeM);
- LinphoneManager.getInstance().updateNetworkReachability();
- }
- }
-}
diff --git a/app/src/main/java/org/linphone/receivers/NetworkManager.java b/app/src/main/java/org/linphone/receivers/NetworkManager.java
deleted file mode 100644
index 5d802a89b..000000000
--- a/app/src/main/java/org/linphone/receivers/NetworkManager.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.linphone.receivers;
-
-/*
-ContactPickerActivity.java
-Copyright (C) 2017 Belledonne Communications, Grenoble, France
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-*/
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import org.linphone.LinphoneManager;
-
-/** Intercept network state changes and update linphone core through LinphoneManager. */
-public class NetworkManager extends BroadcastReceiver {
-
- @Override
- public void onReceive(Context context, Intent intent) {
- if (LinphoneManager.isInstanciated()) {
- LinphoneManager.getInstance().connectivityChanged();
- }
- }
-}
diff --git a/app/src/main/res/raw/linphonerc_factory b/app/src/main/res/raw/linphonerc_factory
index 7040801dc..f3e20d5fd 100644
--- a/app/src/main/res/raw/linphonerc_factory
+++ b/app/src/main/res/raw/linphonerc_factory
@@ -12,7 +12,7 @@ force_ice_disablement=0
[sip]
guess_hostname=1
register_only_when_network_is_up=1
-auto_net_state_mon=0
+auto_net_state_mon=1
auto_answer_replacing_calls=1
ping_with_options=0
rls_uri=