From 61262fa939c7655d9e50a20bd515f5e7113d7c7c Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 10 Jun 2020 22:13:02 -0700 Subject: [PATCH] Refactor grid adapters for new grid UI --- .../com/limelight/grid/AppGridAdapter.java | 22 ++++++----------- .../limelight/grid/GenericGridAdapter.java | 21 ++-------------- .../com/limelight/grid/PcGridAdapter.java | 24 +++++++------------ 3 files changed, 17 insertions(+), 50 deletions(-) diff --git a/app/src/main/java/com/limelight/grid/AppGridAdapter.java b/app/src/main/java/com/limelight/grid/AppGridAdapter.java index daba5fba..3b732cf2 100644 --- a/app/src/main/java/com/limelight/grid/AppGridAdapter.java +++ b/app/src/main/java/com/limelight/grid/AppGridAdapter.java @@ -2,6 +2,7 @@ package com.limelight.grid; import android.content.Context; import android.graphics.BitmapFactory; +import android.view.View; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; @@ -113,30 +114,21 @@ public class AppGridAdapter extends GenericGridAdapter { } @Override - public boolean populateImageView(ImageView imgView, ProgressBar prgView, AppView.AppObject obj) { + public void populateView(ImageView imgView, ProgressBar prgView, TextView txtView, ImageView overlayView, AppView.AppObject obj) { // Let the cached asset loader handle it loader.populateImageView(obj.app, imgView, prgView); - return true; - } - @Override - public boolean populateTextView(TextView txtView, AppView.AppObject obj) { // Select the text view so it starts marquee mode txtView.setSelected(true); + txtView.setText(obj.app.getAppName()); - // Return false to use the app's toString method - return false; - } - - @Override - public boolean populateOverlayView(ImageView overlayView, AppView.AppObject obj) { if (obj.isRunning) { // Show the play button overlay overlayView.setImageResource(R.drawable.ic_play); - return true; + overlayView.setVisibility(View.VISIBLE); + } + else { + overlayView.setVisibility(View.GONE); } - - // 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 fa5c1ff6..cb0c58ff 100644 --- a/app/src/main/java/com/limelight/grid/GenericGridAdapter.java +++ b/app/src/main/java/com/limelight/grid/GenericGridAdapter.java @@ -55,9 +55,7 @@ public abstract class GenericGridAdapter extends BaseAdapter { return i; } - public abstract boolean populateImageView(ImageView imgView, ProgressBar prgView, T obj); - public abstract boolean populateTextView(TextView txtView, T obj); - public abstract boolean populateOverlayView(ImageView overlayView, T obj); + public abstract void populateView(ImageView imgView, ProgressBar prgView, TextView txtView, ImageView overlayView, T obj); @Override public View getView(int i, View convertView, ViewGroup viewGroup) { @@ -70,22 +68,7 @@ public abstract class GenericGridAdapter extends BaseAdapter { TextView txtView = convertView.findViewById(R.id.grid_text); ProgressBar prgView = convertView.findViewById(R.id.grid_spinner); - if (imgView != null) { - if (!populateImageView(imgView, prgView, itemList.get(i))) { - imgView.setImageBitmap(null); - } - } - if (!populateTextView(txtView, itemList.get(i))) { - txtView.setText(itemList.get(i).toString()); - } - if (overlayView != null) { - if (!populateOverlayView(overlayView, itemList.get(i))) { - overlayView.setVisibility(View.INVISIBLE); - } - else { - overlayView.setVisibility(View.VISIBLE); - } - } + populateView(imgView, prgView, txtView, overlayView, itemList.get(i)); 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 04e63239..9eceee77 100644 --- a/app/src/main/java/com/limelight/grid/PcGridAdapter.java +++ b/app/src/main/java/com/limelight/grid/PcGridAdapter.java @@ -57,7 +57,8 @@ public class PcGridAdapter extends GenericGridAdapter { } @Override - public boolean populateImageView(ImageView imgView, ProgressBar prgView, PcView.ComputerObject obj) { + public void populateView(ImageView imgView, ProgressBar prgView, TextView txtView, ImageView overlayView, PcView.ComputerObject obj) { + imgView.setImageResource(R.drawable.ic_computer); if (obj.details.state == ComputerDetails.State.ONLINE) { imgView.setAlpha(1.0f); } @@ -72,12 +73,7 @@ public class PcGridAdapter extends GenericGridAdapter { prgView.setVisibility(View.INVISIBLE); } - imgView.setImageResource(R.drawable.ic_computer); - return true; - } - - @Override - public boolean populateTextView(TextView txtView, PcView.ComputerObject obj) { + txtView.setText(obj.details.name); if (obj.details.state == ComputerDetails.State.ONLINE) { txtView.setAlpha(1.0f); } @@ -85,16 +81,10 @@ public class PcGridAdapter extends GenericGridAdapter { 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; + overlayView.setVisibility(View.VISIBLE); } // We must check if the status is exactly online and unpaired // to avoid colliding with the loading spinner when status is unknown @@ -102,8 +92,10 @@ public class PcGridAdapter extends GenericGridAdapter { obj.details.pairState == PairingManager.PairState.NOT_PAIRED) { overlayView.setImageResource(R.drawable.ic_lock); overlayView.setAlpha(1.0f); - return true; + overlayView.setVisibility(View.VISIBLE); + } + else { + overlayView.setVisibility(View.GONE); } - return false; } }