forked from organicmaps/organicmaps
[bookmarks][android] Button More in bookmark items.
This commit is contained in:
parent
0d19235926
commit
30dd936cdd
4 changed files with 63 additions and 49 deletions
|
@ -42,4 +42,19 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@style/MwmTextAppearance.Body3"/>
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@id/more"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:minHeight="@dimen/height_item_edit_bookmark"
|
||||
android:paddingRight="@dimen/margin_base"
|
||||
android:paddingEnd="@dimen/margin_base"
|
||||
android:paddingLeft="@dimen/margin_double"
|
||||
android:paddingStart="@dimen/margin_double"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_alignParentRight="true"
|
||||
android:src="@drawable/ic_more"
|
||||
android:background="?selectableItemBackgroundBorderless"
|
||||
android:tint="?secondary"/>
|
||||
</RelativeLayout>
|
||||
|
|
|
@ -15,7 +15,6 @@ import com.mapswithme.maps.bookmarks.data.BookmarkManager;
|
|||
import com.mapswithme.maps.bookmarks.data.SortedBlock;
|
||||
import com.mapswithme.maps.content.DataSource;
|
||||
import com.mapswithme.maps.widget.recycler.RecyclerClickListener;
|
||||
import com.mapswithme.maps.widget.recycler.RecyclerLongClickListener;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
@ -40,7 +39,7 @@ public class BookmarkListAdapter extends RecyclerView.Adapter<Holders.BaseBookma
|
|||
private SectionsDataSource mSectionsDataSource;
|
||||
|
||||
@Nullable
|
||||
private RecyclerLongClickListener mLongClickListener;
|
||||
private RecyclerClickListener mMoreListener;
|
||||
@Nullable
|
||||
private RecyclerClickListener mClickListener;
|
||||
|
||||
|
@ -404,9 +403,9 @@ public class BookmarkListAdapter extends RecyclerView.Adapter<Holders.BaseBookma
|
|||
mClickListener = listener;
|
||||
}
|
||||
|
||||
void setOnLongClickListener(@Nullable RecyclerLongClickListener listener)
|
||||
void setMoreListener(@Nullable RecyclerClickListener listener)
|
||||
{
|
||||
mLongClickListener = listener;
|
||||
mMoreListener = listener;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -417,12 +416,19 @@ public class BookmarkListAdapter extends RecyclerView.Adapter<Holders.BaseBookma
|
|||
switch (viewType)
|
||||
{
|
||||
case TYPE_TRACK:
|
||||
holder = new Holders.TrackViewHolder(inflater.inflate(R.layout.item_track, parent,
|
||||
false));
|
||||
Holders.TrackViewHolder trackHolder =
|
||||
new Holders.TrackViewHolder(inflater.inflate(R.layout.item_track, parent,
|
||||
false));
|
||||
trackHolder.setOnClickListener(mClickListener);
|
||||
holder = trackHolder;
|
||||
break;
|
||||
case TYPE_BOOKMARK:
|
||||
holder = new Holders.BookmarkViewHolder(inflater.inflate(R.layout.item_bookmark, parent,
|
||||
false));
|
||||
Holders.BookmarkViewHolder bookmarkHolder =
|
||||
new Holders.BookmarkViewHolder(inflater.inflate(R.layout.item_bookmark, parent,
|
||||
false));
|
||||
bookmarkHolder.setOnClickListener(mClickListener);
|
||||
bookmarkHolder.setMoreListener(mMoreListener);
|
||||
holder = bookmarkHolder;
|
||||
break;
|
||||
case TYPE_SECTION:
|
||||
TextView tv = (TextView) inflater.inflate(R.layout.item_category_title, parent, false);
|
||||
|
@ -437,8 +443,6 @@ public class BookmarkListAdapter extends RecyclerView.Adapter<Holders.BaseBookma
|
|||
if (holder == null)
|
||||
throw new AssertionError("Unsupported view type: " + viewType);
|
||||
|
||||
holder.setOnClickListener(mClickListener);
|
||||
holder.setOnLongClickListener(mLongClickListener);
|
||||
return holder;
|
||||
}
|
||||
|
||||
|
|
|
@ -47,9 +47,7 @@ import com.mapswithme.util.sharing.SharingHelper;
|
|||
import com.mapswithme.util.statistics.Statistics;
|
||||
|
||||
public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListAdapter>
|
||||
implements RecyclerLongClickListener,
|
||||
RecyclerClickListener,
|
||||
MenuItem.OnMenuItemClickListener,
|
||||
implements MenuItem.OnMenuItemClickListener,
|
||||
BookmarkManager.BookmarksSharingListener,
|
||||
BookmarkManager.BookmarksSortingListener,
|
||||
NativeBookmarkSearchListener,
|
||||
|
@ -189,24 +187,29 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListA
|
|||
{
|
||||
BookmarkListAdapter adapter = getAdapter();
|
||||
adapter.registerAdapterDataObserver(mCategoryDataSource);
|
||||
adapter.setOnClickListener(this);
|
||||
adapter.setOnLongClickListener(isDownloadedCategory() ? null : this);
|
||||
adapter.setOnClickListener((v, position) ->
|
||||
{
|
||||
onItemClick(position);
|
||||
});
|
||||
if (!isDownloadedCategory())
|
||||
{
|
||||
adapter.setMoreListener((v, position) ->
|
||||
{
|
||||
onMore(position);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void configureFab(@NonNull View view)
|
||||
{
|
||||
mFabViewOnMap = (FloatingActionButton) view.findViewById(R.id.fabViewOnMap);
|
||||
mFabViewOnMap.setOnClickListener(new View.OnClickListener()
|
||||
mFabViewOnMap = view.findViewById(R.id.fabViewOnMap);
|
||||
mFabViewOnMap.setOnClickListener(v ->
|
||||
{
|
||||
@Override
|
||||
public void onClick(View v)
|
||||
{
|
||||
final Intent i = new Intent(getActivity(), MwmActivity.class);
|
||||
i.putExtra(MwmActivity.EXTRA_TASK,
|
||||
new Factory.ShowBookmarkCategoryTask(mCategoryDataSource.getData().getId()));
|
||||
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(i);
|
||||
}
|
||||
final Intent i = new Intent(getActivity(), MwmActivity.class);
|
||||
i.putExtra(MwmActivity.EXTRA_TASK,
|
||||
new Factory.ShowBookmarkCategoryTask(mCategoryDataSource.getData().getId()));
|
||||
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
|
||||
startActivity(i);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -250,8 +253,7 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListA
|
|||
getActivity().invalidateOptionsMenu();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemClick(View v, int position)
|
||||
public void onItemClick(int position)
|
||||
{
|
||||
final Intent i = new Intent(getActivity(), MwmActivity.class);
|
||||
|
||||
|
@ -278,8 +280,7 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<BookmarkListA
|
|||
startActivity(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLongItemClick(View v, int position)
|
||||
public void onMore(int position)
|
||||
{
|
||||
BookmarkListAdapter adapter = getAdapter();
|
||||
|
||||
|
|
|
@ -228,18 +228,6 @@ public class Holders
|
|||
listener.onItemClick(v, getAdapterPosition());
|
||||
});
|
||||
}
|
||||
|
||||
void setOnLongClickListener(@Nullable RecyclerLongClickListener listener)
|
||||
{
|
||||
mView.setOnLongClickListener(v -> onOpenActionMenu(v, listener));
|
||||
}
|
||||
|
||||
boolean onOpenActionMenu(@NonNull View v, @Nullable RecyclerLongClickListener listener)
|
||||
{
|
||||
if (listener != null)
|
||||
listener.onLongItemClick(v, getAdapterPosition());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
static class BookmarkViewHolder extends BaseBookmarkHolder
|
||||
|
@ -250,6 +238,8 @@ public class Holders
|
|||
private final TextView mName;
|
||||
@NonNull
|
||||
private final TextView mDistance;
|
||||
@Nullable
|
||||
private View mMore;
|
||||
|
||||
BookmarkViewHolder(@NonNull View itemView)
|
||||
{
|
||||
|
@ -257,12 +247,7 @@ public class Holders
|
|||
mIcon = itemView.findViewById(R.id.iv__bookmark_color);
|
||||
mName = itemView.findViewById(R.id.tv__bookmark_name);
|
||||
mDistance = itemView.findViewById(R.id.tv__bookmark_distance);
|
||||
}
|
||||
|
||||
@Override
|
||||
void setOnLongClickListener(@Nullable RecyclerLongClickListener listener)
|
||||
{
|
||||
super.setOnLongClickListener(listener);
|
||||
mMore = itemView.findViewById(R.id.more);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -280,13 +265,22 @@ public class Holders
|
|||
mDistance.setText(distanceValue);
|
||||
UiUtils.hideIf(TextUtils.isEmpty(distanceValue), mDistance);
|
||||
mIcon.setImageResource(bookmark.getIcon().getResId());
|
||||
|
||||
UiUtils.hideIf(!sectionsDataSource.isEditable(position.sectionIndex), mMore);
|
||||
Drawable circle = Graphics.drawCircleAndImage(bookmark.getIcon().argb(),
|
||||
R.dimen.track_circle_size,
|
||||
bookmark.getIcon().getResId(),
|
||||
R.dimen.bookmark_icon_size,
|
||||
mIcon.getContext().getResources());
|
||||
mIcon.setImageDrawable(circle);
|
||||
}
|
||||
|
||||
void setMoreListener(@Nullable RecyclerClickListener listener)
|
||||
{
|
||||
mMore.setOnClickListener(v -> {
|
||||
if (listener != null)
|
||||
listener.onItemClick(v, getAdapterPosition());
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
static class TrackViewHolder extends BaseBookmarkHolder
|
||||
|
|
Loading…
Add table
Reference in a new issue