Advertisement
Guest User

Untitled

a guest
Sep 5th, 2018
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.69 KB | None | 0 0
  1. package com.example.l_sliuzas.uploadrestful;
  2.  
  3. import android.Manifest;
  4. import android.app.Activity;
  5. import android.content.ContentValues;
  6. import android.content.Intent;
  7. import android.content.pm.PackageManager;
  8. import android.database.Cursor;
  9. import android.graphics.Bitmap;
  10. import android.graphics.BitmapFactory;
  11. import android.net.Uri;
  12. import android.os.Environment;
  13. import android.provider.MediaStore;
  14. import android.support.annotation.NonNull;
  15. import android.support.v4.app.ActivityCompat;
  16. import android.support.v4.content.ContextCompat;
  17. import android.support.v4.content.FileProvider;
  18. import android.support.v7.app.AppCompatActivity;
  19. import android.os.Bundle;
  20. import android.text.Editable;
  21. import android.text.TextUtils;
  22. import android.text.TextWatcher;
  23. import android.util.Base64;
  24. import android.view.View;
  25. import android.widget.ArrayAdapter;
  26. import android.widget.Button;
  27. import android.widget.EditText;
  28. import android.widget.ImageView;
  29. import android.widget.Spinner;
  30. import android.widget.Toast;
  31.  
  32. import com.android.volley.AuthFailureError;
  33. import com.android.volley.Request;
  34. import com.android.volley.Response;
  35. import com.android.volley.VolleyError;
  36. import com.android.volley.toolbox.StringRequest;
  37.  
  38. import org.json.JSONException;
  39. import org.json.JSONObject;
  40.  
  41. import java.io.ByteArrayOutputStream;
  42. import java.io.File;
  43. import java.io.IOException;
  44. import java.text.SimpleDateFormat;
  45. import java.util.ArrayList;
  46. import java.util.Arrays;
  47. import java.util.Date;
  48. import java.util.HashMap;
  49. import java.util.List;
  50. import java.util.Map;
  51.  
  52. public class MainActivity extends AppCompatActivity implements View.OnClickListener{
  53.  
  54. private Button mChoose, mUpload, mCapture;
  55. private ImageView mImageView;
  56. private EditText mEditText;
  57. private final int IMAGE_REQUEST = 1;
  58. private final int REQUEST_TAKE_PHOTO = 20;
  59. private final static int REQUEST_CODE_ASK_PERMISSIONS = 1;
  60. String mCurrentPhotoPath;
  61. Uri photoURI;
  62. private Bitmap bitmap;
  63. private Spinner staticSpinner;
  64. private static final String[] REQUIRED_SDK_PERMISSIONS = new String[] {
  65. Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE };
  66. private String UploadUrl = "http://192.168.1.71:3307/imageuploadapp/uploadinfo.php";
  67.  
  68. @Override
  69. protected void onCreate(Bundle savedInstanceState) {
  70. super.onCreate(savedInstanceState);
  71. setContentView(R.layout.activity_main);
  72.  
  73. mChoose = (Button) findViewById(R.id.btnChoose);
  74. mUpload = (Button) findViewById(R.id.btnUpload);
  75. mImageView = (ImageView) findViewById(R.id.imageView);
  76. mEditText = (EditText) findViewById(R.id.ImageName);
  77. mCapture = (Button) findViewById(R.id.btnCapture);
  78.  
  79.  
  80. mCapture.setOnClickListener(this);
  81. mChoose.setOnClickListener(this);
  82. mUpload.setOnClickListener(this);
  83.  
  84.  
  85. checkPermissions();
  86.  
  87. staticSpinner = (Spinner) findViewById(R.id.static_spinner);
  88. ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter
  89. .createFromResource(this, R.array.brew_array,
  90. android.R.layout.simple_spinner_item);
  91. staticAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  92. staticSpinner.setAdapter(staticAdapter);
  93.  
  94. }
  95.  
  96. protected void checkPermissions() {
  97. final List<String> missingPermissions = new ArrayList<String>();
  98. // check all required dynamic permissions
  99. for (final String permission : REQUIRED_SDK_PERMISSIONS) {
  100. final int result = ContextCompat.checkSelfPermission(this, permission);
  101. if (result != PackageManager.PERMISSION_GRANTED) {
  102. missingPermissions.add(permission);
  103. }
  104. }
  105. if (!missingPermissions.isEmpty()) {
  106. // request all missing permissions
  107. final String[] permissions = missingPermissions
  108. .toArray(new String[missingPermissions.size()]);
  109. ActivityCompat.requestPermissions(this, permissions, REQUEST_CODE_ASK_PERMISSIONS);
  110. } else {
  111. final int[] grantResults = new int[REQUIRED_SDK_PERMISSIONS.length];
  112. Arrays.fill(grantResults, PackageManager.PERMISSION_GRANTED);
  113. onRequestPermissionsResult(REQUEST_CODE_ASK_PERMISSIONS, REQUIRED_SDK_PERMISSIONS,
  114. grantResults);
  115. }
  116. }
  117.  
  118. @Override
  119. public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[],
  120. @NonNull int[] grantResults) {
  121. switch (requestCode) {
  122. case REQUEST_CODE_ASK_PERMISSIONS:
  123. for (int index = permissions.length - 1; index >= 0; --index) {
  124. if (grantResults[index] != PackageManager.PERMISSION_GRANTED) {
  125. // exit the app if one permission is not granted
  126. Toast.makeText(this, "Required permission '" + permissions[index]
  127. + "' not granted, exiting", Toast.LENGTH_LONG).show();
  128. finish();
  129. return;
  130. }
  131. }
  132. }
  133. }
  134.  
  135.  
  136.  
  137. @Override
  138. public void onClick(View v) {
  139.  
  140. switch (v.getId())
  141. {
  142. case R.id.btnCapture:
  143. dispatchTakePictureIntent();
  144. break;
  145.  
  146. case R.id.btnChoose:
  147. ImageSelection();
  148. break;
  149.  
  150. case R.id.btnUpload:
  151. UploadImage();
  152. break;
  153. }
  154. }
  155.  
  156.  
  157. private void dispatchTakePictureIntent() {
  158. Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  159.  
  160. if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
  161.  
  162. File photoFile = null;
  163. try {
  164. photoFile = createImageFile();
  165. } catch (IOException ex) {
  166.  
  167. }
  168. if (photoFile != null) {
  169. photoURI = FileProvider.getUriForFile(this,
  170. "com.example.l_sliuzas.fileprovider",
  171. photoFile);
  172. takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
  173. startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
  174. }
  175. }
  176. }
  177.  
  178. private void ImageSelection()
  179. {
  180. Intent intent = new Intent();
  181. intent.setType("image/*");
  182. intent.setAction(Intent.ACTION_GET_CONTENT);
  183. startActivityForResult(intent, IMAGE_REQUEST);
  184.  
  185. }
  186.  
  187.  
  188. @Override
  189. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  190. super.onActivityResult(requestCode, resultCode, data);
  191. if(requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {
  192.  
  193. // bitmap = (Bitmap)data.getExtras().get("data");
  194. bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);
  195. mImageView.setImageBitmap(bitmap);
  196. mImageView.setVisibility(View.VISIBLE);
  197. mEditText.setVisibility(View.VISIBLE);
  198. staticSpinner.setVisibility(View.VISIBLE);
  199.  
  200. if (TextUtils.isEmpty(mEditText.getText())){
  201. mEditText.setError("Prašome įvesti pavadinimą!");
  202. }
  203. }
  204.  
  205. else if (requestCode == IMAGE_REQUEST && resultCode == RESULT_OK && data != null)
  206. {
  207.  
  208. Uri FilePath = data.getData();
  209. try {
  210.  
  211. bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), FilePath);
  212. mImageView.setImageBitmap(bitmap);
  213. mImageView.setVisibility(View.VISIBLE);
  214. mEditText.setVisibility(View.VISIBLE);
  215. staticSpinner.setVisibility(View.VISIBLE);
  216. if (TextUtils.isEmpty(mEditText.getText())){
  217. mEditText.setError("MUST");
  218. }
  219.  
  220.  
  221.  
  222. } catch (IOException e) {
  223. e.printStackTrace();
  224. }
  225. }
  226.  
  227.  
  228. }
  229.  
  230. private File createImageFile() throws IOException {
  231.  
  232. String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
  233. String imageFileName = "JPEG_" + timeStamp + "_";
  234. File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
  235. File image = File.createTempFile(
  236. imageFileName,
  237. ".jpg",
  238. storageDir
  239. );
  240.  
  241. mCurrentPhotoPath = image.getAbsolutePath();
  242. return image;
  243. }
  244.  
  245.  
  246. private void UploadImage (){
  247.  
  248. StringRequest stringRequest = new StringRequest(Request.Method.POST, UploadUrl,
  249. new Response.Listener<String>() {
  250. @Override
  251. public void onResponse(String response) {
  252.  
  253. try {
  254. JSONObject jsonObject = new JSONObject(response);
  255. String Response = jsonObject.getString("response");
  256. Toast.makeText(MainActivity.this,Response,Toast.LENGTH_SHORT).show();
  257. mImageView.setImageResource(0);
  258. mImageView.setVisibility(View.GONE);
  259. mEditText.setText("");
  260. mEditText.setVisibility(View.GONE);
  261. staticSpinner.setVisibility(View.GONE);
  262. File file = new File(String.valueOf(photoURI));
  263. file.delete();
  264. } catch (JSONException e) {
  265. e.printStackTrace();
  266. }
  267.  
  268. }
  269. }, new Response.ErrorListener() {
  270. @Override
  271. public void onErrorResponse(VolleyError error) {
  272.  
  273. }
  274. })
  275.  
  276. {
  277. @Override
  278. protected Map<String, String> getParams() throws AuthFailureError {
  279. Map<String,String> params = new HashMap<>();
  280. params.put("name1",mEditText.getText().toString().trim());
  281. params.put("name2", staticSpinner.getSelectedItem().toString().trim());
  282. params.put("image",ImageToString(bitmap));
  283.  
  284. return params;
  285. }
  286. };
  287.  
  288. SingletonClass.getInstance(MainActivity.this).addToRequestQue(stringRequest);
  289.  
  290. }
  291.  
  292. private String ImageToString(Bitmap bitmap){
  293.  
  294. ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
  295. bitmap.compress(Bitmap.CompressFormat.JPEG, 25, byteArrayOutputStream);
  296. byte [] imgBytes = byteArrayOutputStream.toByteArray();
  297.  
  298. return Base64.encodeToString(imgBytes, Base64.DEFAULT);
  299. }
  300.  
  301. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement