Update dependencies. Update last chapter read in MAL only when the reader is left, instead of on every chapter change. Other minor improvements.
This commit is contained in:
@@ -7,14 +7,12 @@ import android.os.IBinder;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import de.greenrobot.event.EventBus;
|
||||
import eu.kanade.mangafeed.App;
|
||||
import eu.kanade.mangafeed.data.database.DatabaseHelper;
|
||||
import eu.kanade.mangafeed.data.database.models.MangaSync;
|
||||
import eu.kanade.mangafeed.data.mangasync.MangaSyncManager;
|
||||
import eu.kanade.mangafeed.data.mangasync.base.BaseMangaSync;
|
||||
import eu.kanade.mangafeed.event.UpdateMangaSyncEvent;
|
||||
import eu.kanade.mangafeed.util.EventBusHook;
|
||||
import eu.kanade.mangafeed.data.mangasync.base.MangaSyncService;
|
||||
import rx.Observable;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
import rx.schedulers.Schedulers;
|
||||
import rx.subscriptions.CompositeSubscription;
|
||||
@@ -26,8 +24,12 @@ public class UpdateMangaSyncService extends Service {
|
||||
|
||||
private CompositeSubscription subscriptions;
|
||||
|
||||
public static void start(Context context) {
|
||||
context.startService(new Intent(context, UpdateMangaSyncService.class));
|
||||
private static final String EXTRA_MANGASYNC = "extra_mangasync";
|
||||
|
||||
public static void start(Context context, MangaSync mangaSync) {
|
||||
Intent intent = new Intent(context, UpdateMangaSyncService.class);
|
||||
intent.putExtra(EXTRA_MANGASYNC, mangaSync);
|
||||
context.startService(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -35,17 +37,17 @@ public class UpdateMangaSyncService extends Service {
|
||||
super.onCreate();
|
||||
App.get(this).getComponent().inject(this);
|
||||
subscriptions = new CompositeSubscription();
|
||||
EventBus.getDefault().registerSticky(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
MangaSync mangaSync = (MangaSync) intent.getSerializableExtra(EXTRA_MANGASYNC);
|
||||
updateLastChapterRead(mangaSync, startId);
|
||||
return START_STICKY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
EventBus.getDefault().unregister(this);
|
||||
subscriptions.unsubscribe();
|
||||
super.onDestroy();
|
||||
}
|
||||
@@ -55,22 +57,17 @@ public class UpdateMangaSyncService extends Service {
|
||||
return null;
|
||||
}
|
||||
|
||||
@EventBusHook
|
||||
public void onEventMainThread(UpdateMangaSyncEvent event) {
|
||||
updateLastChapteRead(event.getMangaSync());
|
||||
}
|
||||
private void updateLastChapterRead(MangaSync mangaSync, int startId) {
|
||||
MangaSyncService sync = syncManager.getSyncService(mangaSync.sync_id);
|
||||
|
||||
private void updateLastChapteRead(MangaSync mangaSync) {
|
||||
BaseMangaSync sync = syncManager.getSyncService(mangaSync.sync_id);
|
||||
|
||||
subscriptions.add(sync.update(mangaSync)
|
||||
subscriptions.add(Observable.fromCallable(() -> sync.update(mangaSync))
|
||||
.flatMap(response -> db.insertMangaSync(mangaSync).createObservable())
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(result -> {
|
||||
stopSelf();
|
||||
stopSelf(startId);
|
||||
}, error -> {
|
||||
stopSelf();
|
||||
stopSelf(startId);
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user