30 private final MutableLiveData<List<BookmarkBase>> bookmarks =
31 new MutableLiveData<>(Collections.emptyList());
32 private String currentQuery =
"";
33 private final ExecutorService executor = Executors.newSingleThreadExecutor();
35 private final ManualBookmarkGateway manualBookmarkGateway;
36 private final QuickConnectHistoryGateway quickConnectHistoryGateway;
41 manualBookmarkGateway =
42 new ManualBookmarkGateway(AppDatabase.getInstance(application).bookmarkDao());
43 quickConnectHistoryGateway =
44 new QuickConnectHistoryGateway(HistoryDatabase.getInstance(application).historyDao());
47 public LiveData<List<BookmarkBase>> getBookmarks()
52 public String getCurrentQuery()
57 public void loadBookmarks(String query)
59 currentQuery = query !=
null ? query :
"";
60 executor.execute(() -> {
61 List<BookmarkBase> result =
new ArrayList<>();
62 if (!currentQuery.isEmpty())
64 BookmarkBase qcBm =
new BookmarkBase();
65 qcBm.setType(BookmarkBase.TYPE_QUICKCONNECT);
66 qcBm.setLabel(currentQuery);
67 qcBm.setHostname(currentQuery);
68 qcBm.setDirectConnect(
true);
70 result.addAll(quickConnectHistoryGateway.findHistory(currentQuery));
71 result.addAll(manualBookmarkGateway.findByLabelOrHostnameLike(currentQuery));
75 result.addAll(manualBookmarkGateway.findAll());
77 bookmarks.postValue(result);
81 public void deleteBookmark(
long id)
83 executor.execute(() -> {
84 manualBookmarkGateway.delete(
id);
85 loadBookmarks(currentQuery);
89 @Override
protected void onCleared()