package org.ohmage.ui;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.ImageView;
import android.widget.Toast;
import com.google.android.imageloader.ImageLoader;
import org.ohmage.OhmageCache;
import org.ohmage.R;
import org.ohmage.logprobe.Analytics;
import org.ohmage.logprobe.LogProbe.Status;
import org.ohmage.widget.TouchImageView;
import java.io.File;
import java.net.URI;
/**
* Will download a remote image into memory using the {@link ImageLoader} and
* display it in an image view
*
* @author Cameron Ketcham
*
*/
public class ImageLoaderActivity extends FragmentActivity {
private static final String TAG = "ImageLoaderActivity";
private ImageLoader mImageLoader;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image_loader_layout);
TouchImageView image = (TouchImageView) findViewById(R.id.image);
mImageLoader = ImageLoader.get(this);
mImageLoader.bind(image, getIntent().getData().toString(), new ImageLoader.Callback() {
@Override
public void onImageLoaded(ImageView view, String url) {
// remove cache file from the sdcard if it exists
// it will still remain in memory until android reclaims it
File image = OhmageCache.getCachedFile(getApplicationContext(), URI.create(url));
image.delete();
}
@Override
public void onImageError(ImageView view, String url, Throwable error) {
finish();
Toast.makeText(getApplicationContext(), R.string.image_loader_failed, Toast.LENGTH_SHORT).show();
}
});
}
@Override
protected void onResume() {
super.onResume();
Analytics.activity(this, Status.ON);
}
@Override
protected void onPause() {
super.onPause();
Analytics.activity(this, Status.OFF);
}
}