connect bookmark more button to context menu

Signed-off-by: Sean Connelly seanconn256@protonmail.com
Signed-off-by: Sean Connelly <seanconn256@protonmail.com>
This commit is contained in:
Sean 2021-07-22 18:59:31 -04:00 committed by Viktor Govako
parent a30a5c9aef
commit 1bc61d9280
4 changed files with 54 additions and 2 deletions

View file

@ -31,6 +31,8 @@ public class BookmarkCategoriesAdapter extends BaseBookmarkCategoryAdapter<Recyc
@Nullable
private OnItemClickListener<BookmarkCategory> mClickListener;
@Nullable
private OnItemMoreClickListener<BookmarkCategory> mMoreClickListener;
@Nullable
private CategoryListCallback mCategoryListCallback;
@NonNull
private final MassOperationAction mMassOperationAction = new MassOperationAction();
@ -45,6 +47,11 @@ public class BookmarkCategoriesAdapter extends BaseBookmarkCategoryAdapter<Recyc
mClickListener = listener;
}
public void setOnMoreClickListener(@Nullable OnItemMoreClickListener<BookmarkCategory> listener)
{
mMoreClickListener = listener;
}
void setOnLongClickListener(@Nullable OnItemLongClickListener<BookmarkCategory> listener)
{
mLongClickListener = listener;
@ -119,8 +126,10 @@ public class BookmarkCategoriesAdapter extends BaseBookmarkCategoryAdapter<Recyc
categoryHolder.setName(category.getName());
bindSize(categoryHolder, category);
categoryHolder.setVisibilityState(category.isVisible());
ToggleVisibilityClickListener listener = new ToggleVisibilityClickListener(categoryHolder);
categoryHolder.setVisibilityListener(listener);
ToggleVisibilityClickListener visibilityListener = new ToggleVisibilityClickListener(categoryHolder);
categoryHolder.setVisibilityListener(visibilityListener);
CategoryItemMoreClickListener moreClickListener = new CategoryItemMoreClickListener(categoryHolder);
categoryHolder.setMoreButtonClickListener(moreClickListener);
break;
}
case TYPE_ACTION_ADD:
@ -230,6 +239,23 @@ public class BookmarkCategoriesAdapter extends BaseBookmarkCategoryAdapter<Recyc
notifyDataSetChanged();
}
}
private class CategoryItemMoreClickListener implements View.OnClickListener
{
@NonNull
private final CategoryViewHolder mHolder;
CategoryItemMoreClickListener(@NonNull CategoryViewHolder holder)
{
mHolder = holder;
}
@Override
public void onClick(View v)
{
if (mMoreClickListener != null)
mMoreClickListener.onItemMoreClick(v, mHolder.getEntity());
}
}
private class CategoryItemClickListener implements View.OnClickListener
{

View file

@ -50,6 +50,7 @@ public class BookmarkCategoriesFragment extends BaseMwmRecyclerFragment<Bookmark
BookmarkManager.BookmarksLoadingListener,
CategoryListCallback,
OnItemClickListener<BookmarkCategory>,
OnItemMoreClickListener<BookmarkCategory>,
OnItemLongClickListener<BookmarkCategory>, BookmarkManager.BookmarksSharingListener
{
@ -94,6 +95,7 @@ public class BookmarkCategoriesFragment extends BaseMwmRecyclerFragment<Bookmark
onPrepareControllers(view);
getAdapter().setOnClickListener(this);
getAdapter().setOnLongClickListener(this);
getAdapter().setOnMoreClickListener(this);
getAdapter().setCategoryListCallback(this);
RecyclerView rw = getRecyclerView();
@ -344,6 +346,12 @@ public class BookmarkCategoriesFragment extends BaseMwmRecyclerFragment<Bookmark
showBottomMenu(category);
}
public void onItemMoreClick(@NonNull View v, @NonNull BookmarkCategory category)
{
showBottomMenu(category);
}
static void setEnableForMenuItem(@IdRes int id, @NonNull BottomSheet bottomSheet,
boolean enable)
{

View file

@ -231,6 +231,8 @@ public class Holders
@NonNull
CheckBox mVisibilityMarker;
@NonNull
ImageView mMoreButton;
@NonNull
TextView mSize;
@Nullable
private BookmarkCategory mEntity;
@ -240,6 +242,7 @@ public class Holders
super(root);
mName = root.findViewById(R.id.name);
mVisibilityMarker = root.findViewById(R.id.checkbox);
mMoreButton = root.findViewById(R.id.more);
int left = root.getResources().getDimensionPixelOffset(R.dimen.margin_half_plus);
int right = root.getResources().getDimensionPixelOffset(R.dimen.margin_base_plus);
UiUtils.expandTouchAreaForView(mVisibilityMarker, 0, left, 0, right);
@ -256,6 +259,11 @@ public class Holders
mVisibilityMarker.setOnClickListener(listener);
}
void setMoreButtonClickListener(@Nullable View.OnClickListener listener)
{
mMoreButton.setOnClickListener(listener);
}
void setName(@NonNull String name)
{
mName.setText(name);

View file

@ -0,0 +1,10 @@
package com.mapswithme.maps.bookmarks;
import android.view.View;
import androidx.annotation.NonNull;
public interface OnItemMoreClickListener<T>
{
void onItemMoreClick(@NonNull View v, @NonNull T item);
}