From 20ee4e03f3196c17745961f25a12301818411452 Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Sat, 7 Nov 2015 15:18:23 +0100 Subject: [PATCH] Various improvements * ContactsSyncManager: gracefully handle photo URLs without host name * MainActivity: cache installer package name * dav4android: use java.util.ServiceLoader to load DAV property factories --- .../syncadapter/ContactsSyncManager.java | 9 +++++++- .../at/bitfire/davdroid/ui/MainActivity.java | 23 ++++++++++++------- dav4android | 2 +- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/at/bitfire/davdroid/syncadapter/ContactsSyncManager.java b/app/src/main/java/at/bitfire/davdroid/syncadapter/ContactsSyncManager.java index 3cf44a93..b4621c51 100644 --- a/app/src/main/java/at/bitfire/davdroid/syncadapter/ContactsSyncManager.java +++ b/app/src/main/java/at/bitfire/davdroid/syncadapter/ContactsSyncManager.java @@ -264,7 +264,14 @@ public class ContactsSyncManager extends SyncManager { @Override public byte[] download(String url, String accepts) { HttpUrl httpUrl = HttpUrl.parse(url); - HttpClient resourceClient = new HttpClient(log, httpClient, httpUrl.host()); + + String host = httpUrl.host(); + if (host == null) { + log.error("External resource URL doesn't specify a host name"); + return null; + } + + HttpClient resourceClient = new HttpClient(log, httpClient, host); try { Response response = resourceClient.newCall(new Request.Builder() .get() diff --git a/app/src/main/java/at/bitfire/davdroid/ui/MainActivity.java b/app/src/main/java/at/bitfire/davdroid/ui/MainActivity.java index 123c7ee5..5e4a2327 100644 --- a/app/src/main/java/at/bitfire/davdroid/ui/MainActivity.java +++ b/app/src/main/java/at/bitfire/davdroid/ui/MainActivity.java @@ -25,6 +25,7 @@ import at.bitfire.davdroid.Constants; import at.bitfire.davdroid.R; import at.bitfire.davdroid.ui.settings.SettingsActivity; import at.bitfire.davdroid.ui.setup.AddAccountActivity; +import lombok.Getter; public class MainActivity extends Activity { @@ -43,12 +44,18 @@ public class MainActivity extends Activity { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); - + TextView tv = (TextView)findViewById(R.id.text_store_specific); - if (installedFrom("org.fdroid.fdroid")) - setHtmlText(R.id.text_store_specific, R.string.main_fdroid_donation_html); - else if (installedFrom("com.android.vending")) - setHtmlText(R.id.text_store_specific, R.string.main_play_workaround_html); + final String installedFrom = installedFrom(); + if (installedFrom != null) + switch (installedFrom) { + case "com.android.vending": + setHtmlText(R.id.text_store_specific, R.string.main_play_workaround_html); + break; + case "org.fdroid.fdroid": + setHtmlText(R.id.text_store_specific, R.string.main_fdroid_donation_html); + break; + } setPlainText(R.id.text_welcome, R.string.main_welcome, BuildConfig.VERSION_NAME); setHtmlText(R.id.text_what_is_davdroid, R.string.main_what_is_davdroid_html); @@ -120,11 +127,11 @@ public class MainActivity extends Activity { } - private boolean installedFrom(String packageName) { + private String installedFrom() { try { - return packageName.equals(getPackageManager().getInstallerPackageName("at.bitfire.davdroid")); + return getPackageManager().getInstallerPackageName("at.bitfire.davdroid"); } catch(IllegalArgumentException e) { - return false; + return null; } } } diff --git a/dav4android b/dav4android index f254b6e0..94b582dd 160000 --- a/dav4android +++ b/dav4android @@ -1 +1 @@ -Subproject commit f254b6e0faf10dc74d7849b77281cffcacb7774d +Subproject commit 94b582ddea6c3e0568158fa0d177ea20dee3782a