Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit 513cade

Browse files
authored
Update the navigation bar bookmarked flag when bookmarks are updated (#2813)
1 parent 6e949a2 commit 513cade

1 file changed

Lines changed: 36 additions & 3 deletions

File tree

app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/WindowWidget.java

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import org.mozilla.vrbrowser.R;
3939
import org.mozilla.vrbrowser.VRBrowserActivity;
4040
import org.mozilla.vrbrowser.VRBrowserApplication;
41+
import org.mozilla.vrbrowser.browser.BookmarksStore;
4142
import org.mozilla.vrbrowser.browser.Media;
4243
import org.mozilla.vrbrowser.browser.PromptDelegate;
4344
import org.mozilla.vrbrowser.browser.SessionChangeListener;
@@ -173,11 +174,13 @@ private void initialize(Context aContext) {
173174
setupListeners(mSession);
174175

175176
mBookmarksView = new BookmarksView(aContext);
176-
mBookmarksView.addBookmarksListener(mBookmarksListener);
177+
mBookmarksView.addBookmarksListener(mBookmarksViewListener);
177178

178179
mHistoryView = new HistoryView(aContext);
179180
mHistoryView.addHistoryListener(mHistoryListener);
180181

182+
SessionStore.get().getBookmarkStore().addListener(mBookmarksListener);
183+
181184
mHandle = ((WidgetManagerDelegate)aContext).newWidgetHandle();
182185
mWidgetPlacement = new WidgetPlacement(aContext);
183186
mPlacementBeforeFullscreen = new WidgetPlacement(aContext);
@@ -626,6 +629,8 @@ public void setActiveWindow(boolean active) {
626629

627630
} else {
628631
mWidgetManager.getNavigationBar().removeNavigationBarListener(mNavigationBarListener);
632+
updateBookmarked();
633+
629634
}
630635

631636
hideContextMenus();
@@ -917,9 +922,10 @@ public void releaseWidget() {
917922
mTexture.release();
918923
mTexture = null;
919924
}
920-
mBookmarksView.removeBookmarksListener(mBookmarksListener);
925+
mBookmarksView.removeBookmarksListener(mBookmarksViewListener);
921926
mHistoryView.removeHistoryListener(mHistoryListener);
922927
mWidgetManager.getNavigationBar().removeNavigationBarListener(mNavigationBarListener);
928+
SessionStore.get().getBookmarkStore().removeListener(mBookmarksListener);
923929
mPromptDelegate.detachFromWindow();
924930
super.releaseWidget();
925931
}
@@ -1348,7 +1354,7 @@ public void onRemoveFromBookmarks(LibraryMenuWidget.LibraryContextMenuItem item)
13481354
});
13491355
}
13501356

1351-
private BookmarksCallback mBookmarksListener = new BookmarksCallback() {
1357+
private BookmarksCallback mBookmarksViewListener = new BookmarksCallback() {
13521358
@Override
13531359
public void onShowContextMenu(@NonNull View view, @NonNull Bookmark item, boolean isLastVisibleItem) {
13541360
showLibraryItemContextMenu(
@@ -1447,6 +1453,33 @@ public void onHome() {
14471453
}
14481454
};
14491455

1456+
private BookmarksStore.BookmarkListener mBookmarksListener = new BookmarksStore.BookmarkListener() {
1457+
@Override
1458+
public void onBookmarksUpdated() {
1459+
updateBookmarked();
1460+
}
1461+
1462+
@Override
1463+
public void onBookmarkAdded() {
1464+
updateBookmarked();
1465+
}
1466+
};
1467+
1468+
private void updateBookmarked() {
1469+
SessionStore.get().getBookmarkStore().isBookmarked(mViewModel.getUrl().getValue().toString()).thenAcceptAsync(bookmarked -> {
1470+
if (bookmarked) {
1471+
mViewModel.setIsBookmarked(true);
1472+
1473+
} else {
1474+
mViewModel.setIsBookmarked(false);
1475+
}
1476+
}, mUIThreadExecutor).exceptionally(throwable -> {
1477+
Log.d(LOGTAG, "Error checking bookmark: " + throwable.getLocalizedMessage());
1478+
throwable.printStackTrace();
1479+
return null;
1480+
});
1481+
}
1482+
14501483
private void hideContextMenus() {
14511484
if (mContextMenu != null) {
14521485
if (!mContextMenu.isReleased()) {

0 commit comments

Comments
 (0)