package com.codepath.apps.tumblrsnap.activities; import android.graphics.Bitmap; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.Menu; import android.view.MenuItem; import android.widget.ImageView; import com.codepath.apps.tumblrsnap.ImageFilterProcessor; import com.codepath.apps.tumblrsnap.R; import com.codepath.apps.tumblrsnap.TumblrClient; import com.codepath.apps.tumblrsnap.models.User; import com.codepath.libraries.androidviewhelpers.SimpleProgressDialog; import com.loopj.android.http.AsyncHttpResponseHandler; public class PreviewPhotoActivity extends FragmentActivity { private Bitmap photoBitmap; private Bitmap processedBitmap; private SimpleProgressDialog dialog; private ImageView ivPreview; private ImageFilterProcessor filterProcessor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_preview_photo); ivPreview = (ImageView) findViewById(R.id.ivPreview); photoBitmap = getIntent().getParcelableExtra("photo_bitmap"); filterProcessor = new ImageFilterProcessor(photoBitmap); redisplayPreview(ImageFilterProcessor.NONE); } private void redisplayPreview(int effectId) { processedBitmap = filterProcessor.applyFilter(effectId); ivPreview.setImageBitmap(processedBitmap); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.preview_photo, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int itemId = item.getItemId(); if (itemId == R.id.more || itemId == R.id.action_save) return true; int effectId = 0; switch (itemId) { case R.id.filter_none: effectId = ImageFilterProcessor.NONE; break; case R.id.filter_blur: effectId = ImageFilterProcessor.BLUR; break; case R.id.filter_grayscale: effectId = ImageFilterProcessor.GRAYSCALE; break; case R.id.filter_crystallize: effectId = ImageFilterProcessor.CRYSTALLIZE; break; case R.id.filter_solarize: effectId = ImageFilterProcessor.SOLARIZE; break; case R.id.filter_glow: effectId = ImageFilterProcessor.GLOW; break; default: effectId = ImageFilterProcessor.NONE; break; } redisplayPreview(effectId); return true; } public void onSaveButton(MenuItem menuItem) { dialog = SimpleProgressDialog.build(this); dialog.show(); TumblrClient client = ((TumblrClient) TumblrClient.getInstance(TumblrClient.class, this)); client.createPhotoPost(User.currentUser().getBlogHostname(), processedBitmap, new AsyncHttpResponseHandler() { @Override public void onSuccess(int arg0, String arg1) { dialog.dismiss(); PreviewPhotoActivity.this.finish(); } @Override public void onFailure(Throwable arg0, String arg1) { dialog.dismiss(); } }); } }