Android Open Source - protohipster Feed Adapter






From Project

Back to project page protohipster.

License

The source code is released under:

Apache License

If you think the Android project protohipster listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.flipper83.protohipster.feed.view.ui;
/*from w w w .  j a va2 s .  c o  m*/
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.beardedhen.androidbootstrap.FontAwesomeText;
import com.flipper83.protohipster.R;
import com.flipper83.protohipster.feed.view.viewmodel.HipsterViewModel;
import com.flipper83.protohipster.uibase.transformation.TransformationBuilder;
import com.squareup.picasso.Picasso;

import java.util.List;

/**
 *
 */
public class FeedAdapter extends BaseAdapter {
    private static final int NUM_STARS = 5;
    private static final String ICON_HEART_FILL = "fa-heart";
    private static final String ICON_HEART_EMPTY = "fa-heart-o";
    private final Context context;
    private final Picasso picasso;
    private final TransformationBuilder transformationBuilder;
    private List<HipsterViewModel> feed;

    public FeedAdapter(Context context, List<HipsterViewModel> feed, Picasso picasso,
                       TransformationBuilder transformationBuilder) {
        this.context = context;
        this.feed = feed;
        this.picasso = picasso;
        this.transformationBuilder = transformationBuilder;
    }

    @Override
    public int getCount() {
        return feed.size();
    }

    @Override
    public Object getItem(int i) {
        return feed.get(i);
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup viewGroup) {
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.item_feed, viewGroup, false);
        }

        TextView name = (TextView) convertView.findViewById(R.id.hipster_name);
        ImageView ivAvatar = (ImageView) convertView.findViewById(R.id.hipster_avatar);
        FontAwesomeText iconLikedByMe = (FontAwesomeText) convertView.findViewById(R.id.b_heart);
        FontAwesomeText icons[] = obtainIcons(convertView);

        HipsterViewModel hipsterViewModel = feed.get(position);

        name.setText(hipsterViewModel.getName());

        String iconLiked = (hipsterViewModel.isLikedByMe())?ICON_HEART_FILL:ICON_HEART_EMPTY;
        iconLikedByMe.setIcon(iconLiked);

        //set stars
        for (int i = 0; i < NUM_STARS; i++) {

            if (i < hipsterViewModel.getRating()) {
                icons[i].setIcon(ICON_HEART_FILL);
            } else {
                icons[i].setIcon(ICON_HEART_EMPTY);
            }
        }

        if (!hipsterViewModel.getUrlAvatar().isEmpty()) {
            picasso.load(hipsterViewModel.getUrlAvatar())
                    .centerCrop()
                    .fit()
                    .transform(transformationBuilder.createAvatarTransformation())
                    .into(ivAvatar);
        }


        return convertView;
    }

    private FontAwesomeText[] obtainIcons(View convertView) {
        FontAwesomeText[] returnIcons = new FontAwesomeText[NUM_STARS];

        returnIcons[0] = (FontAwesomeText) convertView.findViewById(R.id.star1);
        returnIcons[1] = (FontAwesomeText) convertView.findViewById(R.id.star2);
        returnIcons[2] = (FontAwesomeText) convertView.findViewById(R.id.star3);
        returnIcons[3] = (FontAwesomeText) convertView.findViewById(R.id.star4);
        returnIcons[4] = (FontAwesomeText) convertView.findViewById(R.id.star5);

        return returnIcons;
    }
}




Java Source Code List

