Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2021-04-08 17:31:20 +0300
committerStefan Niedermann <info@niedermann.it>2021-04-08 17:31:20 +0300
commit38bb26e356865a92b5cb4ef6067eff7853ace54f (patch)
treed0c267e70eb986522c35cc989360ca8b366e1d37 /app/src/main
parentff2bc1f288b0c10a882c7f40ebe3a2c435ef4684 (diff)
Refactor getIdMap
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java16
-rw-r--r--app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/AccountDao.java26
2 files changed, 19 insertions, 23 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java
index 3673c082..b84b3b46 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesDatabase.java
@@ -32,7 +32,6 @@ import org.json.JSONException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -79,6 +78,7 @@ import static it.niedermann.owncloud.notes.edit.EditNoteActivity.ACTION_SHORTCUT
import static it.niedermann.owncloud.notes.shared.util.NoteUtil.generateNoteExcerpt;
import static it.niedermann.owncloud.notes.widget.notelist.NoteListWidget.updateNoteListWidgets;
import static it.niedermann.owncloud.notes.widget.singlenote.SingleNoteWidget.updateSingleNoteWidgets;
+import static java.util.stream.Collectors.toMap;
@Database(
entities = {
@@ -215,15 +215,19 @@ public abstract class NotesDatabase extends RoomDatabase {
});
}
+ /**
+ * @return a {@link Map} of remote IDs as keys and local IDs as values of all {@link Note}s of
+ * the given {@param accountId} which are note {@link DBStatus#LOCAL_DELETED}
+ */
@NonNull
@WorkerThread
public Map<Long, Long> getIdMap(long accountId) {
validateAccountId(accountId);
- Map<Long, Long> result = new HashMap<>();
- for (Note pair : getNoteDao().getRemoteIdAndId(accountId)) {
- result.put(pair.getRemoteId(), pair.getId());
- }
- return result;
+ return getNoteDao()
+ .getRemoteIdAndId(accountId)
+ .stream()
+ .filter(note -> note.getRemoteId() != null)
+ .collect(toMap(Note::getRemoteId, Note::getId));
}
@AnyThread
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/AccountDao.java b/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/AccountDao.java
index 0fe6f768..b0828717 100644
--- a/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/AccountDao.java
+++ b/app/src/main/java/it/niedermann/owncloud/notes/persistence/dao/AccountDao.java
@@ -20,10 +20,14 @@ public interface AccountDao {
@Delete
int deleteAccount(Account localAccount);
- String getAccountById = "SELECT * FROM Account WHERE ID = :accountId";
- String getAccountByName = "SELECT * FROM Account WHERE ACCOUNTNAME = :accountName";
String getAccounts = "SELECT * FROM Account";
- String countAccounts = "SELECT COUNT(*) FROM Account";
+ String getAccountById = "SELECT * FROM Account WHERE ID = :accountId";
+
+ @Query(getAccounts)
+ LiveData<List<Account>> getAccounts$();
+
+ @Query(getAccounts)
+ List<Account> getAccounts();
@Query(getAccountById)
LiveData<Account> getAccountById$(long accountId);
@@ -31,24 +35,12 @@ public interface AccountDao {
@Query(getAccountById)
Account getAccountById(long accountId);
- @Query(getAccountByName)
- LiveData<Account> getAccountByName$(String accountName);
-
- @Query(getAccountByName)
+ @Query("SELECT * FROM Account WHERE ACCOUNTNAME = :accountName")
Account getAccountByName(String accountName);
- @Query(getAccounts)
- LiveData<List<Account>> getAccounts$();
-
- @Query(getAccounts)
- List<Account> getAccounts();
-
- @Query(countAccounts)
+ @Query("SELECT COUNT(*) FROM Account")
LiveData<Integer> countAccounts$();
- @Query(countAccounts)
- Integer countAccounts();
-
@Query("UPDATE Account SET COLOR = :color, TEXTCOLOR = :textColor WHERE id = :id")
void updateBrand(long id, @ColorInt Integer color, @ColorInt Integer textColor);