Open the Camera Pic The Image send to Server Base64

   java code:


package com.rebliss.view;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.rebliss.Models.SelfiesResponse;
import com.rebliss.Models.SelieRequest;
import com.rebliss.R;
import com.rebliss.helper.SharedPreference;
import com.rebliss.retrofit.ApiClient;
import com.rebliss.retrofit.ApiInterface;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class ActivitySelfiesUplod extends AppCompatActivity {


private static final int imagereq = 100;

boolean mychecknext=false;
String encodedImage;
ImageView imageView;
Button uplode,next;
LinearLayout check;

public String token=null;
private SharedPreference sharedPreference;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_upload_selfi);

next=findViewById(R.id.next);

check=findViewById(R.id.check);

uplode=findViewById(R.id.upload);
imageView = findViewById(R.id.photu);
check.setEnabled(false);



sharedPreference =new SharedPreference(getApplicationContext());


token=sharedPreference.getData("token");

uplode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (check.isEnabled())

{

new UploadImages().execute();
next.setEnabled(true);


}
else {

Toast.makeText(ActivitySelfiesUplod.this, "Please Pic The Images", Toast.LENGTH_SHORT).show();

}





}
});





next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (mychecknext==true)
{
Intent intent =new Intent(getApplicationContext(),ActivityStartKyc.class);
startActivity(intent);

}else {

Toast.makeText(ActivitySelfiesUplod.this, "Please Uplode Picature", Toast.LENGTH_SHORT).show();

}


}
});

imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, imagereq);

check.setEnabled(true);





}
});



}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
super.onActivityResult(requestCode, resultCode, data);


if (data!=null)
{
Bitmap imagebmap=null;

if(requestCode==imagereq){
imagebmap=(Bitmap)data.getExtras().get("data");
imageView.setImageBitmap(imagebmap);
// selectedImage.setImageBitmap(selectedImageBitmap);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
imagebmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] byteArrayImage = byteArrayOutputStream.toByteArray();
encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);

uplode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if (check.isEnabled())

{ mychecknext=true;
new UploadImages().execute();
next.setEnabled(true);

}
else {

Toast.makeText(ActivitySelfiesUplod.this, "Please Pic The Images", Toast.LENGTH_SHORT).show();

}





}
});

}


}


}



private class UploadImages extends AsyncTask<Void, Void, Void> {

@Override
protected void onPreExecute() {

}

@Override
protected Void doInBackground(Void... params) {

SelieRequest selieRequest=new SelieRequest();
selieRequest.setPhoto(encodedImage);

Log.d("token",token);

ApiInterface apiInterface = ApiClient.getClientCI().create(ApiInterface.class);
Call <SelfiesResponse>call=apiInterface.uploadApi("Bearer "+token ,selieRequest);
call.enqueue(new Callback<SelfiesResponse>() {
@Override
public void onResponse(Call<SelfiesResponse> call, retrofit2.Response<SelfiesResponse> response) {



if (response.body()!=null)
{

if(response.body().getStatus()==200)
{

if (response.body().getSuccess()==true)
{

Toast.makeText(ActivitySelfiesUplod.this, ""+response.body().getMsg(), Toast.LENGTH_SHORT).show();



}

}
else {


Toast.makeText(ActivitySelfiesUplod.this, "The photo field is required", Toast.LENGTH_SHORT).show();
}

}

else
{
Toast.makeText(ActivitySelfiesUplod.this, "Some Thing Wrong", Toast.LENGTH_SHORT).show();


}



}

@Override
public void onFailure(Call<SelfiesResponse> call, Throwable t) {

Toast.makeText(ActivitySelfiesUplod.this, ""+t, Toast.LENGTH_SHORT).show();

}
});





return null;







}

@Override
protected void onPostExecute(Void args) {

}



}








}



xml:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

<androidx.appcompat.widget.Toolbar
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="@drawable/toolbarimg1">
<ImageView
android:id="@+id/uploadselfi_back_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:src="@drawable/ic_baseline_arrow_back_24"
app:tint="@color/white">
</ImageView>
<TextView
android:layout_width="wrap_content"
android:layout_gravity="top|end"
android:layout_marginRight="15dp"
android:textSize="15sp"
android:layout_height="wrap_content"
android:text="9/9"
android:textColor="@color/white">
</TextView>

</androidx.appcompat.widget.Toolbar>
<TextView
android:layout_width="match_parent"
android:layout_marginTop="35dp"
android:textStyle="bold"
android:text="@string/upload_your_selfie"
android:textSize="30dp"
android:textColor="@color/black"
android:gravity="center"
android:layout_height="wrap_content">

</TextView>


<LinearLayout
android:layout_width="wrap_content"
android:layout_height="200dp"
android:layout_margin="30dp"
android:id="@+id/check"
android:layout_gravity="center"
android:background="@drawable/dotted">

<ImageView
android:id="@+id/photu"
android:layout_width="190dp"
android:layout_height="180dp"
android:src="@drawable/ic_camera"/>
</LinearLayout>
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/upload"
android:layout_width="180dp"
android:layout_gravity="center"
android:background="@drawable/corner_button1"
android:textColor="@color/white"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textStyle="bold"
android:textAllCaps="false"
android:text="@string/btnupload"
>

</androidx.appcompat.widget.AppCompatButton>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="bottom|center">
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/next"
android:layout_width="120dp"
android:background="@drawable/corner_button1"
android:textColor="@color/white"
android:layout_height="wrap_content"
android:layout_marginBottom="50dp"
android:layout_marginTop="20dp"
android:textStyle="bold"
android:textAllCaps="false"
android:text="@string/nextbtn"
>

</androidx.appcompat.widget.AppCompatButton>
</LinearLayout>
</LinearLayout>





Comments

Popular posts from this blog

Spinner select validation