From 94b1c04fa6fa02817dad8bd144a83942177ee16e Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 7 Nov 2014 00:27:58 -0800 Subject: [PATCH] GridView WIP --- app/src/main/java/com/limelight/PcView.java | 91 ++++++------------ .../limelight/grid/GenericGridAdapter.java | 67 +++++++++++++ .../com/limelight/grid/PcGridAdapter.java | 35 +++++++ app/src/main/res/drawable/computer.png | Bin 0 -> 47381 bytes .../res/drawable/list_view_unselected.xml | 7 -- .../main/res/layout-land/activity_pc_view.xml | 30 ++---- .../main/res/layout-port/activity_pc_view.xml | 34 ++----- app/src/main/res/layout/activity_app_view.xml | 1 - app/src/main/res/layout/generic_grid_item.xml | 21 ++++ app/src/main/res/layout/simplerow.xml | 15 --- app/src/main/res/values/strings.xml | 4 +- 11 files changed, 171 insertions(+), 134 deletions(-) create mode 100644 app/src/main/java/com/limelight/grid/GenericGridAdapter.java create mode 100644 app/src/main/java/com/limelight/grid/PcGridAdapter.java create mode 100644 app/src/main/res/drawable/computer.png delete mode 100644 app/src/main/res/drawable/list_view_unselected.xml create mode 100644 app/src/main/res/layout/generic_grid_item.xml delete mode 100644 app/src/main/res/layout/simplerow.xml diff --git a/app/src/main/java/com/limelight/PcView.java b/app/src/main/java/com/limelight/PcView.java index 0683dce6..395fa58b 100644 --- a/app/src/main/java/com/limelight/PcView.java +++ b/app/src/main/java/com/limelight/PcView.java @@ -9,6 +9,7 @@ import com.limelight.binding.PlatformBinding; import com.limelight.binding.crypto.AndroidCryptoProvider; import com.limelight.computers.ComputerManagerListener; import com.limelight.computers.ComputerManagerService; +import com.limelight.grid.PcGridAdapter; import com.limelight.nvstream.http.ComputerDetails; import com.limelight.nvstream.http.NvHTTP; import com.limelight.nvstream.http.PairingManager; @@ -36,16 +37,15 @@ import android.view.ContextMenu.ContextMenuInfo; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; -import android.widget.ArrayAdapter; import android.widget.Button; -import android.widget.ListView; +import android.widget.GridView; import android.widget.Toast; import android.widget.AdapterView.AdapterContextMenuInfo; public class PcView extends Activity { private Button settingsButton, addComputerButton; - private ListView pcList; - private ArrayAdapter pcListAdapter; + private GridView pcGrid; + private PcGridAdapter pcGridAdapter; private ComputerManagerService.ComputerManagerBinder managerBinder; private boolean freezeUpdates, runningPolling; private ServiceConnection serviceConnection = new ServiceConnection() { @@ -102,14 +102,13 @@ public class PcView extends Activity { settingsButton = (Button)findViewById(R.id.settingsButton); addComputerButton = (Button)findViewById(R.id.manuallyAddPc); - pcList = (ListView)findViewById(R.id.pcListView); - pcList.setAdapter(pcListAdapter); - pcList.setItemsCanFocus(true); - pcList.setOnItemClickListener(new OnItemClickListener() { + pcGrid = (GridView)findViewById(R.id.pcGridView); + pcGrid.setAdapter(pcGridAdapter); + pcGrid.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView arg0, View arg1, int pos, long id) { - ComputerObject computer = pcListAdapter.getItem(pos); + ComputerObject computer = (ComputerObject) pcGridAdapter.getItem(pos); if (computer.details == null) { // Placeholder item; no context menu for it return; @@ -127,7 +126,7 @@ public class PcView extends Activity { } } }); - registerForContextMenu(pcList); + registerForContextMenu(pcGrid); settingsButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -142,11 +141,11 @@ public class PcView extends Activity { } }); - if (pcListAdapter.isEmpty()) { + if (pcGridAdapter.isEmpty()) { addListPlaceholder(); } else { - pcListAdapter.notifyDataSetChanged(); + pcGridAdapter.notifyDataSetChanged(); } } @@ -157,9 +156,8 @@ public class PcView extends Activity { // Bind to the computer manager service bindService(new Intent(PcView.this, ComputerManagerService.class), serviceConnection, Service.BIND_AUTO_CREATE); - - pcListAdapter = new ArrayAdapter(this, R.layout.simplerow, R.id.rowTextView); - pcListAdapter.setNotifyOnChange(false); + + pcGridAdapter = new PcGridAdapter(this); initializeViews(); } @@ -244,7 +242,7 @@ public class PcView extends Activity { super.onCreateContextMenu(menu, v, menuInfo); AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; - ComputerObject computer = pcListAdapter.getItem(info.position); + ComputerObject computer = (ComputerObject) pcGridAdapter.getItem(info.position); if (computer == null || computer.details == null) { startComputerUpdates(); return; @@ -485,7 +483,7 @@ public class PcView extends Activity { @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); - ComputerObject computer = pcListAdapter.getItem(info.position); + ComputerObject computer = (ComputerObject) pcGridAdapter.getItem(info.position); switch (item.getItemId()) { case PAIR_ID: @@ -518,65 +516,33 @@ public class PcView extends Activity { return super.onContextItemSelected(item); } } - - private static String generateString(ComputerDetails details) { - StringBuilder str = new StringBuilder(); - str.append(details.name).append(" - "); - if (details.state == ComputerDetails.State.ONLINE) { - str.append("Online "); - if (details.reachability == ComputerDetails.Reachability.LOCAL) { - str.append("(Local) - "); - } - else { - str.append("(Remote) - "); - } - if (details.pairState == PairState.PAIRED) { - if (details.runningGameId == 0) { - str.append("Available"); - } - else { - str.append("In Game"); - } - } - else { - str.append("Not Paired"); - } - } - else { - str.append("Offline"); - } - return str.toString(); - } private void addListPlaceholder() { - pcListAdapter.add(new ComputerObject("Discovery is running. No computers found yet. " + - "If your PC doesn't show up in about 15 seconds, " + - "make sure your computer is running GFE or add your PC manually using the button above.", null)); + } private void removeListView(ComputerDetails details) { - for (int i = 0; i < pcListAdapter.getCount(); i++) { - ComputerObject computer = pcListAdapter.getItem(i); + for (int i = 0; i < pcGridAdapter.getCount(); i++) { + ComputerObject computer = (ComputerObject) pcGridAdapter.getItem(i); if (details.equals(computer.details)) { - pcListAdapter.remove(computer); + pcGridAdapter.removeComputer(computer); break; } } - if (pcListAdapter.getCount() == 0) { + if (pcGridAdapter.getCount() == 0) { // Add the placeholder if we're down to 0 computers addListPlaceholder(); } } private void updateListView(ComputerDetails details) { - String computerString = generateString(details); ComputerObject existingEntry = null; boolean placeholderPresent = false; - for (int i = 0; i < pcListAdapter.getCount(); i++) { - ComputerObject computer = pcListAdapter.getItem(i); + for (int i = 0; i < pcGridAdapter.getCount(); i++) { + ComputerObject computer = (ComputerObject) pcGridAdapter.getItem(i); // If there's a placeholder, there's nothing else if (computer.details == null) { @@ -593,35 +559,32 @@ public class PcView extends Activity { if (existingEntry != null) { // Replace the information in the existing entry - existingEntry.text = computerString; existingEntry.details = details; } else { // If the placeholder is the only object, remove it if (placeholderPresent) { - pcListAdapter.remove(pcListAdapter.getItem(0)); + pcGridAdapter.removeComputer((ComputerObject) pcGridAdapter.getItem(0)); } // Add a new entry - pcListAdapter.add(new ComputerObject(computerString, details)); + pcGridAdapter.addComputer(new ComputerObject(details)); } // Notify the view that the data has changed - pcListAdapter.notifyDataSetChanged(); + pcGridAdapter.notifyDataSetChanged(); } public class ComputerObject { - public String text; public ComputerDetails details; - public ComputerObject(String text, ComputerDetails details) { - this.text = text; + public ComputerObject(ComputerDetails details) { this.details = details; } @Override public String toString() { - return text; + return details.name; } } } diff --git a/app/src/main/java/com/limelight/grid/GenericGridAdapter.java b/app/src/main/java/com/limelight/grid/GenericGridAdapter.java new file mode 100644 index 00000000..c8d2a219 --- /dev/null +++ b/app/src/main/java/com/limelight/grid/GenericGridAdapter.java @@ -0,0 +1,67 @@ +package com.limelight.grid; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.ImageView; +import android.widget.TextView; + +import com.limelight.PcView; +import com.limelight.R; + +import java.util.ArrayList; + +public abstract class GenericGridAdapter extends BaseAdapter { + protected Context context; + protected int defaultImageRes; + protected int layoutId; + protected ArrayList itemList = new ArrayList(); + protected LayoutInflater inflater; + + public GenericGridAdapter(Context context, int layoutId, int defaultImageRes) { + this.context = context; + this.layoutId = layoutId; + this.defaultImageRes = defaultImageRes; + + this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + } + + @Override + public int getCount() { + return itemList.size(); + } + + @Override + public Object getItem(int i) { + return itemList.get(i); + } + + @Override + public long getItemId(int i) { + return i; + } + + public abstract boolean populateImageView(ImageView imgView, T obj); + public abstract boolean populateTextView(TextView txtView, T obj); + + @Override + public View getView(int i, View convertView, ViewGroup viewGroup) { + if (convertView == null) { + convertView = inflater.inflate(layoutId, null); + } + + ImageView imgView = (ImageView) convertView.findViewById(R.id.grid_image); + TextView txtView = (TextView) convertView.findViewById(R.id.grid_text); + + if (!populateImageView(imgView, itemList.get(i))) { + imgView.setImageResource(defaultImageRes); + } + if (!populateTextView(txtView, itemList.get(i))) { + txtView.setText(itemList.get(i).toString()); + } + + return convertView; + } +} diff --git a/app/src/main/java/com/limelight/grid/PcGridAdapter.java b/app/src/main/java/com/limelight/grid/PcGridAdapter.java new file mode 100644 index 00000000..a87a5b12 --- /dev/null +++ b/app/src/main/java/com/limelight/grid/PcGridAdapter.java @@ -0,0 +1,35 @@ +package com.limelight.grid; + +import android.content.Context; +import android.widget.ImageView; +import android.widget.TextView; + +import com.limelight.PcView; +import com.limelight.R; + +public class PcGridAdapter extends GenericGridAdapter { + + public PcGridAdapter(Context context) { + super(context, R.layout.generic_grid_item, R.drawable.computer); + } + + public void addComputer(PcView.ComputerObject computer) { + itemList.add(computer); + } + + public boolean removeComputer(PcView.ComputerObject computer) { + return itemList.remove(computer); + } + + @Override + public boolean populateImageView(ImageView imgView, PcView.ComputerObject obj) { + // Return false to use the default drawable + return false; + } + + @Override + public boolean populateTextView(TextView txtView, PcView.ComputerObject obj) { + // Return false to use the computer's toString method + return false; + } +} diff --git a/app/src/main/res/drawable/computer.png b/app/src/main/res/drawable/computer.png new file mode 100644 index 0000000000000000000000000000000000000000..c92475dae358a6e3c09a970473efbb50a6274b5a GIT binary patch literal 47381 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

*Pved#Vx1W+_Bne=lQ_p`Xz?jqfT#gL6`Dy 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/list_view_unselected.xml b/app/src/main/res/drawable/list_view_unselected.xml deleted file mode 100644 index 5150c083..00000000 --- a/app/src/main/res/drawable/list_view_unselected.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - diff --git a/app/src/main/res/layout-land/activity_pc_view.xml b/app/src/main/res/layout-land/activity_pc_view.xml index 8c7b4df4..7f9cbdc8 100644 --- a/app/src/main/res/layout-land/activity_pc_view.xml +++ b/app/src/main/res/layout-land/activity_pc_view.xml @@ -8,35 +8,23 @@ android:paddingTop="@dimen/activity_vertical_margin" tools:context=".PcView" > - - - - - + android:layout_below="@+id/settingsButton"/>