Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b459be7 authored by Fahim Salam Chowdhury's avatar Fahim Salam Chowdhury 👽
Browse files

check murena account loaded or not in mainActivity

parent 458c2062
Loading
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel;

import java.util.List;
import java.util.Objects;

import it.niedermann.owncloud.notes.shared.util.AccountSyncUtil;

@@ -54,4 +55,14 @@ public class ImportMurenaAccountViewModel extends AndroidViewModel {
    public Account getMurenaAccount() {
        return account;
    }

    public boolean shouldLoadMurenaAccount(List<it.niedermann.owncloud.notes.persistence.entity.Account> noteAccounts) {
        if (!isMurenaAccountPresent()) {
            return false;
        }

        return noteAccounts.stream()
                .filter(Objects::nonNull)
                .noneMatch(noteAccount -> noteAccount.getAccountName().equals(account.name));
    }
}
+7 −2
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@ import android.graphics.PorterDuff;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;

import it.niedermann.owncloud.notes.importaccount.ImportMurenaAccountViewModel;
import trikita.log.Log;
import android.view.View;

@@ -107,6 +109,8 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A
    protected final ExecutorService executor = Executors.newCachedThreadPool();

    protected MainViewModel mainViewModel;

    private ImportMurenaAccountViewModel importMurenaAccountViewModel;
    private CategoryViewModel categoryViewModel;

    private boolean gridView = true;
@@ -142,6 +146,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A
        super.onCreate(savedInstanceState);

        mainViewModel = new ViewModelProvider(this).get(MainViewModel.class);
        importMurenaAccountViewModel = new ViewModelProvider(this).get(ImportMurenaAccountViewModel.class);
        categoryViewModel = new ViewModelProvider(this).get(CategoryViewModel.class);
        CapabilitiesWorker.update(this);
        binding = DrawerLayoutBinding.inflate(getLayoutInflater());
@@ -160,8 +165,8 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A
        setupNavigationList();
        setupNotesList();

        mainViewModel.getAccountsCount().observe(this, (count) -> {
            if (count == 0) {
        mainViewModel.getAccounts$().observe(this, (accounts) -> {
            if (accounts.isEmpty() || importMurenaAccountViewModel.shouldLoadMurenaAccount(accounts)) {
                startActivityForResult(new Intent(this, ImportAccountActivity.class), ImportAccountActivity.REQUEST_CODE_IMPORT_ACCOUNT);
            } else {
                executor.submit(() -> {
+2 −2
Original line number Diff line number Diff line
@@ -603,8 +603,8 @@ public class MainViewModel extends AndroidViewModel {
        return repo.getLocalModifiedNotes(accountId);
    }

    public LiveData<Integer> getAccountsCount() {
        return repo.countAccounts$();
    public LiveData<List<Account>> getAccounts$() {
        return repo.getAccounts$();
    }

    @WorkerThread