package com.webshrub.citizencomplaint.androidapp; import android.app.Dialog; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.preference.PreferenceManager; import android.provider.MediaStore; import android.view.View; import android.widget.AdapterView; import android.widget.ImageView; import android.widget.ListView; import com.actionbarsherlock.app.SherlockActivity; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.ImageLoader; import static com.webshrub.citizencomplaint.androidapp.CitizenComplaintConstants.*; /** * Created by IntelliJ IDEA. * User: Ahsan.Javed * Date: 4/28/13 * Time: 3:11 PM */ public class CitizenComplaintProfileActivity extends SherlockActivity implements View.OnClickListener { private Uri profileImageUri; private SharedPreferences preferences; private DisplayImageOptions options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.camera) .showImageForEmptyUri(R.drawable.ic_empty) .showImageOnFail(R.drawable.ic_error) .cacheInMemory() .cacheOnDisc() .bitmapConfig(Bitmap.Config.RGB_565) .build(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.citizen_complaint_profile_activity); findViewById(R.id.button1).setOnClickListener(this); preferences = PreferenceManager.getDefaultSharedPreferences(this); String profileImageUriString = preferences.getString(PROFILE_IMAGE_URI, ""); if (!profileImageUriString.equals("")) { profileImageUri = Uri.parse(profileImageUriString); ImageView imageView = (ImageView) findViewById(R.id.imageView1); ImageLoader.getInstance().displayImage(profileImageUri.toString(), imageView, options); } } @SuppressWarnings("unchecked") @Override public void onClick(View v) { switch (v.getId()) { case R.id.button1: { showUploadPhotoDialog(); break; } } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); ImageView imageView = ((ImageView) findViewById(R.id.imageView1)); switch (requestCode) { case IMAGE_CAPTURE_REQUEST: if (resultCode == RESULT_OK) { if (profileImageUri != null) { ImageLoader.getInstance().displayImage(profileImageUri.toString(), imageView, options); String thumbnailPath = CitizenComplaintUtility.getCompressedImagePath(CitizenComplaintUtility.getAbsoluteFilePath(this, profileImageUri.toString()), THUMBNAIL_SIZE, THUMBNAIL_SIZE); SharedPreferences.Editor preferenceEditor = preferences.edit(); preferenceEditor.putString(PROFILE_IMAGE_URI, profileImageUri.toString()); preferenceEditor.putString(PROFILE_THUMBNAIL_IMAGE_URI, thumbnailPath); preferenceEditor.commit(); } } break; case IMAGE_SELECT_REQUEST: if (resultCode == RESULT_OK) { profileImageUri = intent.getData(); if (profileImageUri != null) { ImageLoader.getInstance().displayImage(profileImageUri.toString(), imageView, options); String thumbnailPath = CitizenComplaintUtility.getCompressedImagePath(CitizenComplaintUtility.getAbsoluteFilePath(this, profileImageUri.toString()), THUMBNAIL_SIZE, THUMBNAIL_SIZE); SharedPreferences.Editor preferenceEditor = preferences.edit(); preferenceEditor.putString(PROFILE_IMAGE_URI, profileImageUri.toString()); preferenceEditor.putString(PROFILE_THUMBNAIL_IMAGE_URI, thumbnailPath); preferenceEditor.commit(); } } default: break; } } private void showUploadPhotoDialog() { Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.citizen_complaint_upload_photo_dialog); ListView listView = (ListView) dialog.findViewById(R.id.listview1); listView.setOnItemClickListener(new CitizenComplaintUploadPhotoOnItemClickListener(dialog)); dialog.setCancelable(true); dialog.setTitle("Upload Photo"); dialog.show(); } private class CitizenComplaintUploadPhotoOnItemClickListener implements AdapterView.OnItemClickListener { private Dialog dialog; public CitizenComplaintUploadPhotoOnItemClickListener(Dialog dialog) { this.dialog = dialog; } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Intent newIntent; dialog.dismiss(); switch (position) { case 0: newIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); profileImageUri = CitizenComplaintUtility.getOutputMediaFileUri(MEDIA_TYPE_IMAGE); newIntent.putExtra(MediaStore.EXTRA_OUTPUT, profileImageUri); startActivityForResult(newIntent, IMAGE_CAPTURE_REQUEST); break; case 1: newIntent = new Intent(); newIntent.setType("image/*"); newIntent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(newIntent, IMAGE_SELECT_REQUEST); break; } } } }