Guest User

Untitled

a guest
Jan 23rd, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.66 KB | None | 0 0
  1. package com.stegano.strenggeheim.fragment;
  2.  
  3. import android.content.DialogInterface;
  4. import android.content.Intent;
  5. import android.content.pm.PackageManager;
  6. import android.graphics.Bitmap;
  7. import android.media.MediaScannerConnection;
  8. import android.net.Uri;
  9. import android.os.Bundle;
  10. import android.os.Environment;
  11. import android.provider.MediaStore;
  12. import android.support.v4.app.Fragment;
  13. import android.support.v7.app.AlertDialog;
  14. import android.util.Log;
  15. import android.view.LayoutInflater;
  16. import android.view.View;
  17. import android.view.ViewGroup;
  18. import android.widget.ImageView;
  19. import android.widget.TextView;
  20. import android.widget.Toast;
  21.  
  22. import com.stegano.strenggeheim.R;
  23. import com.stegano.strenggeheim.utils.PermissionUtility;
  24.  
  25. import java.io.ByteArrayOutputStream;
  26. import java.io.File;
  27. import java.io.FileOutputStream;
  28. import java.io.IOException;
  29. import java.util.UUID;
  30.  
  31.  
  32. public class FragmentEncode extends Fragment {
  33. private static final String IMAGE_DIRECTORY = "/myImages";
  34. private static final int GALLERY = 0, CAMERA = 1;
  35. private static Uri contentURI;
  36. TextView imageTextMessage;
  37. ImageView loadImage;
  38.  
  39. public FragmentEncode() {
  40. }
  41.  
  42. @Override
  43. public void onCreate(Bundle savedInstanceState) {
  44. super.onCreate(savedInstanceState);
  45. setRetainInstance(true);
  46. }
  47.  
  48. public void galleryIntent() {
  49. Intent galleryIntent = new Intent(Intent.ACTION_PICK,
  50. android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
  51. startActivityForResult(galleryIntent, GALLERY);
  52. }
  53.  
  54. private void cameraIntent() {
  55. Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
  56. startActivityForResult(intent, CAMERA);
  57. }
  58.  
  59. @Override
  60. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  61. Bundle savedInstanceState) {
  62. View view = inflater.inflate(R.layout.fragment_encode, container, false);
  63.  
  64. imageTextMessage = view.findViewById(R.id.imageTextMessage);
  65. loadImage = view.findViewById(R.id.loadImage);
  66.  
  67. loadImage.setOnClickListener(new View.OnClickListener() {
  68. @Override
  69. public void onClick(View v) {
  70. showPictureDialog();
  71. }
  72. });
  73. return view;
  74. }
  75.  
  76. private void showPictureDialog(){
  77. AlertDialog.Builder pictureDialog = new AlertDialog.Builder(getContext());
  78. pictureDialog.setTitle("Select Action");
  79. String[] pictureDialogItems = {
  80. "Select photo from gallery",
  81. "Capture photo from camera",
  82. "Cancel"
  83. };
  84. pictureDialog.setItems(pictureDialogItems,
  85. new DialogInterface.OnClickListener() {
  86. @Override
  87. public void onClick(DialogInterface dialog, int which) {
  88. switch (which) {
  89. case 0:
  90. galleryIntent();
  91. break;
  92. case 1:
  93. cameraIntent();
  94. break;
  95. case 2:
  96. dialog.dismiss();
  97. break;
  98. }
  99. }
  100. });
  101. pictureDialog.show();
  102. }
  103.  
  104. @Override
  105. public void onActivityResult(int requestCode, int resultCode, Intent data) {
  106. super.onActivityResult(requestCode, resultCode, data);
  107. if (resultCode == getActivity().RESULT_CANCELED) {
  108. return;
  109. }
  110. if (requestCode == GALLERY) {
  111. if (data != null) {
  112. contentURI = data.getData();
  113. try {
  114. Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContext().getContentResolver(), contentURI);
  115. String path = saveImage(bitmap);
  116. Log.println(Log.INFO, "Message", path);
  117. Toast.makeText(getContext(), "Image Saved!", Toast.LENGTH_SHORT).show();
  118. loadImage.setImageBitmap(bitmap);
  119. imageTextMessage.setVisibility(View.INVISIBLE);
  120.  
  121. } catch (IOException e) {
  122. e.printStackTrace();
  123. Toast.makeText(getContext(), "Failed!", Toast.LENGTH_SHORT).show();
  124. }
  125. }
  126.  
  127. } else if (requestCode == CAMERA) {
  128. Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
  129. loadImage.setImageBitmap(thumbnail);
  130. saveImage(thumbnail);
  131. Toast.makeText(getContext(), "Image Saved!", Toast.LENGTH_SHORT).show();
  132. imageTextMessage.setVisibility(View.INVISIBLE);
  133. }
  134. }
  135.  
  136.  
  137. public String saveImage(Bitmap bmpImage) {
  138. ByteArrayOutputStream bytes = new ByteArrayOutputStream();
  139. bmpImage.compress(Bitmap.CompressFormat.PNG, 100, bytes);
  140. File encodeImageDirectory =
  141. new File(Environment.getExternalStorageDirectory() + IMAGE_DIRECTORY);
  142.  
  143. if (!encodeImageDirectory.exists()) {
  144. encodeImageDirectory.mkdirs();
  145. }
  146. try {
  147. String uniqueId = UUID.randomUUID().toString();
  148. File f = new File(encodeImageDirectory, uniqueId + ".png");
  149. f.createNewFile();
  150. FileOutputStream fo = new FileOutputStream(f);
  151. fo.write(bytes.toByteArray());
  152. MediaScannerConnection.scanFile(getContext(),
  153. new String[]{f.getPath()},
  154. new String[]{"image/png"}, null);
  155. fo.close();
  156.  
  157. return f.getAbsolutePath();
  158. } catch (IOException e1) {
  159. e1.printStackTrace();
  160. }
  161. return "";
  162. }
  163. }
Add Comment
Please, Sign In to add comment