diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4d3db9f80..cafacbd19 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -129,6 +129,12 @@
+
+
diff --git a/custom_rules.xml b/custom_rules.xml
new file mode 100644
index 000000000..8306b3fb5
--- /dev/null
+++ b/custom_rules.xml
@@ -0,0 +1,15 @@
+
+
+
+
+ Downloading XML test report…
+
+
+
+
+
+
+
+
+
+
diff --git a/src/org/fdroid/fdroid/FDroid.java b/src/org/fdroid/fdroid/FDroid.java
index 6576b8582..08b6e3609 100644
--- a/src/org/fdroid/fdroid/FDroid.java
+++ b/src/org/fdroid/fdroid/FDroid.java
@@ -257,7 +257,7 @@ public class FDroid extends FragmentActivity {
case REQUEST_APPDETAILS:
break;
case REQUEST_MANAGEREPOS:
- if (data.hasExtra(ManageRepo.REQUEST_UPDATE)) {
+ if (data != null && data.hasExtra(ManageRepo.REQUEST_UPDATE)) {
AlertDialog.Builder ask_alrt = new AlertDialog.Builder(this);
ask_alrt.setTitle(getString(R.string.repo_update_title));
ask_alrt.setIcon(android.R.drawable.ic_menu_rotate);
diff --git a/src/org/fdroid/fdroid/views/fragments/RepoListFragment.java b/src/org/fdroid/fdroid/views/fragments/RepoListFragment.java
index c30f23397..fa43cb82b 100644
--- a/src/org/fdroid/fdroid/views/fragments/RepoListFragment.java
+++ b/src/org/fdroid/fdroid/views/fragments/RepoListFragment.java
@@ -208,6 +208,14 @@ public class RepoListFragment extends ListFragment
* case means it should be downcased.
*/
uri = Uri.parse(uri.toString().toLowerCase(Locale.ENGLISH));
+ } else if (uri.getPath().startsWith("/FDROID/REPO")) {
+ /*
+ * some QR scanners chop off the fdroidrepo:// and just try
+ * http://, then the incoming URI does not get downcased
+ * properly, and the query string is stripped off. So just
+ * downcase the path, and carry on to get something working.
+ */
+ uri = Uri.parse(uri.toString().toLowerCase(Locale.ENGLISH));
}
// make scheme and host lowercase so they're readable in dialogs
scheme = scheme.toLowerCase(Locale.ENGLISH);