Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.stegano.strenggeheim.fragment;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.graphics.Bitmap;
- import android.media.MediaScannerConnection;
- import android.net.Uri;
- import android.os.Bundle;
- import android.os.Environment;
- import android.provider.MediaStore;
- import android.support.v4.app.Fragment;
- import android.support.v7.app.AlertDialog;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.ImageView;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.stegano.strenggeheim.R;
- import com.stegano.strenggeheim.utils.PermissionUtility;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.UUID;
- public class FragmentEncode extends Fragment {
- private static final String IMAGE_DIRECTORY = "/myImages";
- private static final int GALLERY = 0, CAMERA = 1;
- private static Uri contentURI;
- TextView imageTextMessage;
- ImageView loadImage;
- public FragmentEncode() {
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setRetainInstance(true);
- }
- public void galleryIntent() {
- Intent galleryIntent = new Intent(Intent.ACTION_PICK,
- android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
- startActivityForResult(galleryIntent, GALLERY);
- }
- private void cameraIntent() {
- Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(intent, CAMERA);
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_encode, container, false);
- imageTextMessage = view.findViewById(R.id.imageTextMessage);
- loadImage = view.findViewById(R.id.loadImage);
- loadImage.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- showPictureDialog();
- }
- });
- return view;
- }
- private void showPictureDialog(){
- AlertDialog.Builder pictureDialog = new AlertDialog.Builder(getContext());
- pictureDialog.setTitle("Select Action");
- String[] pictureDialogItems = {
- "Select photo from gallery",
- "Capture photo from camera",
- "Cancel"
- };
- pictureDialog.setItems(pictureDialogItems,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- switch (which) {
- case 0:
- galleryIntent();
- break;
- case 1:
- cameraIntent();
- break;
- case 2:
- dialog.dismiss();
- break;
- }
- }
- });
- pictureDialog.show();
- }
- @Override
- public void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (resultCode == getActivity().RESULT_CANCELED) {
- return;
- }
- if (requestCode == GALLERY) {
- if (data != null) {
- contentURI = data.getData();
- try {
- Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContext().getContentResolver(), contentURI);
- String path = saveImage(bitmap);
- Log.println(Log.INFO, "Message", path);
- Toast.makeText(getContext(), "Image Saved!", Toast.LENGTH_SHORT).show();
- loadImage.setImageBitmap(bitmap);
- imageTextMessage.setVisibility(View.INVISIBLE);
- } catch (IOException e) {
- e.printStackTrace();
- Toast.makeText(getContext(), "Failed!", Toast.LENGTH_SHORT).show();
- }
- }
- } else if (requestCode == CAMERA) {
- Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
- loadImage.setImageBitmap(thumbnail);
- saveImage(thumbnail);
- Toast.makeText(getContext(), "Image Saved!", Toast.LENGTH_SHORT).show();
- imageTextMessage.setVisibility(View.INVISIBLE);
- }
- }
- public String saveImage(Bitmap bmpImage) {
- ByteArrayOutputStream bytes = new ByteArrayOutputStream();
- bmpImage.compress(Bitmap.CompressFormat.PNG, 100, bytes);
- File encodeImageDirectory =
- new File(Environment.getExternalStorageDirectory() + IMAGE_DIRECTORY);
- if (!encodeImageDirectory.exists()) {
- encodeImageDirectory.mkdirs();
- }
- try {
- String uniqueId = UUID.randomUUID().toString();
- File f = new File(encodeImageDirectory, uniqueId + ".png");
- f.createNewFile();
- FileOutputStream fo = new FileOutputStream(f);
- fo.write(bytes.toByteArray());
- MediaScannerConnection.scanFile(getContext(),
- new String[]{f.getPath()},
- new String[]{"image/png"}, null);
- fo.close();
- return f.getAbsolutePath();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- return "";
- }
- }
Add Comment
Please, Sign In to add comment