Android Open Source - TechDissected Credits Library Adapter






From Project

Back to project page TechDissected.

License

The source code is released under:

Apache License

If you think the Android project TechDissected 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.pkmmte.techdissected.adapter;
/*from   w w  w.j a  va 2s .  c  o m*/
import android.content.Context;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.pkmmte.techdissected.R;
import com.pkmmte.techdissected.model.CreditsLibraryItem;
import com.pkmmte.techdissected.util.RoundTransform;
import com.pkmmte.view.CircularImageView;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
import java.util.List;

public class CreditsLibraryAdapter extends BaseAdapter {
  private Context mContext;
  private List<CreditsLibraryItem> mLibraries;
  private onAvatarClickListener mListener;
  
  public CreditsLibraryAdapter(Context context) {
    this(context, new ArrayList<CreditsLibraryItem>());
  }
  
  public CreditsLibraryAdapter(Context context, List<CreditsLibraryItem> libraries) {
    this.mContext = context;
    this.mLibraries = libraries;
  }
  
  public void addItem(CreditsLibraryItem library)
  {
    this.mLibraries.add(library);
  }
  
  public void setOnAvatarClickListener(onAvatarClickListener listener)
  {
    this.mListener = listener;
  }

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

  @Override
  public CreditsLibraryItem getItem(int position)
  {
    return mLibraries.get(position);
  }

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

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    final CreditsLibraryItem mLibrary = mLibraries.get(position);
    ViewHolder holder;
    
    if (convertView == null) {
      LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      convertView = mInflater.inflate(R.layout.dialog_libraries, parent, false);
      
      holder = new ViewHolder();
      holder.mCard = (RelativeLayout) convertView.findViewById(R.id.Card);
      holder.imgAvatar = (CircularImageView) convertView.findViewById(R.id.imgAvatar);
      holder.txtTitle = (TextView) convertView.findViewById(R.id.txtTitle);
      holder.txtAuthor = (TextView) convertView.findViewById(R.id.txtAuthor);
      holder.txtLicense = (TextView) convertView.findViewById(R.id.txtLicense);
      holder.btnExpCol = (ImageView) convertView.findViewById(R.id.btnExpCol);
      
      convertView.setTag(holder);
    }
    else {
      holder = (ViewHolder) convertView.getTag();
    }
    
    holder.mCard.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        mLibrary.setExpanded(!mLibrary.isExpanded());
        notifyDataSetChanged();
      }
    });
    
    Picasso.with(mContext).load(mLibrary.getAvatar()).error(R.drawable.dev_avatar).transform(new RoundTransform(0, 0)).into(holder.imgAvatar);
    holder.imgAvatar.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if(mListener != null) {
          mListener.onClick(mLibrary.getLink());
        }
      }
    });
    
    holder.txtTitle.setText(mLibrary.getTitle());
    holder.txtAuthor.setText(mLibrary.getAuthor());
    holder.txtLicense.setText(mLibrary.getLicense());
    
    holder.txtLicense.setVisibility(mLibrary.isExpanded() ? View.VISIBLE : View.GONE);
    holder.btnExpCol.setImageResource(mLibrary.isExpanded() ? R.drawable.ic_up : R.drawable.ic_down);
    
    return convertView;
  }
  
  private class ViewHolder {
    public RelativeLayout mCard;
    public CircularImageView imgAvatar;
    public TextView txtTitle;
    public TextView txtAuthor;
    public TextView txtLicense;
    public ImageView btnExpCol;
  }
  
  public interface onAvatarClickListener {
    void onClick(Uri link);
  }
}




Java Source Code List

com.pkmmte.techdissected.ApplicationTest.java
com.pkmmte.techdissected.activity.ArticleActivity.java
com.pkmmte.techdissected.activity.MainActivity.java
com.pkmmte.techdissected.activity.SearchActivity.java
com.pkmmte.techdissected.adapter.AuthorAdapter.java
com.pkmmte.techdissected.adapter.CreditsLibraryAdapter.java
com.pkmmte.techdissected.adapter.FeedAdapter.java
com.pkmmte.techdissected.adapter.NavDrawerAdapter.java
com.pkmmte.techdissected.adapter.SettingsAdapter.java
com.pkmmte.techdissected.fragment.AboutFragment.java
com.pkmmte.techdissected.fragment.ArticleFragment.java
com.pkmmte.techdissected.fragment.FavoritesFragment.java
com.pkmmte.techdissected.fragment.FeedFragment.java
com.pkmmte.techdissected.fragment.SettingsFragment.java
com.pkmmte.techdissected.model.Author.java
com.pkmmte.techdissected.model.CreditsLibraryItem.java
com.pkmmte.techdissected.model.ListBuilder.java
com.pkmmte.techdissected.model.SettingsItem.java
com.pkmmte.techdissected.util.Base64DecoderException.java
com.pkmmte.techdissected.util.Base64.java
com.pkmmte.techdissected.util.Constants.java
com.pkmmte.techdissected.util.Dialogs.java
com.pkmmte.techdissected.util.IabException.java
com.pkmmte.techdissected.util.IabHelper.java
com.pkmmte.techdissected.util.IabResult.java
com.pkmmte.techdissected.util.Inventory.java
com.pkmmte.techdissected.util.Purchase.java
com.pkmmte.techdissected.util.RoundTransform.java
com.pkmmte.techdissected.util.Security.java
com.pkmmte.techdissected.util.SkuDetails.java
com.pkmmte.techdissected.util.Utils.java
com.pkmmte.techdissected.view.BakedBezierInterpolator.java
com.pkmmte.techdissected.view.CustomShareActionProvider.java
com.pkmmte.techdissected.view.FlowLayout.java
com.pkmmte.techdissected.view.HeaderGridView.java
com.pkmmte.techdissected.view.PkDrawerLayout.java
com.pkmmte.techdissected.view.PkScrollView.java
com.pkmmte.techdissected.view.PkSwipeRefreshLayout.java
com.pkmmte.techdissected.view.StickyScrollView.java
com.pkmmte.techdissected.view.SwipeProgressBar.java