From 6a18ba1b8551edd298777eb13812d70230aa6c7a Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 20 Feb 2019 22:20:05 +0100 Subject: [PATCH] RepoDetails: hide mirror lists if they are not useful e.g., empty lists or the official mirror list just repeating the canonical URL. --- .../fdroid/views/RepoDetailsActivity.java | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java b/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java index 10f39964b..55846ac36 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java +++ b/app/src/main/java/org/fdroid/fdroid/views/RepoDetailsActivity.java @@ -336,18 +336,36 @@ public class RepoDetailsActivity extends AppCompatActivity { } private void updateRepoView() { + TextView officialMirrorsLabel = repoView.findViewById(R.id.label_official_mirrors); + RecyclerView officialMirrorList = repoView.findViewById(R.id.official_mirror_list); + if ((repo.mirrors != null && repo.mirrors.length > 1) + || (repo.userMirrors != null && repo.userMirrors.length > 0)) { + // don't show this if there is only the canonical URL available, and no other mirrors + officialMirrorsLabel.setVisibility(View.VISIBLE); + officialMirrorList.setVisibility(View.VISIBLE); + } else { + officialMirrorsLabel.setVisibility(View.GONE); + officialMirrorList.setVisibility(View.GONE); + } + + TextView userMirrorsLabel = repoView.findViewById(R.id.label_user_mirrors); + RecyclerView userMirrorList = repoView.findViewById(R.id.user_mirror_list); + if (repo.userMirrors != null && repo.userMirrors.length > 0) { + userMirrorsLabel.setVisibility(View.VISIBLE); + userMirrorList.setVisibility(View.VISIBLE); + } else { + userMirrorsLabel.setVisibility(View.GONE); + userMirrorList.setVisibility(View.GONE); + } + if (repo.hasBeenUpdated()) { updateViewForExistingRepo(repoView); } else { - updateViewForNewRepo(repoView); + setMultipleViewVisibility(repoView, HIDE_IF_EXISTS, View.VISIBLE); + setMultipleViewVisibility(repoView, SHOW_IF_EXISTS, View.GONE); } } - private void updateViewForNewRepo(View repoView) { - setMultipleViewVisibility(repoView, HIDE_IF_EXISTS, View.VISIBLE); - setMultipleViewVisibility(repoView, SHOW_IF_EXISTS, View.GONE); - } - private void updateViewForExistingRepo(View repoView) { setMultipleViewVisibility(repoView, SHOW_IF_EXISTS, View.VISIBLE); setMultipleViewVisibility(repoView, HIDE_IF_EXISTS, View.GONE); @@ -356,19 +374,6 @@ public class RepoDetailsActivity extends AppCompatActivity { TextView numApps = repoView.findViewById(R.id.text_num_apps); TextView lastUpdated = repoView.findViewById(R.id.text_last_update); - if (repo.mirrors != null) { - TextView officialMirrorsLabel = repoView.findViewById(R.id.label_official_mirrors); - officialMirrorsLabel.setVisibility(View.VISIBLE); - RecyclerView officialMirrorList = repoView.findViewById(R.id.official_mirror_list); - officialMirrorList.setVisibility(View.VISIBLE); - } - if (repo.userMirrors != null) { - TextView userMirrorsLabel = repoView.findViewById(R.id.label_user_mirrors); - userMirrorsLabel.setVisibility(View.VISIBLE); - RecyclerView userMirrorList = repoView.findViewById(R.id.user_mirror_list); - userMirrorList.setVisibility(View.VISIBLE); - } - name.setText(repo.name); int appCount = RepoProvider.Helper.countAppsForRepo(this, repoId);