package org.deviceconnect.android.uiapp.activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.MediaStore;
import android.widget.ImageView;
import org.deviceconnect.android.uiapp.R;
import org.deviceconnect.android.uiapp.utils.MixedReplaceMediaClient;
import java.io.IOException;
import java.io.InputStream;
public class ImageActivity extends BasicActivity {
private MixedReplaceMediaClient mMixedReplaceMediaClient;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);
}
@Override
protected void onResume() {
super.onResume();
Intent intent = getIntent();
if (intent != null) {
final String uri = intent.getStringExtra("uri");
if (uri != null) {
getBitmap(uri);
}
}
}
@Override
protected void onPause() {
if (mMixedReplaceMediaClient != null) {
mMixedReplaceMediaClient.stop();
}
super.onPause();
}
private String getOrigin() {
return getPackageName();
}
private void getBitmap(final String uri) {
if (uri.startsWith("content://")) {
getBitmapForContentProvider(uri);
} else {
test(uri);
}
}
private void getBitmapForContentProvider(final String uri) {
AsyncTask<Void, Bitmap, Bitmap> task = new AsyncTask<Void, Bitmap, Bitmap>() {
@Override
protected Bitmap doInBackground(Void... params) {
try {
return MediaStore.Images.Media.getBitmap(getContentResolver(), Uri.parse(uri));
} catch (IOException e) {
return null;
}
}
@Override
protected void onPostExecute(Bitmap bitmap) {
if (bitmap != null) {
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageBitmap(bitmap);
}
}
};
task.execute();
}
private void test(final String uri) {
mMixedReplaceMediaClient = new MixedReplaceMediaClient(uri);
mMixedReplaceMediaClient.setOrigin(getOrigin());
mMixedReplaceMediaClient.setOnMixedReplaceMediaListener(new MixedReplaceMediaClient.OnMixedReplaceMediaListener() {
@Override
public void onConnected() {
}
@Override
public void onReceivedData(final InputStream in) {
final Bitmap bitmap = BitmapFactory.decodeStream(in);
if (bitmap != null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageBitmap(bitmap);
}
});
}
}
@Override
public void onError(MixedReplaceMediaClient.MixedReplaceMediaError error) {
}
});
mMixedReplaceMediaClient.start();
}
}