package net.dev123.yibo.service.listener;
import java.io.File;
import java.util.Date;
import net.dev123.commons.util.DateTimeUtil;
import net.dev123.yibo.EditMicroBlogActivity;
import net.dev123.yibo.ProfileEditActivity;
import net.dev123.yibo.R;
import net.dev123.yibo.common.Constants;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
public class EditMicroBlogCameraClickListener implements OnClickListener {
public static final String IMG_TYPE = "image/*";
public static final String FILE_PREX = "yibo_";
public static final String FILE_SUBFIX_FORMAT = "yyyy-MM-dd-HHmmss";
public static final String DEFAULT_IMAGE_STORE_DIR = "/sdcard/DCIM/100MEDIA/";
static {
File temp = new File(DEFAULT_IMAGE_STORE_DIR);
if (!temp.exists()) {
temp.mkdirs();
}
}
private Context context;
public EditMicroBlogCameraClickListener(Context context) {
this.context = context;
}
@Override
public void onClick(View v) {
String[] selectItems = {
v.getContext().getString(R.string.label_edit_status_take_photo),
v.getContext().getString(R.string.label_edit_status_select_photo)
};
new AlertDialog.Builder(context)
.setTitle(R.string.title_dialog_photo)
.setItems(selectItems, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (which == 0) {
jumpToTakePicture(context);
} else if (which == 1) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(IMG_TYPE);
((Activity)context).startActivityForResult(intent, Constants.REQUEST_CODE_IMG_SELECTOR);
}
}
})
.create()
.show();
}
public static void jumpToTakePicture(Context context) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String name = DEFAULT_IMAGE_STORE_DIR + FILE_PREX +
DateTimeUtil.getFormatString(new Date(), FILE_SUBFIX_FORMAT) + ".jpg";
File out = new File(name);
Uri uri = Uri.fromFile(out);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
if (context instanceof EditMicroBlogActivity) {
EditMicroBlogActivity editMicroBlogActivity = (EditMicroBlogActivity)context;
editMicroBlogActivity.setImagePath(out.getAbsolutePath());
} else if (context instanceof ProfileEditActivity) {
ProfileEditActivity profileEditActivity = (ProfileEditActivity)context;
profileEditActivity.setImagePath(out.getAbsolutePath());
}
((Activity)context).startActivityForResult(intent, Constants.REQUEST_CODE_CAMERA);
}
}