package org.deviceconnect.android.deviceplugin.theta.profile;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import org.deviceconnect.android.deviceplugin.theta.core.SphericalViewRenderer;
import org.deviceconnect.android.deviceplugin.theta.utils.BitmapUtils;
import org.deviceconnect.message.DConnectMessage;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
public class ImageViewer extends Viewer {
private final String mOrigin;
private Bitmap mTexture;
public ImageViewer(final Context context) {
mOrigin = context.getPackageName();
}
public void setImage(final String uri) throws IOException {
InputStream is = null;
try {
URLConnection conn = new URL(uri).openConnection();
conn.setRequestProperty(DConnectMessage.HEADER_GOTAPI_ORIGIN, mOrigin);
is = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(is);
mTexture = BitmapUtils.resize(bitmap, 2048, 1024);
} finally {
if (is != null) {
is.close();
}
}
}
@Override
public void start() {
SphericalViewRenderer renderer = mProjector.getRenderer();
if (renderer == null) {
throw new IllegalStateException("Renderer is not set.");
}
renderer.setTexture(mTexture);
super.start();
}
}