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);
mR = c.getResources();
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;
@ -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;
}
}

View file

@ -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);
}