com.flipper83.protohipster.daggerUtils.ForApplication.java
com.flipper83.protohipster.feed.datasource.api.Api.java
com.flipper83.protohipster.feed.datasource.api.call.ApiCall.java
com.flipper83.protohipster.feed.datasource.api.call.parse.GetLikesCall.java
com.flipper83.protohipster.feed.datasource.api.call.parse.LikeUserCall.java
com.flipper83.protohipster.feed.datasource.api.call.parse.ParseLikeTableDefinitions.java
com.flipper83.protohipster.feed.datasource.api.call.parse.response.GetLikesResponse.java
com.flipper83.protohipster.feed.datasource.api.call.rest.ApiRestCall.java
com.flipper83.protohipster.feed.datasource.api.call.rest.GetFeedCall.java
com.flipper83.protohipster.feed.datasource.api.call.rest.request.GetFeedRequest.java
com.flipper83.protohipster.feed.datasource.api.call.rest.response.GetFeedResponse.java
com.flipper83.protohipster.feed.datasource.api.callback.ApiResponseCallback.java
com.flipper83.protohipster.feed.datasource.api.model.UserApiEntry.java
com.flipper83.protohipster.feed.datasource.api.model.UserApiName.java
com.flipper83.protohipster.feed.datasource.api.model.UserApi.java
com.flipper83.protohipster.feed.datasource.interfaces.LikeDataSource.java
com.flipper83.protohipster.feed.datasource.interfaces.UserDataSource.java
com.flipper83.protohipster.feed.datasource.interfaces.callbacks.GetCountLikesCallback.java
com.flipper83.protohipster.feed.datasource.interfaces.callbacks.GetMyLikersCallback.java
com.flipper83.protohipster.feed.datasource.interfaces.callbacks.GetUserCallback.java
com.flipper83.protohipster.feed.datasource.interfaces.callbacks.LikeUserCallback.java
com.flipper83.protohipster.feed.datasource.module.DataSourceModule.java
com.flipper83.protohipster.feed.datasource.module.LikeDataSourceParse.java
com.flipper83.protohipster.feed.datasource.module.UserDataSourceImp.java
com.flipper83.protohipster.feed.datasource.module.api.ApiParse.java
com.flipper83.protohipster.feed.datasource.module.api.ApiRest.java
com.flipper83.protohipster.feed.domain.boundaries.FeedBoundary.java
com.flipper83.protohipster.feed.domain.boundaries.HipsterBoundary.java
com.flipper83.protohipster.feed.domain.boundaries.VotesBoundary.java
com.flipper83.protohipster.feed.domain.gateway.Hipster.java
com.flipper83.protohipster.feed.domain.interactors.GetFeed.java
com.flipper83.protohipster.feed.domain.interactors.GetMyLikers.java
com.flipper83.protohipster.feed.domain.interactors.LikeHipster.java
com.flipper83.protohipster.feed.domain.mappers.HipsterMapperManual.java
com.flipper83.protohipster.feed.domain.mappers.HipsterMapper.java
com.flipper83.protohipster.feed.domain.module.DomainModule.java
com.flipper83.protohipster.feed.domain.module.GetFeedImpl.java
com.flipper83.protohipster.feed.domain.module.GetMyLikersImpl.java
com.flipper83.protohipster.feed.domain.module.LikeHipsterImp.java
com.flipper83.protohipster.feed.view.module.FeedViewModule.java
com.flipper83.protohipster.feed.view.provider.FeedProvider.java
com.flipper83.protohipster.feed.view.ui.FeedAdapter.java
com.flipper83.protohipster.feed.view.ui.HipsterListFragment.java
com.flipper83.protohipster.feed.view.ui.ProtoActivity.java
com.flipper83.protohipster.feed.view.viewmodel.FeedViewModel.java
com.flipper83.protohipster.feed.view.viewmodel.HipsterViewModel.java
com.flipper83.protohipster.feed.view.viewmodel.mapper.HipsterViewMapperManual.java
com.flipper83.protohipster.feed.view.viewmodel.mapper.HipsterViewMapper.java
com.flipper83.protohipster.globalutils.cache.Cache.java
com.flipper83.protohipster.globalutils.cache.implementations.MapKeysCache.java
com.flipper83.protohipster.globalutils.interfaces.Logger.java
com.flipper83.protohipster.globalutils.module.AndroidModule.java
com.flipper83.protohipster.globalutils.module.GlobalModule.java
com.flipper83.protohipster.globalutils.module.LoggerProvider.java
com.flipper83.protohipster.globalutils.module.TLog.java
com.flipper83.protohipster.globalutils.rating.RatingCalculatorFiveStars.java
com.flipper83.protohipster.globalutils.rating.RatingCalculator.java
com.flipper83.protohipster.uibase.app.ProtoApplication.java
com.flipper83.protohipster.uibase.base.BaseActivity.java
com.flipper83.protohipster.uibase.base.BaseFragment.java
com.flipper83.protohipster.uibase.transformation.TransformationBuilder.java
com.flipper83.protohipster.uibase.transformation.privates.RoundAvatarTransformation.java
com.flipper83.protohipster.uibase.transformation.privates.TransformationBuilderPicasso.java