package com.android.camera;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.provider.MediaStore;
private static final String EXTRA_ASPECT_X = "aspectX";
private static final String EXTRA_ASPECT_Y = "aspectY";
private static final String EXTRA_OUTPUT_X = "outputX";
private static final String EXTRA_OUTPUT_Y = "outputY";
private static final String EXTRA_BITMAP_DATA = "data";
private static final String EXTRA_SCALE = "scale";
private static final String EXTRA_SCALE_UP_IF_NEEDED = "scaleUpIfNeeded";
private static final String EXTRA_NO_FACE_DETECTION = "noFaceDetection";
private static final int DEFAULT_SCALE = 1;
private boolean scale = true;
private boolean scaleUpIfNeeded = true;
private boolean doFaceDetection = true;
private Uri sourceImage;
private Bitmap bitmap;
private final int aspectX;
private final int aspectY;
private final int outputX;
private final int outputY;
private final Uri saveUri;
this(DEFAULT_SCALE, DEFAULT_SCALE, outputX, outputY, saveUri);
}
final int outputY, final Uri saveUri) {
this.aspectX = aspectX;
this.aspectY = aspectY;
this.outputX = outputX;
this.outputY = outputY;
this.saveUri = saveUri;
}
public Intent
getIntent(
final Context context) {
final Intent intent = new Intent(context, CropImage.class);
intent.putExtra(EXTRA_ASPECT_X, this.aspectX);
intent.putExtra(EXTRA_ASPECT_Y, this.aspectY);
intent.putExtra(EXTRA_OUTPUT_X, this.outputX);
intent.putExtra(EXTRA_OUTPUT_Y, this.outputY);
intent.putExtra(MediaStore.EXTRA_OUTPUT, this.saveUri);
intent.putExtra(EXTRA_SCALE, this.scale);
intent.putExtra(EXTRA_SCALE_UP_IF_NEEDED, this.scaleUpIfNeeded);
intent.putExtra(EXTRA_NO_FACE_DETECTION, !this.doFaceDetection);
if (this.bitmap != null) {
intent.putExtra(EXTRA_BITMAP_DATA, this.bitmap);
}
if (this.sourceImage != null) {
intent.setData(this.sourceImage);
}
return intent;
}
public CropImageIntentBuilder
setScale(
final boolean scale) {
this.scale = scale;
return this;
}
this.scaleUpIfNeeded = scaleUpIfNeeded;
return this;
}
this.doFaceDetection = doFaceDetection;
return this;
}
public CropImageIntentBuilder
setBitmap(
final Bitmap bitmap) {
this.bitmap = bitmap;
return this;
}
this.sourceImage = sourceImage;
return this;
}
}