44 private final MutableLiveData<ConnectionState> state =
46 private long registeredInstance = 0;
48 private final ExecutorService executor = Executors.newSingleThreadExecutor();
49 private final Handler mainHandler =
new Handler(Looper.getMainLooper());
50 private final ManualBookmarkGateway manualBookmarkGateway;
51 private final QuickConnectHistoryGateway quickConnectHistoryGateway;
56 manualBookmarkGateway =
57 new ManualBookmarkGateway(AppDatabase.getInstance(application).bookmarkDao());
58 quickConnectHistoryGateway =
59 new QuickConnectHistoryGateway(HistoryDatabase.getInstance(application).historyDao());
62 public LiveData<ConnectionState> getState()
67 public void register(
long instance)
70 registeredInstance = instance;
71 state.setValue(ConnectionState.CONNECTING);
72 GlobalApp.registerSessionListener(instance,
new GlobalApp.SessionEventListener() {
73 @Override public void onConnectionSuccess()
75 state.setValue(ConnectionState.CONNECTED);
78 @Override
public void onConnectionFailure()
80 state.setValue(ConnectionState.FAILED);
83 @Override
public void onDisconnected()
85 state.setValue(ConnectionState.DISCONNECTED);
90 public void unregister()
92 if (registeredInstance != 0)
94 GlobalApp.unregisterSessionListener(registeredInstance);
95 registeredInstance = 0;
104 executor.execute(() -> {
105 final BookmarkBase bookmark = manualBookmarkGateway.findById(bookmarkId);
106 mainHandler.post(() -> callback.accept(bookmark));
115 executor.execute(() -> {
116 if (!quickConnectHistoryGateway.historyItemExists(hostname))
117 quickConnectHistoryGateway.addHistoryItem(hostname);
121 @Override
protected void onCleared()