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
Post a Comment