Restart service if foreground service setting is on when app is updated
This commit is contained in:
parent
426262c3d7
commit
26d61fef4e
4 changed files with 25 additions and 8 deletions
|
@ -22,6 +22,7 @@ Group changes to describe their impact on the project, as follows:
|
|||
- Using new AAudio & Camera2 frameworks for better performances (if available)
|
||||
- Android 10 compatibility
|
||||
- New plugin loader to be compatible with app bundle distribution mode
|
||||
- Restart service if foreground service setting is on when app is updated
|
||||
|
||||
## Changed
|
||||
- Improved performances to reduce startup time
|
||||
|
|
|
@ -252,9 +252,8 @@
|
|||
<receiver android:name=".receivers.BootReceiver">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.BOOT_COMPLETED" />
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.ACTION_SHUTDOWN" />
|
||||
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
|
|
|
@ -36,17 +36,34 @@ public class BootReceiver extends BroadcastReceiver {
|
|||
"[Boot Receiver] Device is shutting down, destroying Core to unregister");
|
||||
context.stopService(
|
||||
new Intent(Intent.ACTION_MAIN).setClass(context, LinphoneService.class));
|
||||
} else {
|
||||
} else if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BOOT_COMPLETED)) {
|
||||
LinphonePreferences.instance().setContext(context);
|
||||
boolean autostart = LinphonePreferences.instance().isAutoStartEnabled();
|
||||
android.util.Log.i(
|
||||
"Linphone", "[Boot Receiver] Device is starting, auto_start is " + autostart);
|
||||
|
||||
if (autostart && !LinphoneService.isReady()) {
|
||||
Intent serviceIntent = new Intent(Intent.ACTION_MAIN);
|
||||
serviceIntent.setClass(context, LinphoneService.class);
|
||||
serviceIntent.putExtra("ForceStartForeground", true);
|
||||
Compatibility.startService(context, serviceIntent);
|
||||
startService(context);
|
||||
}
|
||||
} else if (intent.getAction().equalsIgnoreCase(Intent.ACTION_MY_PACKAGE_REPLACED)) {
|
||||
LinphonePreferences.instance().setContext(context);
|
||||
boolean foregroundService =
|
||||
LinphonePreferences.instance().getServiceNotificationVisibility();
|
||||
android.util.Log.i(
|
||||
"Linphone",
|
||||
"[Boot Receiver] App has been updated, foreground service is "
|
||||
+ foregroundService);
|
||||
|
||||
if (foregroundService && !LinphoneService.isReady()) {
|
||||
startService(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void startService(Context context) {
|
||||
Intent serviceIntent = new Intent(Intent.ACTION_MAIN);
|
||||
serviceIntent.setClass(context, LinphoneService.class);
|
||||
serviceIntent.putExtra("ForceStartForeground", true);
|
||||
Compatibility.startService(context, serviceIntent);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue