Skip to content

Instantly share code, notes, and snippets.

@cliffgr
Created April 12, 2017 14:54
Show Gist options
  • Save cliffgr/f13dddd332b7e3c90352e8c0940a006f to your computer and use it in GitHub Desktop.
Save cliffgr/f13dddd332b7e3c90352e8c0940a006f to your computer and use it in GitHub Desktop.
Line 152
package wizzo.mbc.net.adapters;
import android.content.Context;
import android.content.res.Resources;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import java.util.List;
import wizzo.mbc.net.Configuration;
import wizzo.mbc.net.R;
import wizzo.mbc.net.fragments.ApplicationsFragment;
import wizzo.mbc.net.model.Application;
import wizzo.mbc.net.utils.AppHelper;
public class ApplicationsAdapter extends RecyclerView.Adapter<ApplicationsAdapter.ViewHolder> {
public static final String TAG_PURCHASE = "PURCHASE";
public static final String TAG_LEVELCOMPLETE = "LEVELCOMPLETE";
public static final String TAG_ACHIEVEMENT = "ACHIEVEMENT";
public static final String TAG_GAMEPLAYTIME = "GAMEPLAYTIME";
private Context mContext;
private List<Application> mApplications;
private ApplicationsFragment.Listener mListener;
public ApplicationsAdapter(Context ctx, ApplicationsFragment.Listener listener, List<Application> applications) {
this.mContext = ctx;
this.mApplications = applications;
this.mListener = listener;
}
@Override
public int getItemCount() {
return mApplications.size();
}
@Override
public int getItemViewType(int position) {
return R.layout.list_item_application;
}
@Override
public ApplicationsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ApplicationsAdapter.ViewHolder(LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false),mListener);
}
@Override
public void onBindViewHolder(final ApplicationsAdapter.ViewHolder holder, final int position) {
holder.bindData(mApplications.get(position),mContext);
}
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
private ViewGroup mPointsViewGroup;
private TextView mOpenPointsTextView;
private ViewGroup mActionViewGroup;
private TextView mActionTextView;
private ImageView mIconImageView;
private TextView mPointsTextView;
private ImageView mLevelCompleteImageView;
private ImageView mAchievementImageView;
private ImageView mPurchaseImageView;
private ImageView mGamePlayImageView;
private TextView mNameTextView;
private TextView mPublisherTextView;
private ApplicationsFragment.Listener mListener;
public ViewHolder(View view,ApplicationsFragment.Listener mListener) {
super(view);
this.mListener=mListener;
mNameTextView = (TextView) view.findViewById(R.id.nameTextView);
mPublisherTextView = (TextView) view.findViewById(R.id.publisherTextView);
mIconImageView = (ImageView) view.findViewById(R.id.iconImageView);
mLevelCompleteImageView = (ImageView) view.findViewById(R.id.levelCompleteImageView);
mAchievementImageView = (ImageView) view.findViewById(R.id.achievementImageView);
mPurchaseImageView = (ImageView) view.findViewById(R.id.purchaseImageView);
mGamePlayImageView = (ImageView) view.findViewById(R.id.gamePlayImageView);
mActionTextView = (TextView) view.findViewById(R.id.actionTextView);
mPointsTextView = (TextView) view.findViewById(R.id.pointsTextView);
mOpenPointsTextView = (TextView) view.findViewById(R.id.openPointsTextView);
mPointsViewGroup = (ViewGroup) view.findViewById(R.id.pointsViewGroup);
mActionViewGroup = (ViewGroup) view.findViewById(R.id.actionViewGroup);
mActionViewGroup.setOnClickListener(this);
}
public void bindData(final Application application, Context ctx) {
Resources resources = ctx.getResources();
mNameTextView.setText(AppHelper.getName(application));
mPublisherTextView.setText(application.getPublisher());
if (application.isInstalled()) {
mPointsViewGroup.setVisibility(View.GONE);
} else {
mPointsTextView.setText(resources.getString(R.string.plus_char) + application.getPoints() + " " + resources.getString(R.string.label2_pts));
mPointsViewGroup.setVisibility(View.VISIBLE);
}
// Actions
List<String> actions = application.getActions();
mLevelCompleteImageView.setVisibility(View.GONE);
mAchievementImageView.setVisibility(View.GONE);
mPurchaseImageView.setVisibility(View.GONE);
mGamePlayImageView.setVisibility(View.GONE);
if (actions != null && actions.size() > 0) {
if (actions.contains(TAG_LEVELCOMPLETE)) {
mLevelCompleteImageView.setVisibility(View.VISIBLE);
}
if (actions.contains(TAG_ACHIEVEMENT)) {
mAchievementImageView.setVisibility(View.VISIBLE);
}
if (actions.contains(TAG_PURCHASE)) {
mPurchaseImageView.setVisibility(View.VISIBLE);
}
if (actions.contains(TAG_GAMEPLAYTIME)) {
mGamePlayImageView.setVisibility(View.VISIBLE);
}
}
// Action
mOpenPointsTextView.setVisibility(View.GONE);
if (application.isInstalled()) {
if (application.getOpenPoints() > 0) {
mActionTextView.setCompoundDrawablesWithIntrinsicBounds(null, ContextCompat.getDrawable(ctx, R.drawable.selector_open_today_btn), null, null);
mActionTextView.setText(R.string.label_open_Caps);
mOpenPointsTextView.setVisibility(View.VISIBLE);
mOpenPointsTextView.setText(resources.getString(R.string.plus_char) + application.getOpenPoints() + resources.getString(R.string.label2_pts));
} else {
mActionTextView.setCompoundDrawablesWithIntrinsicBounds(null, ContextCompat.getDrawable(ctx, R.drawable.ic_open), null, null);
mActionTextView.setText(R.string.label_open_Caps);
}
} else {
mActionTextView.setCompoundDrawablesWithIntrinsicBounds(null, ContextCompat.getDrawable(ctx, R.drawable.ic_install), null, null);
mActionTextView.setText(R.string.label_install_Caps);
}
// Application icon
Picasso.with(ctx)
.load(Configuration.BASE_URL_IMAGE + application.getIcon())
.into(mIconImageView);
}
@Override
public void onClick(View v) {
mListener.onActionClicked(application);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment