package android.com.app;
import java.util.ArrayList;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.MediaStore.Images;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import com.google.android.maps.GeoPoint;
public class thumbviewer extends Activity {
/** Called when the activity is first created. */
private Context mContext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.apicthumbsview);
GridView g = (GridView) findViewById(R.id.grid1);
final ImageAdapter ia = new ImageAdapter(this);
g.setAdapter(ia);
g.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
ia.callImageViewer(position);
}
});
g.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView parent, View v,
int position, long id) {
return ia.deleteSelected(position);
}
});
}
protected void onPause() {
super.onPause();
finish();
}
public class ImageAdapter extends BaseAdapter {
private ArrayList imgList;
private ArrayList geoList;
private ArrayList titleList;
private ArrayList thumbsList;
public ImageAdapter(Context c) {
mContext = c;
imgList=new ArrayList();
geoList=new ArrayList();
titleList=new ArrayList();
thumbsList=new ArrayList();
getImageInfo(imgList,geoList,titleList,thumbsList);
}
public boolean deleteSelected(int sIndex){
getContentResolver().delete(Uri.withAppendedPath(
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""+imgList.get(sIndex)), null, null);
getContentResolver().delete(Uri.withAppendedPath(M
ediaStore.Images.Media.EXTERNAL_CONTENT_URI, ""+imgList.get(sIndex)), null, null);
imgList.remove(sIndex);
titleList.remove(sIndex);
geoList.remove(sIndex);
return true;
}
public final void callImageViewer(int selectedIndex){
TextView t = (TextView) findViewById(R.id.txt1);
Intent i = new Intent();
i.setClass(mContext, imageviewer.class);
t.setText("select"+img
List.get(selectedIndex));
i.putExtra("ImageData", imgList.get(selectedIndex)); //ID of the image
i.putExtra("GeoPoint",
geoList.get(selectedIndex).getLatitudeE6()+","+geoList.get(selectedIndex).getLongitudeE6());
i.putExtra("Title", titleList.get(selectedIndex));
startActivityForResult(i,1);
}
public int getCount() {
return imgList.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85,85));
imageView.setAdjustViewBounds(false);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
TextView t = (TextView) findViewById(R.id.txt1);
System.gc();
try{
Log.i("BMP","size"+imgList.size());
//Bitmap bmp = BitmapFactory.decodeFile(thumbsList.get(position));
imageView.setImageURI(Uri.withAppendedPath(
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""+imgList.get(position)));
//imageView.setImageURI(Uri.parse(thumbsList.get(position)));
//Log.i("THUMBNAILS DATA" ,Uri.withAppendedPath(
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, titleList.get(position)).toString());
System.gc();
//imageView.setImageBitmap(bmp);
}
catch(Exception e){
t.setText(e.getMessage());
}
return imageView;
}
/* Get all images from content provider in an array list*/
public void getImageInfo(ArrayList ThumbsIDList,ArrayList LocationList,ArrayList ThumbsDataList,ArrayList ThumbsList){
TextView t = (TextView) findViewById(R.id.txt1);
String[] imageAttribs = new String[] {
//Images.ImageColumns.TITLE,
Images.Thumbnails._ID,
//Images.ImageColumns.DISPLAY_NAME,
//Images.ImageColumns.DATA,
//Images.ImageColumns.LATITUDE,
//Images.ImageColumns.LONGITUDE,
Images.Thumbnails.DATA,
Images.Thumbnails.IMAGE_ID,
};
Cursor imageCursor= managedQuery(
MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
imageAttribs,
null,
null, // WHERE clause.
null);
if (imageCursor !=null && imageCursor.moveToFirst()) {
String title;
String thumbsID;
String thumbsImageID;
String thumbsData;
String data;
//int titleColumn = imageCursor.getColumnIndex(Images.ImageColumns.DATA);
int thumbsIDcol = imageCursor.getColumnIndex(Images.Thumbnails._ID);
//int LatCol = imageCursor.getColumnIndex(Images.ImageColumns.LATITUDE);
//int LongCol = imageCursor.getColumnIndex(Images.ImageColumns.LONGITUDE);
int thumbsDataCol = imageCursor.getColumnIndex(Images.Thumbnails.DATA);
int thumbsImageIDCol = imageCursor.getColumnIndex(Images.Thumbnails.IMAGE_ID);
int num=0;
do {
// Get the field values
t.setText("d"+num);
//title = imageCursor.getString(titleColumn);
thumbsID = imageCursor.getString(thumbsIDcol);
thumbsData = imageCursor.getString(thumbsDataCol);
thumbsImageID = imageCursor.getString(thumbsImageIDCol);
Log.i("BMP","size "+thumbsID+" "+thumbsData+" "+thumbsImageID);
num++;
if(thumbsImageID!= null) {
ThumbsIDList.add(imageCursor.getString(thumbsIDcol));
ThumbsDataList.add(imageCursor.getString(thumbsDataCol));
}
//TitleList.add(title);
//t.setText(imageCursor.getDouble(LatCol)+","+imageCursor.getDouble(LongCol));
//Comment this for emu
//LocationList.add(new GeoPoint((int)34.027412*1000000,(int)-118.289738*1000000));
//Comment this for device
/*LocationList.add(new GeoPoint( (int)(imageCursor.getDouble(LatCol)*1000000), (int)(imageCursor.getDouble(LongCol)*1000000) ) ); */ //LocationList.add(new GeoPoint( // (int)(imageCursor.getDouble(LatCol)*1000000), // (int)(imageCursor.getDouble(LongCol)*1000000) // ) // ); } while (imageCursor.moveToNext()); } return; } }//class imageadapter protected void onDestroy() { super.onDestroy(); finish(); } }//class apicsthumbview>>>>>>> .r67