34 private final MutableLiveData<List<BookmarkBase>> bookmarks =
35 new MutableLiveData<>(Collections.emptyList());
36 private String currentQuery =
"";
37 private final ExecutorService executor = Executors.newSingleThreadExecutor();
39 private final ManualBookmarkGateway manualBookmarkGateway;
40 private final QuickConnectHistoryGateway quickConnectHistoryGateway;
45 manualBookmarkGateway =
46 new ManualBookmarkGateway(AppDatabase.getInstance(application).bookmarkDao());
47 quickConnectHistoryGateway =
48 new QuickConnectHistoryGateway(HistoryDatabase.getInstance(application).historyDao());
51 public LiveData<List<BookmarkBase>> getBookmarks()
56 public String getCurrentQuery()
61 public void loadBookmarks(String query)
63 currentQuery = query !=
null ? query :
"";
64 executor.execute(() -> {
65 List<BookmarkBase> result =
new ArrayList<>();
66 if (!currentQuery.isEmpty())
68 BookmarkBase qcBm =
new BookmarkBase();
69 qcBm.setType(BookmarkBase.TYPE_QUICKCONNECT);
70 qcBm.setLabel(currentQuery);
71 qcBm.setHostname(currentQuery);
72 qcBm.setDirectConnect(
true);
74 result.addAll(quickConnectHistoryGateway.findHistory(currentQuery));
75 result.addAll(manualBookmarkGateway.findByLabelOrHostnameLike(currentQuery));
79 result.addAll(manualBookmarkGateway.findAll());
81 bookmarks.postValue(result);
85 public void deleteBookmark(
long id)
87 executor.execute(() -> {
88 manualBookmarkGateway.delete(
id);
89 loadBookmarks(currentQuery);
93 @Override
protected void onCleared()