diff --git a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java index 779dc24734..b50c746a79 100644 --- a/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java +++ b/app/src/main/java/fr/free/nrw/commons/CommonsApplication.java @@ -20,6 +20,7 @@ import com.squareup.leakcanary.LeakCanary; import com.squareup.leakcanary.RefWatcher; +import io.reactivex.Completable; import org.acra.ACRA; import org.acra.annotation.AcraCore; import org.acra.annotation.AcraDialog; @@ -267,17 +268,18 @@ public void clearApplicationData(Context context, LogoutListener logoutListener) } sessionManager.logout() - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(() -> { - Timber.d("All accounts have been removed"); - clearImageCache(); - //TODO: fix preference manager - defaultPrefs.clearAll(); - defaultPrefs.putBoolean("firstrun", false); - updateAllDatabases(); - logoutListener.onLogoutComplete(); - }); + .andThen(Completable.fromAction(() ->{ + Timber.d("All accounts have been removed"); + clearImageCache(); + //TODO: fix preference manager + defaultPrefs.clearAll(); + defaultPrefs.putBoolean("firstrun", false); + updateAllDatabases(); + } + )) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(logoutListener::onLogoutComplete, Timber::e); } /**