diff --git a/app/src/main/java/com/limelight/PcView.java b/app/src/main/java/com/limelight/PcView.java index c280f1ab..ec4233eb 100644 --- a/app/src/main/java/com/limelight/PcView.java +++ b/app/src/main/java/com/limelight/PcView.java @@ -540,10 +540,10 @@ public class PcView extends Activity { else { // Add a new entry pcGridAdapter.addComputer(new ComputerObject(details)); - - // Notify the view that the data has changed - pcGridAdapter.notifyDataSetChanged(); } + + // Notify the view that the data has changed + pcGridAdapter.notifyDataSetChanged(); } public class ComputerObject { diff --git a/app/src/main/java/com/limelight/grid/AppGridAdapter.java b/app/src/main/java/com/limelight/grid/AppGridAdapter.java index b12a9315..4a3a280c 100644 --- a/app/src/main/java/com/limelight/grid/AppGridAdapter.java +++ b/app/src/main/java/com/limelight/grid/AppGridAdapter.java @@ -152,4 +152,16 @@ public class AppGridAdapter extends GenericGridAdapter { // Return false to use the app's toString method return false; } + + @Override + public boolean populateOverlayView(ImageView overlayView, AppView.AppObject obj) { + if (obj.app.getIsRunning()) { + // Show the play button overlay + overlayView.setImageResource(R.drawable.play); + return true; + } + + // No overlay + return false; + } } diff --git a/app/src/main/java/com/limelight/grid/GenericGridAdapter.java b/app/src/main/java/com/limelight/grid/GenericGridAdapter.java index ba2bf1db..adaaa368 100644 --- a/app/src/main/java/com/limelight/grid/GenericGridAdapter.java +++ b/app/src/main/java/com/limelight/grid/GenericGridAdapter.java @@ -49,6 +49,7 @@ public abstract class GenericGridAdapter extends BaseAdapter { public abstract boolean populateImageView(ImageView imgView, T obj); public abstract boolean populateTextView(TextView txtView, T obj); + public abstract boolean populateOverlayView(ImageView overlayView, T obj); @Override public View getView(int i, View convertView, ViewGroup viewGroup) { @@ -57,6 +58,7 @@ public abstract class GenericGridAdapter extends BaseAdapter { } ImageView imgView = (ImageView) convertView.findViewById(R.id.grid_image); + ImageView overlayView = (ImageView) convertView.findViewById(R.id.grid_overlay); TextView txtView = (TextView) convertView.findViewById(R.id.grid_text); if (!populateImageView(imgView, itemList.get(i))) { @@ -65,6 +67,12 @@ public abstract class GenericGridAdapter extends BaseAdapter { if (!populateTextView(txtView, itemList.get(i))) { txtView.setText(itemList.get(i).toString()); } + if (!populateOverlayView(overlayView, itemList.get(i))) { + overlayView.setVisibility(View.INVISIBLE); + } + else { + overlayView.setVisibility(View.VISIBLE); + } return convertView; } diff --git a/app/src/main/java/com/limelight/grid/PcGridAdapter.java b/app/src/main/java/com/limelight/grid/PcGridAdapter.java index 0811560d..5a25247e 100644 --- a/app/src/main/java/com/limelight/grid/PcGridAdapter.java +++ b/app/src/main/java/com/limelight/grid/PcGridAdapter.java @@ -6,6 +6,7 @@ import android.widget.TextView; import com.limelight.PcView; import com.limelight.R; +import com.limelight.nvstream.http.ComputerDetails; public class PcGridAdapter extends GenericGridAdapter { @@ -23,13 +24,32 @@ public class PcGridAdapter extends GenericGridAdapter { @Override public boolean populateImageView(ImageView imgView, PcView.ComputerObject obj) { + if (obj.details.reachability != ComputerDetails.Reachability.OFFLINE) { + imgView.setAlpha(1.0f); + } + else { + imgView.setAlpha(0.4f); + } + // Return false to use the default drawable return false; } @Override public boolean populateTextView(TextView txtView, PcView.ComputerObject obj) { + if (obj.details.reachability != ComputerDetails.Reachability.OFFLINE) { + 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) { + return false; + } } diff --git a/app/src/main/res/drawable/play.png b/app/src/main/res/drawable/play.png new file mode 100644 index 00000000..d03e6e6e Binary files /dev/null and b/app/src/main/res/drawable/play.png differ diff --git a/app/src/main/res/layout/app_grid_item.xml b/app/src/main/res/layout/app_grid_item.xml index 57754ad2..9449f07d 100644 --- a/app/src/main/res/layout/app_grid_item.xml +++ b/app/src/main/res/layout/app_grid_item.xml @@ -3,17 +3,29 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="30dp"> - - + + + + + + - - + + + + + +