From 243358ac033953a65e5244e706c27c2645471c07 Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Thu, 18 May 2017 15:53:59 +0200 Subject: [PATCH] Some fix for doze mode --- src/android/org/linphone/LinphoneManager.java | 8 +++++--- src/android/org/linphone/LinphonePreferences.java | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/android/org/linphone/LinphoneManager.java b/src/android/org/linphone/LinphoneManager.java index bd55d0a24..508bedc2b 100644 --- a/src/android/org/linphone/LinphoneManager.java +++ b/src/android/org/linphone/LinphoneManager.java @@ -208,8 +208,6 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); mR = c.getResources(); mPendingChatFileMessage = new ArrayList(); - - dozeModeEnabled = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ((PowerManager) c.getSystemService(Context.POWER_SERVICE)).isDeviceIdleMode(); } private static final int LINPHONE_VOLUME_STREAM = STREAM_VOICE_CALL; @@ -849,6 +847,9 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag if (mPrefs.isDozeModeEnabled()) { mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + dozeModeEnabled = ((PowerManager) mServiceContext.getSystemService(Context.POWER_SERVICE)).isDeviceIdleMode(); + } } mHookIntentFilter = new IntentFilter("com.base.module.phone.HOOKEVENT"); @@ -1037,9 +1038,10 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag if (enable) { Log.i("[Doze Mode]: register"); mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter); + dozeModeEnabled = true; } else { Log.i("[Doze Mode]: unregister"); - mServiceContext.unregisterReceiver(mDozeReceiver); + if (dozeModeEnabled) mServiceContext.unregisterReceiver(mDozeReceiver); dozeModeEnabled = false; } } diff --git a/src/android/org/linphone/LinphonePreferences.java b/src/android/org/linphone/LinphonePreferences.java index 8b2d42053..88f1d4004 100644 --- a/src/android/org/linphone/LinphonePreferences.java +++ b/src/android/org/linphone/LinphonePreferences.java @@ -46,6 +46,7 @@ import org.linphone.purchase.Purchasable; import android.Manifest; import android.content.Context; import android.content.pm.PackageManager; +import android.os.Build; /** * @author Sylvain Berfini @@ -1474,6 +1475,8 @@ public class LinphonePreferences { } public boolean isDozeModeEnabled() { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) + return false; return getConfig().getBool("app", "doze_mode", true); }