diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/main')
3 files changed, 73 insertions, 16 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java index a06a489388..6313eddc5b 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/MapboxApplication.java @@ -3,10 +3,13 @@ package com.mapbox.mapboxsdk.testapp; import android.app.Application; import android.os.StrictMode; import android.text.TextUtils; + import com.mapbox.mapboxsdk.Mapbox; -import com.mapbox.mapboxsdk.maps.Telemetry; +import com.mapbox.mapboxsdk.http.HttpRequest; +import com.mapbox.mapboxsdk.testapp.utils.IonHttpRequest; import com.mapbox.mapboxsdk.testapp.utils.TokenUtils; import com.squareup.leakcanary.LeakCanary; + import timber.log.Timber; import static timber.log.Timber.DebugTree; @@ -31,11 +34,16 @@ public class MapboxApplication extends Application { if (!initializeLeakCanary()) { return; } + initializeHttpClient(); initializeLogger(); initializeStrictMode(); initializeMapbox(); } + private void initializeHttpClient() { + HttpRequest.setHttpRequest(new IonHttpRequest(this)); + } + private boolean initializeLeakCanary() { if (LeakCanary.isInAnalyzerProcess(this)) { // This process is dedicated to LeakCanary for heap analysis. @@ -70,7 +78,7 @@ public class MapboxApplication extends Application { String accessToken = TokenUtils.getMapboxAccessToken(getApplicationContext()); validateAccessToken(accessToken); Mapbox.getInstance(getApplicationContext(), accessToken); - Telemetry.updateDebugLoggingEnabled(true); + //Telemetry.updateDebugLoggingEnabled(true); } private static void validateAccessToken(String accessToken) { diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/render/RenderTestActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/render/RenderTestActivity.java index e3c5254805..6c37f3d5ea 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/render/RenderTestActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/render/RenderTestActivity.java @@ -12,11 +12,8 @@ import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ImageView; import com.google.gson.Gson; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; import com.mapbox.mapboxsdk.snapshotter.MapSnapshotter; -import okio.BufferedSource; -import okio.Okio; + import timber.log.Timber; import java.io.File; @@ -24,7 +21,6 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.lang.ref.WeakReference; -import java.nio.charset.Charset; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -167,13 +163,13 @@ public class RenderTestActivity extends AppCompatActivity { private static List<String> loadIgnoreList(AssetManager assets) { List<String> ignores = new ArrayList<>(); try (InputStream input = assets.open(String.format("%s/ignores.json", TEST_BASE_PATH))) { - BufferedSource source = Okio.buffer(Okio.source(input)); - String styleJson = source.readByteString().string(Charset.forName("utf-8")); - JsonObject object = new Gson().fromJson(styleJson, JsonObject.class); - for (Map.Entry<String, JsonElement> stringJsonElementEntry : object.entrySet()) { - String[] parts = stringJsonElementEntry.getKey().split("/"); - ignores.add(String.format("%s,%s", parts[2], parts[1])); - } + // BufferedSource source = Okio.buffer(Okio.source(input)); + // String styleJson = source.readByteString().string(Charset.forName("utf-8")); + // JsonObject object = new Gson().fromJson(styleJson, JsonObject.class); + // for (Map.Entry<String, JsonElement> stringJsonElementEntry : object.entrySet()) { + // String[] parts = stringJsonElementEntry.getKey().split("/"); + // ignores.add(String.format("%s,%s", parts[2], parts[1])); + // } } catch (IOException exception) { Timber.e(exception); } @@ -183,8 +179,8 @@ public class RenderTestActivity extends AppCompatActivity { private static String loadStyleJson(AssetManager assets, String category, String test) { String styleJson = null; try (InputStream input = assets.open(String.format("%s/%s/%s/style.json", RENDER_TEST_BASE_PATH, category, test))) { - BufferedSource source = Okio.buffer(Okio.source(input)); - styleJson = source.readByteString().string(Charset.forName("utf-8")); + // BufferedSource source = Okio.buffer(Okio.source(input)); + // styleJson = source.readByteString().string(Charset.forName("utf-8")); } catch (IOException exception) { Timber.e(exception); } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/IonHttpRequest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/IonHttpRequest.java new file mode 100644 index 0000000000..d4fa8b547e --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/utils/IonHttpRequest.java @@ -0,0 +1,53 @@ +package com.mapbox.mapboxsdk.testapp.utils; + +import android.content.Context; + +import com.koushikdutta.ion.Ion; +import com.koushikdutta.ion.Response; +import com.koushikdutta.ion.builder.Builders; +import com.mapbox.mapboxsdk.http.HttpRequest; +import com.mapbox.mapboxsdk.http.NativeHttpRequest; + +import java.lang.ref.WeakReference; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.Future; + +public class IonHttpRequest extends HttpRequest { + + private WeakReference<Context> context; + + public IonHttpRequest(Context context) { + this.context = new WeakReference<>(context); + } + + @Override + public void executeRequest(NativeHttpRequest httpRequest, long nativePtr, String resourceUrl, + String etag, String modified) { + Context context = this.context.get(); + if (context != null) { + Builders.Any.B loadBuilder = Ion.with(context).load(resourceUrl); + if (etag.length() > 0) { + loadBuilder.addHeader("If-None-Match", etag); + } else if (modified.length() > 0) { + loadBuilder.addHeader("If-Modified-Since", modified); + } + Future<Response<byte[]>> future = loadBuilder.asByteArray().withResponse(); + try { + Response<byte[]> result = future.get(); + int statusCode = result.getHeaders().code(); + httpRequest.onResponse(statusCode, null, null, null, null, null, null, result.getResult()); + } catch (InterruptedException interruptedException) { + interruptedException.printStackTrace(); + } catch (ExecutionException executionException) { + executionException.printStackTrace(); + } + } + } + + @Override + public void cancelRequest(long nativePtr) { + // do nothing + // TODO manage Future objects and execute Future#cancel + } + +} |