forked from organicmaps/organicmaps
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:
parent
a30a5c9aef
commit
1bc61d9280
4 changed files with 54 additions and 2 deletions
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
Loading…
Add table
Reference in a new issue