diff --git a/app/src/main/java/org/fdroid/fdroid/data/DBHelper.java b/app/src/main/java/org/fdroid/fdroid/data/DBHelper.java
index 74c0355ec..fb463e5b9 100644
--- a/app/src/main/java/org/fdroid/fdroid/data/DBHelper.java
+++ b/app/src/main/java/org/fdroid/fdroid/data/DBHelper.java
@@ -291,6 +291,9 @@ public class DBHelper extends SQLiteOpenHelper {
*
* Additional Repos ({@code additional_repos.xml}) come from the ROM,
* while Default Repos ({@code default_repos.xml} is built into the APK.
+ *
+ * This also cleans up the whitespace in the description item, since the
+ * XML parsing will include the linefeeds and indenting in the description.
*/
public static List loadInitialRepos(Context context) throws IllegalArgumentException {
String packageName = context.getPackageName();
@@ -303,6 +306,12 @@ public class DBHelper extends SQLiteOpenHelper {
initialRepos.size() + " % REPO_XML_ARG_COUNT(" + REPO_XML_ITEM_COUNT + ") != 0");
}
+ final int DESCRIPTION_INDEX = 2;
+ for (int i = DESCRIPTION_INDEX; i < initialRepos.size(); i += REPO_XML_ITEM_COUNT) {
+ String description = initialRepos.get(i);
+ initialRepos.set(i, description.replaceAll("\\s+", " "));
+ }
+
return initialRepos;
}
diff --git a/app/src/test/java/org/fdroid/fdroid/data/RepoProviderTest.java b/app/src/test/java/org/fdroid/fdroid/data/RepoProviderTest.java
index 5bd1abbae..e2a726abc 100644
--- a/app/src/test/java/org/fdroid/fdroid/data/RepoProviderTest.java
+++ b/app/src/test/java/org/fdroid/fdroid/data/RepoProviderTest.java
@@ -166,7 +166,7 @@ public class RepoProviderTest extends FDroidProviderTest {
assertRepo(
defaultRepos.get(i),
reposFromXml[offset + 1], // address
- reposFromXml[offset + 2], // description
+ reposFromXml[offset + 2].replaceAll("\\s+", " "), // description
Utils.calcFingerprint(reposFromXml[offset + 7]), // pubkey
reposFromXml[offset] // name
);