mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-26 06:22:45 +00:00
83 lines
2.5 KiB
Java
83 lines
2.5 KiB
Java
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;
|
|
}
|
|
}
|