package com.rec.photoeditor.editoractivity;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import com.rec.photoeditor.R;
import com.rec.photoeditor.graphics.ImageProcessor;
import com.rec.photoeditor.graphics.ImageProcessorListener;
import com.rec.photoeditor.graphics.commands.BlackFrameCommand;
import com.rec.photoeditor.graphics.commands.ImageProcessingCommand;
public class TestCommandActivity extends Activity implements
ImageProcessorListener {
private ImageProcessor imageProcessor;
private ImageView imageView;
private SeekBar slider;
private ImageButton okButton;
private ImageButton cancelButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_activity);
initializeComponents();
}
private void initializeComponents() {
imageProcessor = ImageProcessor.getInstance();
imageView = (ImageView) findViewById(R.id.image_view);
imageView.setImageBitmap(imageProcessor.getBitmap());
slider = (SeekBar) findViewById(R.id.slider);
slider.setOnSeekBarChangeListener(sliderChangeListener);
okButton = (ImageButton) findViewById(R.id.ok_button);
okButton.setOnClickListener(okButtonListener);
cancelButton = (ImageButton) findViewById(R.id.cancel_button);
cancelButton.setOnClickListener(cancelButtonListener);
}
private ImageProcessingCommand crateTestCommand() {
// return new BlackFrameCommand((float)(100));
return new BlackFrameCommand();
// return new GaussianBlurCommand();
// return new BrightnessCommand(100);
// return new SharpenCommand(5);
// return new SepiaCommand();
// return new TintCommand();
// return new DecreaseColorDepthCommand(64);
// return new InvertColorCommand();
// return new ColorFilterCommand(1.5, 0.5, 0.8);
}
private OnSeekBarChangeListener sliderChangeListener = new OnSeekBarChangeListener() {
public void onStopTrackingTouch(SeekBar seekBar) {
// do nothing
}
public void onStartTrackingTouch(SeekBar seekBar) {
// do nothing
}
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
runImageProcessor();
}
};
private OnClickListener okButtonListener = new OnClickListener() {
public void onClick(View v) {
setResult(RESULT_OK);
imageProcessor.save();
finish();
}
};
private void runImageProcessor() {
ImageProcessingCommand command = crateTestCommand();
ImageProcessor.getInstance().setProcessListener(this);
ImageProcessor.getInstance().runCommand(command);
}
private OnClickListener cancelButtonListener = new OnClickListener() {
public void onClick(View v) {
setResult(RESULT_CANCELED);
imageProcessor.clearProcessListener();
finish();
}
};
public void onProcessStart() {
// turn off buttons and show "processing" animation
}
public void onProcessEnd(Bitmap result) {
imageView.setImageBitmap(result);
imageView.invalidate();
}
}