Some fix for doze mode

This commit is contained in:
Erwan Croze 2017-05-18 15:53:59 +02:00
parent 2aa42957ea
commit 243358ac03
2 changed files with 8 additions and 3 deletions

View file

@ -208,8 +208,6 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); mProximity = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
mR = c.getResources(); mR = c.getResources();
mPendingChatFileMessage = new ArrayList<LinphoneChatMessage>(); mPendingChatFileMessage = new ArrayList<LinphoneChatMessage>();
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; private static final int LINPHONE_VOLUME_STREAM = STREAM_VOICE_CALL;
@ -849,6 +847,9 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
if (mPrefs.isDozeModeEnabled()) { if (mPrefs.isDozeModeEnabled()) {
mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter); 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"); mHookIntentFilter = new IntentFilter("com.base.module.phone.HOOKEVENT");
@ -1037,9 +1038,10 @@ public class LinphoneManager implements LinphoneCoreListener, LinphoneChatMessag
if (enable) { if (enable) {
Log.i("[Doze Mode]: register"); Log.i("[Doze Mode]: register");
mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter); mServiceContext.registerReceiver(mDozeReceiver, mDozeIntentFilter);
dozeModeEnabled = true;
} else { } else {
Log.i("[Doze Mode]: unregister"); Log.i("[Doze Mode]: unregister");
mServiceContext.unregisterReceiver(mDozeReceiver); if (dozeModeEnabled) mServiceContext.unregisterReceiver(mDozeReceiver);
dozeModeEnabled = false; dozeModeEnabled = false;
} }
} }

View file

@ -46,6 +46,7 @@ import org.linphone.purchase.Purchasable;
import android.Manifest; import android.Manifest;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.os.Build;
/** /**
* @author Sylvain Berfini * @author Sylvain Berfini
@ -1474,6 +1475,8 @@ public class LinphonePreferences {
} }
public boolean isDozeModeEnabled() { public boolean isDozeModeEnabled() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M)
return false;
return getConfig().getBool("app", "doze_mode", true); return getConfig().getBool("app", "doze_mode", true);
} }