diff --git a/android/app/build.gradle b/android/app/build.gradle
index fb0f43130c..b2b3bcd772 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -107,6 +107,7 @@ dependencies {
compile 'com.squareup.retrofit2:retrofit:2.4.0'
compile 'com.squareup.retrofit2:converter-gson:2.4.0'
+ implementation 'com.squareup.picasso:picasso:2.71828'
implementation fileTree(include: ['*.jar'], dir: 'libs')
}
diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/HifiUtils.java b/android/app/src/main/java/io/highfidelity/hifiinterface/HifiUtils.java
index c26a935b1f..368862bc49 100644
--- a/android/app/src/main/java/io/highfidelity/hifiinterface/HifiUtils.java
+++ b/android/app/src/main/java/io/highfidelity/hifiinterface/HifiUtils.java
@@ -9,6 +9,8 @@ import java.net.URISyntaxException;
public class HifiUtils {
+ public static final String BASE_URL = "https://metaverse.highfidelity.com";
+
private static HifiUtils instance;
private HifiUtils() {
@@ -37,6 +39,22 @@ public class HifiUtils {
return urlString;
}
+ public String absoluteHifiAssetUrl(String urlString) {
+ urlString = urlString.trim();
+ if (!urlString.isEmpty()) {
+ URI uri;
+ try {
+ uri = new URI(urlString);
+ } catch (URISyntaxException e) {
+ return urlString;
+ }
+ if (uri.getScheme() == null || uri.getScheme().isEmpty()) {
+ urlString = BASE_URL + urlString;
+ }
+ }
+ return urlString;
+ }
+
public native String getCurrentAddress();
public native String protocolVersionSignature();
diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/provider/UserStoryDomainProvider.java b/android/app/src/main/java/io/highfidelity/hifiinterface/provider/UserStoryDomainProvider.java
index 0e2c190a14..6b1452ed34 100644
--- a/android/app/src/main/java/io/highfidelity/hifiinterface/provider/UserStoryDomainProvider.java
+++ b/android/app/src/main/java/io/highfidelity/hifiinterface/provider/UserStoryDomainProvider.java
@@ -9,6 +9,7 @@ import java.util.List;
import java.util.function.BinaryOperator;
import java.util.function.Consumer;
+import io.highfidelity.hifiinterface.HifiUtils;
import io.highfidelity.hifiinterface.view.DomainAdapter;
import retrofit2.Call;
import retrofit2.Response;
@@ -216,10 +217,11 @@ public class UserStoryDomainProvider implements DomainProvider {
DomainAdapter.Domain toDomain() {
// TODO Proper url creation (it can or can't have hifi
// TODO Or use host value from api?
+ String absoluteThumbnailUrl = HifiUtils.getInstance().absoluteHifiAssetUrl(thumbnail_url);
DomainAdapter.Domain domain = new DomainAdapter.Domain(
place_name,
- "hifi://" + place_name + "/" + path,
- thumbnail_url
+ HifiUtils.getInstance().sanitizeHifiUrl(place_name) + "/" + path,
+ absoluteThumbnailUrl
);
return domain;
}
diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/view/DomainAdapter.java b/android/app/src/main/java/io/highfidelity/hifiinterface/view/DomainAdapter.java
index 13e757db94..6ea7db076a 100644
--- a/android/app/src/main/java/io/highfidelity/hifiinterface/view/DomainAdapter.java
+++ b/android/app/src/main/java/io/highfidelity/hifiinterface/view/DomainAdapter.java
@@ -1,6 +1,7 @@
package io.highfidelity.hifiinterface.view;
import android.content.Context;
+import android.net.Uri;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
@@ -9,6 +10,8 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
+import com.squareup.picasso.Picasso;
+
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
@@ -119,7 +122,10 @@ public class DomainAdapter extends RecyclerView.Adapter