diff --git a/libs/database/src/main/java/org/fdroid/repo/RepoUriGetter.kt b/libs/database/src/main/java/org/fdroid/repo/RepoUriGetter.kt index d36afb8c9..7fc8e3255 100644 --- a/libs/database/src/main/java/org/fdroid/repo/RepoUriGetter.kt +++ b/libs/database/src/main/java/org/fdroid/repo/RepoUriGetter.kt @@ -16,7 +16,7 @@ internal object RepoUriGetter { it.buildUpon().scheme("http").build() } - it.host == "fdroid.link" -> getFdroidLinkUri(it) + it.host == "fdroid.link" && it.encodedFragment != null -> getFdroidLinkUri(it) it.scheme.isNullOrBlank() -> { // assume https:// when no scheme given diff --git a/libs/database/src/test/java/org/fdroid/repo/RepoUriGetterTest.kt b/libs/database/src/test/java/org/fdroid/repo/RepoUriGetterTest.kt index 5eba87ff4..00b7a947e 100644 --- a/libs/database/src/test/java/org/fdroid/repo/RepoUriGetterTest.kt +++ b/libs/database/src/test/java/org/fdroid/repo/RepoUriGetterTest.kt @@ -90,6 +90,18 @@ internal class RepoUriGetterTest { val uri3 = RepoUriGetter.getUri("https://fdroid.link/#http://f-droid.org/repo") assertEquals("http://f-droid.org/repo", uri3.uri.toString()) assertNull(uri3.fingerprint) + + val uri4 = RepoUriGetter.getUri("https://fdroid.link/") + // we don't care what it is as long as it doesn't crash + assertNull(uri4.fingerprint) + + val uri5 = RepoUriGetter.getUri("https://fdroid.link/#foo") + // we don't care what it is as long as it doesn't crash + assertNull(uri5.fingerprint) + + val uri6 = RepoUriGetter.getUri("https://fdroid.link/#invalid://foo.bar") + // we don't care what it is as long as it doesn't crash + assertNull(uri6.fingerprint) } @Test