From 1d76536e319e38075ee9407396024f36e4488284 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Tue, 16 Jul 2019 20:35:18 -0700 Subject: [PATCH] Delete PCs by UUID instead of name --- app/src/main/java/com/limelight/PcView.java | 3 ++- .../computers/ComputerDatabaseManager.java | 19 +++---------------- .../computers/ComputerManagerService.java | 10 +++++----- 3 files changed, 10 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/com/limelight/PcView.java b/app/src/main/java/com/limelight/PcView.java index c38b0406..a0f81a73 100644 --- a/app/src/main/java/com/limelight/PcView.java +++ b/app/src/main/java/com/limelight/PcView.java @@ -585,7 +585,6 @@ public class PcView extends Activity implements AdapterFragmentCallbacks { Toast.makeText(PcView.this, getResources().getString(R.string.error_manager_not_running), Toast.LENGTH_LONG).show(); return; } - managerBinder.removeComputer(computer.details.name); removeComputer(computer.details); } }, null); @@ -630,6 +629,8 @@ public class PcView extends Activity implements AdapterFragmentCallbacks { } private void removeComputer(ComputerDetails details) { + managerBinder.removeComputer(details); + for (int i = 0; i < pcGridAdapter.getCount(); i++) { ComputerObject computer = (ComputerObject) pcGridAdapter.getItem(i); diff --git a/app/src/main/java/com/limelight/computers/ComputerDatabaseManager.java b/app/src/main/java/com/limelight/computers/ComputerDatabaseManager.java index 515f9220..fbd736ca 100644 --- a/app/src/main/java/com/limelight/computers/ComputerDatabaseManager.java +++ b/app/src/main/java/com/limelight/computers/ComputerDatabaseManager.java @@ -65,8 +65,8 @@ public class ComputerDatabaseManager { } } - public void deleteComputer(String name) { - computerDb.delete(COMPUTER_TABLE_NAME, COMPUTER_NAME_COLUMN_NAME+"=?", new String[]{name}); + public void deleteComputer(ComputerDetails details) { + computerDb.delete(COMPUTER_TABLE_NAME, COMPUTER_UUID_COLUMN_NAME+"=?", new String[]{details.uuid}); } public boolean updateComputer(ComputerDetails details) { @@ -140,14 +140,7 @@ public class ComputerDatabaseManager { Cursor c = computerDb.rawQuery("SELECT * FROM "+COMPUTER_TABLE_NAME, null); LinkedList computerList = new LinkedList<>(); while (c.moveToNext()) { - ComputerDetails details = getComputerFromCursor(c); - - // If a critical field is corrupt or missing, skip the database entry - if (details.uuid == null) { - continue; - } - - computerList.add(details); + computerList.add(getComputerFromCursor(c)); } c.close(); @@ -166,12 +159,6 @@ public class ComputerDatabaseManager { ComputerDetails details = getComputerFromCursor(c); c.close(); - // If a critical field is corrupt or missing, delete the database entry - if (details.uuid == null) { - deleteComputer(details.name); - return null; - } - return details; } } diff --git a/app/src/main/java/com/limelight/computers/ComputerManagerService.java b/app/src/main/java/com/limelight/computers/ComputerManagerService.java index 8a3a0088..2a15ea9d 100644 --- a/app/src/main/java/com/limelight/computers/ComputerManagerService.java +++ b/app/src/main/java/com/limelight/computers/ComputerManagerService.java @@ -225,8 +225,8 @@ public class ComputerManagerService extends Service { return ComputerManagerService.this.addComputerBlocking(fakeDetails); } - public void removeComputer(String name) { - ComputerManagerService.this.removeComputer(name); + public void removeComputer(ComputerDetails computer) { + ComputerManagerService.this.removeComputer(computer); } public void stopPolling() { @@ -402,18 +402,18 @@ public class ComputerManagerService extends Service { } } - public void removeComputer(String name) { + public void removeComputer(ComputerDetails computer) { if (!getLocalDatabaseReference()) { return; } // Remove it from the database - dbManager.deleteComputer(name); + dbManager.deleteComputer(computer); synchronized (pollingTuples) { // Remove the computer from the computer list for (PollingTuple tuple : pollingTuples) { - if (tuple.computer.name.equals(name)) { + if (tuple.computer.uuid.equals(computer.uuid)) { if (tuple.thread != null) { // Interrupt the thread on this entry tuple.thread.interrupt();