package renato.bellotti.wallpaperchanger;
import java.util.ArrayList;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.provider.MediaStore;
import android.util.Log;
import android.view.*;
import android.view.View.OnClickListener;
import android.widget.*;
public class WallpaperChangerAdapter extends BaseAdapter{
public final static String TAG="Adapter";
public ArrayList<WallpaperSelection> data;
private LayoutInflater inflator;
Context context;
WallpaperChangerActivity listactivity;
public WallpaperChangerAdapter(Context context, ArrayList<WallpaperSelection> data, WallpaperChangerActivity listactivity){
this.data=data;
inflator=LayoutInflater.from(context);
this.context=context;
this.listactivity=listactivity;
Log.d(TAG, "WallpaperChangerAdapter()");
}
public int getCount() {
Log.d(TAG, "getCount()");
if(data!=null){
return data.size();
}else{
return 1;
}
}
public Object getItem(int position) {
Log.d(TAG, "getItem("+position+")");
if(position!=0){
return data.get(position);
}else{
return null;
}
}
public long getItemId(int pos) {
Log.d(TAG, "getItemId("+pos+")");
if(data!=null){
return data.indexOf(pos);
}else{
return 0;
}
}
public View getView(int position, View convertView, ViewGroup parent) {
//Build View
Log.d(TAG, "getView(" + position + ", " + convertView + ", " + parent +")");
if(convertView==null){
convertView=inflator.inflate(R.layout.selection, null);
}
if(data!=null){
//setText
Log.d(TAG, "data!=null");
TextView textview=(TextView) convertView.findViewById(R.id.textview);
String text=context.getString(R.string.img_name, ((Integer)(position+1)).toString());
Log.d(TAG, "textview.setText()");
textview.setText(text);
//getImage
Bitmap img=null;
if(getItem(position)!=null){
img=((WallpaperSelection)getItem(position)).getImg();
Log.d(TAG, "img geladen.");
}
//setImage
if(img!=null){
ImageView imageview=(ImageView) convertView.findViewById(R.id.img);
imageview.setImageBitmap(img);
Log.d(TAG, "imageview.setImageBitmap(img)");
}else{
ImageView imageview=(ImageView) convertView.findViewById(R.id.img);
imageview.setImageResource(R.drawable.ic_launcher);
Log.d(TAG, "imageview.setImageResource(R.drawable.ic_launcher)");
}
//set Listeners
Log.d(TAG, "Change Button");
Button buttonc=(Button) convertView.findViewById(R.id.change1);
buttonc.setOnClickListener(new OnClickDataListener(data, context, position, listactivity, OnClickDataListener.count){
public void onClick(View v){
//change image
Log.d(TAG, "change image");
Intent intent=new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
WallpaperChangerActivity.sender=this.id;
this.listactivity.startActivityForResult(intent, RQ_CHANGE);
}
});
Log.d(TAG, "Delete Button");
Button buttond=(Button) convertView.findViewById(R.id.change2);
buttond.setOnClickListener(new OnClickDataListener(data, context, position, listactivity, OnClickDataListener.count){
public void onClick(View v){
//delete this image
Log.d(TAG, "delete image");
WallpaperSelection removed=data.remove(this.position);
listactivity.save(data);
listactivity.onContentChanged();
notifyDataSetChanged();
Log.d(TAG, removed+" deleted.");
}
});
Log.d(TAG, "New Button");
Button buttonn=(Button) convertView.findViewById(R.id.select);
buttonn.setOnClickListener(new OnClickDataListener(data, context, position, listactivity, OnClickDataListener.count){
public void onClick(View v){
//insert new image after this one
Log.d(TAG, "new image");
Intent intent=new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
this.listactivity.startActivityForResult(intent, RQ_ADD);
}
});
OnClickDataListener.count=OnClickDataListener.count+1;
//return the view
Log.d(TAG, "return convertView");
return convertView;
}else{
//not possible
return null;
}
}
}