package com.limelight.grid; import android.content.Context; import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; import com.limelight.PcView; import com.limelight.R; import com.limelight.nvstream.http.ComputerDetails; import java.util.Collections; import java.util.Comparator; public class PcGridAdapter extends GenericGridAdapter<PcView.ComputerObject> { public PcGridAdapter(Context context, boolean listMode, boolean small) { super(context, listMode ? R.layout.simple_row : (small ? R.layout.pc_grid_item_small : R.layout.pc_grid_item)); } public void addComputer(PcView.ComputerObject computer) { itemList.add(computer); sortList(); } private void sortList() { Collections.sort(itemList, new Comparator<PcView.ComputerObject>() { @Override public int compare(PcView.ComputerObject lhs, PcView.ComputerObject rhs) { return lhs.details.name.toLowerCase().compareTo(rhs.details.name.toLowerCase()); } }); } public boolean removeComputer(PcView.ComputerObject computer) { return itemList.remove(computer); } @Override public boolean populateImageView(ImageView imgView, ProgressBar prgView, PcView.ComputerObject obj) { if (obj.details.state == ComputerDetails.State.ONLINE) { imgView.setAlpha(1.0f); } else { imgView.setAlpha(0.4f); } if (obj.details.reachability == ComputerDetails.Reachability.UNKNOWN) { prgView.setVisibility(View.VISIBLE); } else { prgView.setVisibility(View.INVISIBLE); } imgView.setImageResource(R.drawable.ic_computer); return true; } @Override public boolean populateTextView(TextView txtView, PcView.ComputerObject obj) { if (obj.details.state == ComputerDetails.State.ONLINE) { txtView.setAlpha(1.0f); } else { txtView.setAlpha(0.4f); } // Return false to use the computer's toString method return false; } @Override public boolean populateOverlayView(ImageView overlayView, PcView.ComputerObject obj) { if (obj.details.state == ComputerDetails.State.OFFLINE) { overlayView.setImageResource(R.drawable.ic_pc_offline); overlayView.setAlpha(0.4f); return true; } return false; } }