Search in sources :

Example 1 with TravelGpxVH

use of net.osmand.plus.wikivoyage.explore.travelcards.TravelGpxCard.TravelGpxVH in project Osmand by osmandapp.

the class SavedArticlesRvAdapter method onBindViewHolder.

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position) {
    if (viewHolder instanceof HeaderVH) {
        final HeaderVH holder = (HeaderVH) viewHolder;
        holder.title.setText((String) getItem(position));
        holder.description.setText(String.valueOf(items.size() - 1));
    } else if (viewHolder instanceof ItemVH) {
        final ItemVH holder = (ItemVH) viewHolder;
        TravelArticle article = (TravelArticle) getItem(position);
        final String url = TravelArticle.getImageUrl(article.getImageTitle(), false);
        Boolean loaded = picasso.isURLLoaded(url);
        boolean lastItem = position == getItemCount() - 1;
        RequestCreator rc = Picasso.get().load(url);
        WikivoyageUtils.setupNetworkPolicy(settings, rc);
        rc.transform(new CropCircleTransformation()).into(holder.icon, new Callback() {

            @Override
            public void onSuccess() {
                holder.icon.setVisibility(View.VISIBLE);
                picasso.setResultLoaded(url, true);
            }

            @Override
            public void onError(Exception e) {
                holder.icon.setVisibility(View.GONE);
                picasso.setResultLoaded(url, false);
            }
        });
        holder.icon.setVisibility(loaded == null || loaded.booleanValue() ? View.VISIBLE : View.GONE);
        holder.title.setText(article.getTitle());
        holder.content.setText(WikiArticleHelper.getPartialContent(article.getContent()));
        holder.partOf.setText(article.getGeoDescription());
        holder.leftButton.setText(app.getString(R.string.shared_string_read));
        holder.leftButton.setCompoundDrawablesWithIntrinsicBounds(readIcon, null, null, null);
        holder.rightButton.setText(app.getString(R.string.shared_string_remove));
        holder.rightButton.setCompoundDrawablesWithIntrinsicBounds(null, null, deleteIcon, null);
        holder.divider.setVisibility(lastItem ? View.GONE : View.VISIBLE);
        holder.shadow.setVisibility(lastItem ? View.VISIBLE : View.GONE);
    } else if (viewHolder instanceof TravelGpxVH) {
        final TravelGpx article = (TravelGpx) getItem(position);
        final TravelGpxVH holder = (TravelGpxVH) viewHolder;
        holder.title.setText(article.getTitle());
        holder.userIcon.setImageDrawable(getActiveIcon(R.drawable.ic_action_user_account_16));
        holder.user.setText(article.user);
        String activityTypeKey = article.activityType;
        if (!Algorithms.isEmpty(activityTypeKey)) {
            RouteActivityType activityType = RouteActivityType.getOrCreateTypeFromName(activityTypeKey);
            int activityTypeIcon = getActivityTypeIcon(activityType);
            holder.activityTypeIcon.setImageDrawable(getActiveIcon(activityTypeIcon));
            holder.activityType.setText(getActivityTypeTitle(activityType));
            holder.activityTypeLabel.setVisibility(View.VISIBLE);
        }
        holder.distance.setText(OsmAndFormatter.getFormattedDistance(article.totalDistance, app));
        holder.diffElevationUp.setText(OsmAndFormatter.getFormattedAlt(article.diffElevationUp, app));
        holder.diffElevationDown.setText(OsmAndFormatter.getFormattedAlt(article.diffElevationDown, app));
        holder.leftButton.setText(app.getString(R.string.shared_string_view));
        View.OnClickListener readClickListener = new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (listener != null) {
                    listener.openArticle(article);
                }
            }
        };
        holder.leftButton.setOnClickListener(readClickListener);
        holder.itemView.setOnClickListener(readClickListener);
        holder.leftButton.setCompoundDrawablesWithIntrinsicBounds(readIcon, null, null, null);
        updateSaveButton(holder, article);
    }
}
Also used : TravelGpx(net.osmand.plus.wikivoyage.data.TravelGpx) ImageView(android.widget.ImageView) View(android.view.View) RecyclerView(androidx.recyclerview.widget.RecyclerView) TextView(android.widget.TextView) RequestCreator(com.squareup.picasso.RequestCreator) TravelGpxVH(net.osmand.plus.wikivoyage.explore.travelcards.TravelGpxCard.TravelGpxVH) Callback(com.squareup.picasso.Callback) RouteActivityType(net.osmand.osm.RouteActivityType) TravelArticle(net.osmand.plus.wikivoyage.data.TravelArticle) CropCircleTransformation(net.osmand.plus.widgets.tools.CropCircleTransformation)

Aggregations

View (android.view.View)1 ImageView (android.widget.ImageView)1 TextView (android.widget.TextView)1 RecyclerView (androidx.recyclerview.widget.RecyclerView)1 Callback (com.squareup.picasso.Callback)1 RequestCreator (com.squareup.picasso.RequestCreator)1 RouteActivityType (net.osmand.osm.RouteActivityType)1 CropCircleTransformation (net.osmand.plus.widgets.tools.CropCircleTransformation)1 TravelArticle (net.osmand.plus.wikivoyage.data.TravelArticle)1 TravelGpx (net.osmand.plus.wikivoyage.data.TravelGpx)1 TravelGpxVH (net.osmand.plus.wikivoyage.explore.travelcards.TravelGpxCard.TravelGpxVH)1