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 );