package hillfly.wifichat.activity;
import hillfly.wifichat.R;
import hillfly.wifichat.common.BaseActivity;
import hillfly.wifichat.common.BaseApplication;
import hillfly.wifichat.common.view.imagefactory.ImageFactoryCrop;
import hillfly.wifichat.common.view.imagefactory.ImageFactoryFliter;
import hillfly.wifichat.util.ImageUtils;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ViewFlipper;
public class ImageFactoryActivity extends BaseActivity {
private ViewFlipper mVfFlipper;
private Button mBtnLeft;
private Button mBtnRight;
private ImageFactoryCrop mImageFactoryCrop;
private ImageFactoryFliter mImageFactoryFliter;
private String mPath;
private String mNewPath;
private int mIndex = 0;
private String mType;
public static final String TYPE = "type";
public static final String CROP = "crop";
public static final String FLITER = "fliter";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_imagefactory);
initViews();
initEvents();
init();
}
@Override
protected void initViews() {
mVfFlipper = (ViewFlipper) findViewById(R.id.imagefactory_vf_viewflipper);
mBtnLeft = (Button) findViewById(R.id.imagefactory_btn_left);
mBtnRight = (Button) findViewById(R.id.imagefactory_btn_right);
}
@Override
protected void initEvents() {
mBtnLeft.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mIndex == 0) {
setResult(RESULT_CANCELED);
finish();
} else {
if (FLITER.equals(mType)) {
setResult(RESULT_CANCELED);
finish();
} else {
mIndex = 0;
initImageFactory();
mVfFlipper.setInAnimation(ImageFactoryActivity.this,
R.anim.push_right_in);
mVfFlipper.setOutAnimation(ImageFactoryActivity.this,
R.anim.push_right_out);
mVfFlipper.showPrevious();
}
}
}
});
mBtnRight.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mIndex == 1) {
mNewPath = ImageUtils.savePhotoToSDCard(mImageFactoryFliter
.getBitmap(),BaseApplication.CAMERA_IMAGE_PATH,null);
Intent intent = new Intent();
intent.putExtra("path", mNewPath);
setResult(RESULT_OK, intent);
finish();
} else {
mNewPath = ImageUtils.savePhotoToSDCard(mImageFactoryCrop
.cropAndSave(),BaseApplication.CAMERA_IMAGE_PATH,null);
mIndex = 1;
initImageFactory();
mVfFlipper.setInAnimation(ImageFactoryActivity.this,
R.anim.push_left_in);
mVfFlipper.setOutAnimation(ImageFactoryActivity.this,
R.anim.push_left_out);
mVfFlipper.showNext();
}
}
});
}
@Override
public void onBackPressed() {
if (mIndex == 0) {
setResult(RESULT_CANCELED);
finish();
} else {
if (FLITER.equals(mType)) {
setResult(RESULT_CANCELED);
finish();
} else {
mIndex = 0;
initImageFactory();
mVfFlipper.setInAnimation(ImageFactoryActivity.this,
R.anim.push_right_in);
mVfFlipper.setOutAnimation(ImageFactoryActivity.this,
R.anim.push_right_out);
mVfFlipper.showPrevious();
}
}
}
private void init() {
mPath = getIntent().getStringExtra("path");
mType = getIntent().getStringExtra(TYPE);
mNewPath = new String(mPath);
if (CROP.equals(mType)) {
mIndex = 0;
} else if (FLITER.equals(mType)) {
mIndex = 1;
mVfFlipper.showPrevious();
}
initImageFactory();
}
private void initImageFactory() {
switch (mIndex) {
case 0:
if (mImageFactoryCrop == null) {
mImageFactoryCrop = new ImageFactoryCrop(this,
mVfFlipper.getChildAt(0));
}
mImageFactoryCrop.init(mPath, mScreenWidth, mScreenHeight);
mBtnLeft.setText("取 消");
mBtnRight.setText("确 认");
break;
case 1:
if (mImageFactoryFliter == null) {
mImageFactoryFliter = new ImageFactoryFliter(this,
mVfFlipper.getChildAt(1));
}
mImageFactoryFliter.init(mNewPath);
mBtnLeft.setText("取 消");
mBtnRight.setText("完 成");
break;
}
}
}