From 0a96d17dd1052201c07ebb4322288643e66699fb Mon Sep 17 00:00:00 2001 From: n8fr8 Date: Thu, 10 Sep 2015 11:21:00 -0400 Subject: [PATCH] now handling empty repo fingerprint during check - also support icondownloading over bluetooth - also check for null repoUrl variable --- .../src/org/fdroid/fdroid/RepoUpdater.java | 2 +- .../org/fdroid/fdroid/net/IconDownloader.java | 22 ++++++++++++++----- .../fdroid/views/swap/SwapAppsView.java | 3 ++- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/F-Droid/src/org/fdroid/fdroid/RepoUpdater.java b/F-Droid/src/org/fdroid/fdroid/RepoUpdater.java index 4ce038e6c..a3eb101d6 100644 --- a/F-Droid/src/org/fdroid/fdroid/RepoUpdater.java +++ b/F-Droid/src/org/fdroid/fdroid/RepoUpdater.java @@ -278,7 +278,7 @@ public class RepoUpdater { * actually in the index.jar itself. If no fingerprint, just store the * signing certificate */ boolean trustNewSigningCertificate = false; - if (repo.fingerprint == null) { + if (repo.fingerprint == null || repo.fingerprint.length() == 0) { // no info to check things are valid, so just Trust On First Use trustNewSigningCertificate = true; } else { diff --git a/F-Droid/src/org/fdroid/fdroid/net/IconDownloader.java b/F-Droid/src/org/fdroid/fdroid/net/IconDownloader.java index b90876df8..334ceb314 100644 --- a/F-Droid/src/org/fdroid/fdroid/net/IconDownloader.java +++ b/F-Droid/src/org/fdroid/fdroid/net/IconDownloader.java @@ -19,13 +19,25 @@ public class IconDownloader extends BaseImageDownloader { @Override public InputStream getStream(String imageUri, Object extra) throws IOException { - switch (Scheme.ofUri(imageUri)) { - case HTTP: - case HTTPS: + + Scheme scheme = Scheme.ofUri(imageUri); + + switch (scheme) { + case HTTP: + case HTTPS: + Downloader downloader = DownloaderFactory.create(context, imageUri); + return downloader.getInputStream(); + } + + //bluetooth isn't a scheme in the Scheme. library, so we can add a check here + if (imageUri.toLowerCase().startsWith("bluetooth")) + { Downloader downloader = DownloaderFactory.create(context, imageUri); return downloader.getInputStream(); - default: - return super.getStream(imageUri, extra); } + + + return super.getStream(imageUri, extra); + } } diff --git a/F-Droid/src/org/fdroid/fdroid/views/swap/SwapAppsView.java b/F-Droid/src/org/fdroid/fdroid/views/swap/SwapAppsView.java index 63777cd4c..87a577d1b 100644 --- a/F-Droid/src/org/fdroid/fdroid/views/swap/SwapAppsView.java +++ b/F-Droid/src/org/fdroid/fdroid/views/swap/SwapAppsView.java @@ -282,7 +282,8 @@ public class SwapAppsView extends ListView implements public void onReceive(Context context, Intent intent) { Apk apk = getApkToInstall(); String broadcastUrl = intent.getStringExtra(Downloader.EXTRA_ADDRESS); - if (!TextUtils.equals(Utils.getApkUrl(apk.repoAddress, apk), broadcastUrl)) { + + if (apk.repoAddress != null && (!TextUtils.equals(Utils.getApkUrl(apk.repoAddress, apk), broadcastUrl))) { return; }