From be4f30e4c81c9631d9a6306ee2017d26ed62785b Mon Sep 17 00:00:00 2001 From: Manuel Martin Date: Wed, 4 Sep 2019 19:22:21 +0200 Subject: [PATCH] Fix item not being set before the menu measure is called (#1768) --- .../org/mozilla/vrbrowser/ui/adapters/BookmarkAdapter.java | 2 +- .../org/mozilla/vrbrowser/ui/views/BookmarksView.java | 5 ++++- .../shared/org/mozilla/vrbrowser/ui/views/HistoryView.java | 3 ++- .../mozilla/vrbrowser/ui/views/LibraryItemContextMenu.java | 6 +++++- .../org/mozilla/vrbrowser/ui/widgets/WindowWidget.java | 2 +- .../ui/widgets/dialogs/LibraryItemContextMenuWidget.java | 1 - 6 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/BookmarkAdapter.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/BookmarkAdapter.java index 41815821d..bae424d7e 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/BookmarkAdapter.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/adapters/BookmarkAdapter.java @@ -104,7 +104,7 @@ public int itemCount() { public int getItemPosition(String id) { for (int position=0; position { - mBinding.setItem(item); mBinding.setIsBookmarked(isBookmarked); mBinding.bookmark.setText(isBookmarked ? R.string.history_context_remove_bookmarks : R.string.history_context_add_bookmarks); invalidate(); @@ -96,6 +96,10 @@ public void setContextMenuClickCallback(LibraryItemContextMenuClickCallback call } public int getMenuHeight() { + if (mBinding.getItem() == null) { + throw new IllegalStateException("setItem must be called before getMenuHeight"); + + } switch (mBinding.getItem().getType()) { case BOOKMARKS: mBinding.bookmarkLayout.setVisibility(GONE); diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/WindowWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/WindowWidget.java index 24d63c838..fced5e0b0 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/WindowWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/WindowWidget.java @@ -1148,6 +1148,7 @@ private void showLibraryItemContextMenu(@NotNull View view, LibraryItemContextMe offsetDescendantRectToMyCoords(view, offsetViewBounds); mLibraryItemContextMenu = new LibraryItemContextMenuWidget(getContext()); + mLibraryItemContextMenu.setItem(item); mLibraryItemContextMenu.mWidgetPlacement.parentHandle = getHandle(); PointF position; @@ -1165,7 +1166,6 @@ private void showLibraryItemContextMenu(@NotNull View view, LibraryItemContextMe } mLibraryItemContextMenu.setPosition(position); - mLibraryItemContextMenu.setItem(item); mLibraryItemContextMenu.setHistoryContextMenuItemCallback((new LibraryItemContextMenuClickCallback() { @Override public void onOpenInNewWindowClick(LibraryItemContextMenu.LibraryContextMenuItem item) { diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/LibraryItemContextMenuWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/LibraryItemContextMenuWidget.java index 9de3aac87..b0d890c81 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/LibraryItemContextMenuWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/LibraryItemContextMenuWidget.java @@ -26,7 +26,6 @@ public class LibraryItemContextMenuWidget extends UIWidget implements WidgetMana private LibraryItemContextMenu mContextMenu; private int mMaxHeight; private PointF mTranslation; - private int height; public LibraryItemContextMenuWidget(Context aContext) { super(aContext);