mirror of
https://github.com/M66B/FairEmail.git
synced 2025-01-01 12:44:42 +00:00
Android 9 Pie compatibility
This commit is contained in:
parent
f351bccb8e
commit
2cc3c07651
1 changed files with 29 additions and 24 deletions
|
@ -122,6 +122,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager;
|
|||
import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
|
||||
|
||||
public class ServiceSynchronize extends LifecycleService {
|
||||
private TupleAccountStats stats = null;
|
||||
private final Object lock = new Object();
|
||||
private ServiceManager serviceManager = new ServiceManager();
|
||||
|
||||
|
@ -146,7 +147,6 @@ public class ServiceSynchronize extends LifecycleService {
|
|||
public void onCreate() {
|
||||
Log.i(Helper.TAG, "Service create version=" + BuildConfig.VERSION_NAME);
|
||||
super.onCreate();
|
||||
startForeground(NOTIFICATION_SYNCHRONIZE, getNotificationService(0, 0, 0).build());
|
||||
|
||||
// Listen for network changes
|
||||
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
|
@ -155,18 +155,46 @@ public class ServiceSynchronize extends LifecycleService {
|
|||
// Removed because of Android VPN service
|
||||
// builder.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
||||
cm.registerNetworkCallback(builder.build(), serviceManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
Log.i(Helper.TAG, "Service destroy");
|
||||
|
||||
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
cm.unregisterNetworkCallback(serviceManager);
|
||||
|
||||
serviceManager.onLost(null);
|
||||
|
||||
stopForeground(true);
|
||||
|
||||
NotificationManager nm = getSystemService(NotificationManager.class);
|
||||
nm.cancel(NOTIFICATION_SYNCHRONIZE);
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
Log.i(Helper.TAG, "Service command intent=" + intent);
|
||||
super.onStartCommand(intent, flags, startId);
|
||||
|
||||
startForeground(NOTIFICATION_SYNCHRONIZE, getNotificationService(0, 0, 0).build());
|
||||
|
||||
DB db = DB.getInstance(this);
|
||||
|
||||
db.account().liveStats().removeObservers(this);
|
||||
db.account().liveStats().observe(this, new Observer<TupleAccountStats>() {
|
||||
@Override
|
||||
public void onChanged(@Nullable TupleAccountStats stats) {
|
||||
ServiceSynchronize.this.stats = stats;
|
||||
NotificationManager nm = getSystemService(NotificationManager.class);
|
||||
nm.notify(NOTIFICATION_SYNCHRONIZE,
|
||||
getNotificationService(stats.accounts, stats.operations, stats.unsent).build());
|
||||
}
|
||||
});
|
||||
|
||||
db.message().liveUnseenUnified().removeObservers(this);
|
||||
db.message().liveUnseenUnified().observe(this, new Observer<List<EntityMessage>>() {
|
||||
private List<Integer> notifying = new ArrayList<>();
|
||||
|
||||
|
@ -204,29 +232,6 @@ public class ServiceSynchronize extends LifecycleService {
|
|||
notifying = all;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
Log.i(Helper.TAG, "Service destroy");
|
||||
|
||||
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||
cm.unregisterNetworkCallback(serviceManager);
|
||||
|
||||
serviceManager.onLost(null);
|
||||
|
||||
stopForeground(true);
|
||||
|
||||
NotificationManager nm = getSystemService(NotificationManager.class);
|
||||
nm.cancel(NOTIFICATION_SYNCHRONIZE);
|
||||
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
Log.i(Helper.TAG, "Service command intent=" + intent);
|
||||
super.onStartCommand(intent, flags, startId);
|
||||
|
||||
if (intent != null) {
|
||||
String action = intent.getAction();
|
||||
|
|
Loading…
Reference in a new issue