Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package boen.darbusauga;
- import android.Manifest;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.net.Uri;
- import android.os.Environment;
- import android.provider.MediaStore;
- import android.support.annotation.NonNull;
- import android.support.v4.app.ActivityCompat;
- import android.support.v4.content.ContextCompat;
- import android.support.v4.content.FileProvider;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.Editable;
- import android.text.TextUtils;
- import android.text.TextWatcher;
- import android.util.Base64;
- import android.view.View;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.Spinner;
- import android.widget.Toast;
- import com.android.volley.AuthFailureError;
- import com.android.volley.Request;
- import com.android.volley.Response;
- import com.android.volley.VolleyError;
- import com.android.volley.toolbox.StringRequest;
- import org.json.JSONException;
- import org.json.JSONObject;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.IOException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- public class MainActivity extends AppCompatActivity implements View.OnClickListener{
- private Button mChoose, mUpload, mCapture;
- private ImageView mImageView;
- private EditText mEditText;
- private final int IMAGE_REQUEST = 1;
- private final int REQUEST_TAKE_PHOTO = 20;
- private final static int REQUEST_CODE_ASK_PERMISSIONS = 1;
- String mCurrentPhotoPath;
- File photoFile;
- private Bitmap bitmap;
- private Spinner staticSpinner;
- private static final String[] REQUIRED_SDK_PERMISSIONS = new String[] {
- Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE };
- private String UploadUrl = "http://88.118.174.138:3307/imageuploadapp/uploadinfo.php";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mChoose = (Button) findViewById(R.id.btnChoose);
- mUpload = (Button) findViewById(R.id.btnUpload);
- mImageView = (ImageView) findViewById(R.id.imageView);
- mEditText = (EditText) findViewById(R.id.ImageName);
- mCapture = (Button) findViewById(R.id.btnCapture);
- mCapture.setOnClickListener(this);
- mChoose.setOnClickListener(this);
- mUpload.setOnClickListener(this);
- checkPermissions();
- mEditText.addTextChangedListener(EmptyEdit);
- staticSpinner = (Spinner) findViewById(R.id.static_spinner);
- ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter
- .createFromResource(this, R.array.brew_array,
- android.R.layout.simple_spinner_item);
- staticAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
- staticSpinner.setAdapter(staticAdapter);
- mEditText.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- if(s.toString().trim().length()==0){
- mUpload.setEnabled(false);
- }
- else {
- mUpload.setEnabled(true);
- }
- }
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- }
- @Override
- public void afterTextChanged(Editable s) {
- }
- });
- }
- protected void checkPermissions() {
- final List<String> missingPermissions = new ArrayList<String>();
- // check all required dynamic permissions
- for (final String permission : REQUIRED_SDK_PERMISSIONS) {
- final int result = ContextCompat.checkSelfPermission(this, permission);
- if (result != PackageManager.PERMISSION_GRANTED) {
- missingPermissions.add(permission);
- }
- }
- if (!missingPermissions.isEmpty()) {
- // request all missing permissions
- final String[] permissions = missingPermissions
- .toArray(new String[missingPermissions.size()]);
- ActivityCompat.requestPermissions(this, permissions, REQUEST_CODE_ASK_PERMISSIONS);
- } else {
- final int[] grantResults = new int[REQUIRED_SDK_PERMISSIONS.length];
- Arrays.fill(grantResults, PackageManager.PERMISSION_GRANTED);
- onRequestPermissionsResult(REQUEST_CODE_ASK_PERMISSIONS, REQUIRED_SDK_PERMISSIONS,
- grantResults);
- }
- }
- @Override
- public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[],
- @NonNull int[] grantResults) {
- switch (requestCode) {
- case REQUEST_CODE_ASK_PERMISSIONS:
- for (int index = permissions.length - 1; index >= 0; --index) {
- if (grantResults[index] != PackageManager.PERMISSION_GRANTED) {
- // exit the app if one permission is not granted
- Toast.makeText(this, "Required permission '" + permissions[index]
- + "' not granted, exiting", Toast.LENGTH_LONG).show();
- finish();
- return;
- }
- }
- }
- }
- @Override
- public void onClick(View v) {
- switch (v.getId())
- {
- case R.id.btnCapture:
- dispatchTakePictureIntent();
- break;
- case R.id.btnChoose:
- ImageSelection();
- break;
- case R.id.btnUpload:
- UploadImage();
- break;
- }
- }
- private void dispatchTakePictureIntent() {
- Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
- photoFile = null;
- try {
- photoFile = createImageFile();
- } catch (IOException ex) {
- }
- if (photoFile != null) {
- Uri photoURI = FileProvider.getUriForFile(this,
- "boen.darbusauga.fileprovider",
- photoFile);
- takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
- startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
- }
- }
- }
- private void ImageSelection()
- {
- Intent intent = new Intent();
- intent.setType("image/*");
- intent.setAction(Intent.ACTION_GET_CONTENT);
- startActivityForResult(intent, IMAGE_REQUEST);
- }
- private TextWatcher EmptyEdit = new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- }
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- if (s.toString().trim().length()==0)
- {
- mUpload.setEnabled(false);
- } else {
- mUpload.setEnabled(true);
- }
- }
- @Override
- public void afterTextChanged(Editable s) {
- }
- };
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if(requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {
- bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);
- mImageView.setImageBitmap(bitmap);
- mImageView.setVisibility(View.VISIBLE);
- mEditText.setVisibility(View.VISIBLE);
- staticSpinner.setVisibility(View.VISIBLE);
- mUpload.setVisibility(View.VISIBLE);
- mEditText.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- if(s.toString().trim().length()==0){
- mUpload.setEnabled(false);
- }
- else {
- mUpload.setEnabled(true);
- }
- }
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- }
- @Override
- public void afterTextChanged(Editable s) {
- }
- });
- if (TextUtils.isEmpty(mEditText.getText())){
- mEditText.setError("MUST");
- }
- }
- else if (requestCode == IMAGE_REQUEST && resultCode == RESULT_OK && data != null)
- {
- Uri FilePath = data.getData();
- try {
- bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), FilePath);
- mImageView.setImageBitmap(bitmap);
- mImageView.setVisibility(View.VISIBLE);
- mEditText.setVisibility(View.VISIBLE);
- staticSpinner.setVisibility(View.VISIBLE);
- mUpload.setVisibility(View.VISIBLE);
- if (TextUtils.isEmpty(mEditText.getText())){
- mEditText.setError("MUST");
- mUpload.setEnabled(false);
- }
- else {
- mUpload.setEnabled(true);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- private File createImageFile() throws IOException {
- String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
- String imageFileName = "JPEG_" + timeStamp + "_";
- File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
- File image = File.createTempFile(
- imageFileName,
- ".jpg",
- storageDir
- );
- mCurrentPhotoPath = image.getAbsolutePath();
- return image;
- }
- private void UploadImage (){
- StringRequest stringRequest = new StringRequest(Request.Method.POST, UploadUrl,
- new Response.Listener<String>() {
- @Override
- public void onResponse(String response) {
- try {
- JSONObject jsonObject = new JSONObject(response);
- String Response = jsonObject.getString("response");
- Toast.makeText(MainActivity.this,Response,Toast.LENGTH_SHORT).show();
- mImageView.setImageResource(0);
- mImageView.setVisibility(View.GONE);
- mEditText.setText("");
- mEditText.setVisibility(View.GONE);
- staticSpinner.setVisibility(View.GONE);
- mCapture.setVisibility(View.VISIBLE);
- mChoose.setVisibility(View.VISIBLE);
- mUpload.setVisibility(View.GONE);
- photoFile = new File(String.valueOf(photoFile));
- photoFile.delete();
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- }, new Response.ErrorListener() {
- @Override
- public void onErrorResponse(VolleyError error) {
- }
- })
- {
- @Override
- protected Map<String, String> getParams() throws AuthFailureError {
- Map<String,String> params = new HashMap<>();
- params.put("name1",mEditText.getText().toString().trim());
- params.put("name2", staticSpinner.getSelectedItem().toString().trim());
- params.put("image",ImageToString(bitmap));
- return params;
- }
- };
- SingletonClass.getInstance(MainActivity.this).addToRequestQue(stringRequest);
- }
- private String ImageToString(Bitmap bitmap){
- ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
- bitmap.compress(Bitmap.CompressFormat.JPEG, 25, byteArrayOutputStream);
- byte [] imgBytes = byteArrayOutputStream.toByteArray();
- return Base64.encodeToString(imgBytes, Base64.DEFAULT);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement