/** * Copyright (c) 2012 Vinayak Solutions Private Limited * See the file license.txt for copying permission. */ package com.vinsol.expensetracker.show; import java.io.File; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.LinearLayout.LayoutParams; import android.widget.Toast; import com.vinsol.expensetracker.Constants; import com.vinsol.expensetracker.R; import com.vinsol.expensetracker.entry.CameraEntry; import com.vinsol.expensetracker.helpers.FavoriteHelper; import com.vinsol.expensetracker.utils.ImagePreview; public class ShowCamera extends ShowAbstract { private ImageView showImageDisplay; private LinearLayout showCameraDetails; private Bitmap bitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ///// ****** Assigning memory ******* ///////// showImageDisplay = (ImageView) findViewById(R.id.show_image_display); showCameraDetails = (LinearLayout) findViewById(R.id.show_camera_details); // //////********* Get id from intent extras ******** //////////// setGraphicsCamera(); typeOfEntry = R.string.camera; typeOfEntryFinished = R.string.finished_cameraentry; typeOfEntryUnfinished = R.string.unfinished_cameraentry; showHelper(); if (intentExtras.containsKey(Constants.KEY_ENTRY_LIST_EXTRA)) { File mFile = fileHelper.getCameraFileSmallEntry(mShowList.id); if (mFile.canRead()) { bitmap = BitmapFactory.decodeFile(mFile.getPath()); if(bitmap.getHeight() > bitmap.getWidth()) { final float scale = this.getResources().getDisplayMetrics().density; int width = (int) (84 * scale + 0.5f); int height = (int) (111 * scale + 0.5f); showImageDisplay.setLayoutParams(new LayoutParams(width, height)); } showImageDisplay.setImageBitmap(bitmap); } else { showImageDisplay.setImageResource(R.drawable.no_image_small); } mFavoriteHelper = new FavoriteHelper(this,mDatabaseAdapter,fileHelper,mShowList); } showImageDisplay.setOnClickListener(this); } private void setGraphicsCamera() { // ///// ***** Sets Title Camera Entry *********/////// showHeaderTitle.setText("Camera Entry"); // //// ****** Shows Camera Details ********//////// showCameraDetails.setVisibility(View.VISIBLE); } @Override protected void deleteFile() { fileHelper.deleteAllEntryFiles(mShowList.id); } @Override protected void editAction() { Intent editIntent = new Intent(this, CameraEntry.class); editIntent.putExtras(intentExtras); startActivityForResult(editIntent,SHOW_RESULT); } @Override public void onClick(View v) { super.onClick(v); if (v.getId() == R.id.show_image_display) { if (mShowList.id != null) { Intent intent = new Intent(this, ImagePreview.class); intent.putExtra(Constants.KEY_ID, mShowList.id); startActivity(intent); } else { Toast.makeText(this, "Error Opening Image", Toast.LENGTH_SHORT).show(); } } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (SHOW_RESULT == requestCode) { intentExtras = data.getExtras(); if(Activity.RESULT_OK == resultCode) { doTaskOnActivityResult(); if (intentExtras.containsKey(Constants.KEY_ENTRY_LIST_EXTRA)) { File mFile = fileHelper.getCameraFileSmallEntry(mShowList.id); if (mFile.canRead()) { bitmap = BitmapFactory.decodeFile(mFile.getPath()); if(bitmap.getHeight() > bitmap.getWidth()) { final float scale = this.getResources().getDisplayMetrics().density; int width = (int) (84 * scale + 0.5f); int height = (int) (111 * scale + 0.5f); showImageDisplay.setLayoutParams(new LayoutParams(width, height)); } showImageDisplay.setImageBitmap(bitmap); } else { showImageDisplay.setImageResource(R.drawable.no_image_small); } mShowList = intentExtras.getParcelable(Constants.KEY_ENTRY_LIST_EXTRA); mFavoriteHelper = new FavoriteHelper(this,mDatabaseAdapter,fileHelper,mShowList); } showImageDisplay.setOnClickListener(this); showDelete.setOnClickListener(this); showEdit.setOnClickListener(this); } } if(resultCode == Activity.RESULT_CANCELED) { finish(); } } private void recycleBitmap() { if(bitmap!=null) {bitmap.recycle();} } @Override public void onBackPressed() { recycleBitmap(); super.onBackPressed(); } }