diff --git a/res/values/colors.xml b/res/values/colors.xml
index 7cd1486ca..d2777848b 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -2,4 +2,5 @@
#ffcccccc
#ffCC0000
+ #ff999999
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index b068d0ae9..e8e837990 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -176,6 +176,7 @@
Show icons at regular size
Theme
Unsigned
+ Unverified
URL
Number of apps
Fingerprint of Repo Signing Key (SHA-256)
diff --git a/src/org/fdroid/fdroid/data/Repo.java b/src/org/fdroid/fdroid/data/Repo.java
index 76001ca1d..64d6b3f78 100644
--- a/src/org/fdroid/fdroid/data/Repo.java
+++ b/src/org/fdroid/fdroid/data/Repo.java
@@ -2,6 +2,7 @@ package org.fdroid.fdroid.data;
import android.content.ContentValues;
import android.database.Cursor;
+import android.text.TextUtils;
import android.util.Log;
import org.fdroid.fdroid.Utils;
@@ -78,7 +79,13 @@ public class Repo extends ValueObject {
}
public boolean isSigned() {
- return this.pubkey != null && this.pubkey.length() > 0;
+ return !TextUtils.isEmpty(this.pubkey);
+ }
+
+ // this happens when a repo is configed with a fingerprint, but the client
+ // has not connected to it yet to download its pubkey
+ public boolean isSignedButUnverified() {
+ return TextUtils.isEmpty(this.pubkey) && !TextUtils.isEmpty(this.fingerprint);
}
public boolean hasBeenUpdated() {
diff --git a/src/org/fdroid/fdroid/views/RepoAdapter.java b/src/org/fdroid/fdroid/views/RepoAdapter.java
index 307f325de..aa816bda6 100644
--- a/src/org/fdroid/fdroid/views/RepoAdapter.java
+++ b/src/org/fdroid/fdroid/views/RepoAdapter.java
@@ -97,10 +97,16 @@ public class RepoAdapter extends CursorAdapter {
// If we set the signed view to GONE instead of INVISIBLE, then the
// height of each list item varies.
- View signedView = view.findViewById(R.id.repo_unsigned);
+ TextView signedView = (TextView) view.findViewById(R.id.repo_unsigned);
if (repo.isSigned()) {
signedView.setVisibility(View.INVISIBLE);
+ } else if (repo.isSignedButUnverified()) {
+ signedView.setText(R.string.unverified);
+ signedView.setTextColor(view.getResources().getColor(R.color.unverified));
+ signedView.setVisibility(View.VISIBLE);
} else {
+ signedView.setText(R.string.unsigned);
+ signedView.setTextColor(view.getResources().getColor(R.color.unsigned));
signedView.setVisibility(View.VISIBLE);
}
}