From 41e0919c6f7a2adaaa1949efa976ecc1529e0c16 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Fri, 6 Dec 2013 15:29:22 +1100 Subject: [PATCH] Removed TODO, reimplemented delete repo. --- TODO-BEFORE-MERGE.md | 9 -------- src/org/fdroid/fdroid/ManageRepo.java | 30 ++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 10 deletions(-) delete mode 100644 TODO-BEFORE-MERGE.md diff --git a/TODO-BEFORE-MERGE.md b/TODO-BEFORE-MERGE.md deleted file mode 100644 index 4c2b00d75..000000000 --- a/TODO-BEFORE-MERGE.md +++ /dev/null @@ -1,9 +0,0 @@ -Highlight repo list items on check - -Implement add/delete actions - -Only allow delete when multiple items are selected (disable edit action) - -Change text view to Delete repositories if multiple selected? - -Create view to show repository details? Maybe this is for a subsequent patch... diff --git a/src/org/fdroid/fdroid/ManageRepo.java b/src/org/fdroid/fdroid/ManageRepo.java index 5a688d482..c888a1958 100644 --- a/src/org/fdroid/fdroid/ManageRepo.java +++ b/src/org/fdroid/fdroid/ManageRepo.java @@ -186,13 +186,41 @@ public class ManageRepo extends ListActivity { boolean wasChanged = data.getBooleanExtra(RepoDetailsActivity.ACTION_IS_CHANGED, false); if (wasDeleted) { - refreshList(); + int repoId = data.getIntExtra(RepoDetailsActivity.DATA_REPO_ID, 0); + remove(repoId); } else if (wasEnabled || wasDisabled || wasChanged) { changed = true; } } } + private DB.Repo getRepoById(int repoId) { + for (int i = 0; i < getListAdapter().getCount(); i ++) { + DB.Repo repo = (DB.Repo)getListAdapter().getItem(i); + if (repo.id == repoId) { + return repo; + } + } + return null; + } + + private void remove(int repoId) { + DB.Repo repo = getRepoById(repoId); + if (repo == null) { + return; + } + + List reposToRemove = new ArrayList(1); + reposToRemove.add(repo); + try { + DB db = DB.getDB(); + db.doDisableRepos(reposToRemove, true); + } finally { + DB.releaseDB(); + } + refreshList(); + } + protected List getRepos() { List repos = null; try {