|
|
@ -1,14 +1,18 @@ |
|
|
|
package com.nivesh.production.bajajfd.ui.fragment |
|
|
|
|
|
|
|
import android.Manifest |
|
|
|
import android.annotation.SuppressLint |
|
|
|
import android.app.ActionBar.LayoutParams |
|
|
|
import android.app.Dialog |
|
|
|
import android.content.pm.PackageManager |
|
|
|
import android.database.Cursor |
|
|
|
import android.graphics.Bitmap |
|
|
|
import android.net.Uri |
|
|
|
import android.os.Bundle |
|
|
|
import android.provider.MediaStore |
|
|
|
import android.provider.OpenableColumns |
|
|
|
import android.text.Editable |
|
|
|
import android.util.Base64 |
|
|
|
import android.util.Log |
|
|
|
import android.view.LayoutInflater |
|
|
|
import android.view.View |
|
|
@ -17,6 +21,7 @@ import android.widget.AdapterView |
|
|
|
import android.widget.ArrayAdapter |
|
|
|
import android.widget.ImageView |
|
|
|
import android.widget.TextView |
|
|
|
import android.widget.Toast |
|
|
|
import androidx.activity.result.ActivityResultLauncher |
|
|
|
import androidx.activity.result.contract.ActivityResultContracts |
|
|
|
import androidx.core.app.ActivityCompat |
|
|
@ -36,6 +41,9 @@ import com.nivesh.production.bajajfd.util.Constants |
|
|
|
import com.nivesh.production.bajajfd.util.Resource |
|
|
|
import com.nivesh.production.bajajfd.viewModel.StepThreeBajajFDViewModel |
|
|
|
import java.io.File |
|
|
|
import java.io.FileInputStream |
|
|
|
import java.io.IOException |
|
|
|
import java.io.InputStream |
|
|
|
|
|
|
|
class StepThreeBajajFDFragment : Fragment() { |
|
|
|
|
|
|
@ -48,6 +56,7 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
private lateinit var stepThreeBajajFDViewModel: StepThreeBajajFDViewModel |
|
|
|
|
|
|
|
private lateinit var dialog: Dialog |
|
|
|
private lateinit var front: String |
|
|
|
|
|
|
|
companion object { |
|
|
|
fun getInstance(fdInterface: BajajFDInterface): StepThreeBajajFDFragment { |
|
|
@ -99,6 +108,7 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
|
|
|
|
binding.btnNext.setOnClickListener { |
|
|
|
if (validate()) { |
|
|
|
uploadDocApi() |
|
|
|
// |
|
|
|
// bajajFDInterface.stepThreeApi((activity as BajajFdMainActivity).createFDRequest) |
|
|
|
} |
|
|
@ -128,6 +138,30 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
return root |
|
|
|
} |
|
|
|
|
|
|
|
@SuppressLint("Range") |
|
|
|
fun getFileName(uri: Uri): String? { |
|
|
|
var result: String? = null |
|
|
|
if (uri.scheme == "content") { |
|
|
|
val cursor: Cursor = |
|
|
|
requireActivity().getContentResolver().query(uri, null, null, null, null)!! |
|
|
|
try { |
|
|
|
if (cursor != null && cursor.moveToFirst()) { |
|
|
|
result = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME)) |
|
|
|
} |
|
|
|
} finally { |
|
|
|
cursor.close() |
|
|
|
} |
|
|
|
} |
|
|
|
if (result == null) { |
|
|
|
result = uri.path |
|
|
|
val cut = result!!.lastIndexOf('/') |
|
|
|
if (cut != -1) { |
|
|
|
result = result.substring(cut + 1) |
|
|
|
} |
|
|
|
} |
|
|
|
return result |
|
|
|
} |
|
|
|
|
|
|
|
private fun selectImage() { |
|
|
|
dialog = Dialog(activity as BajajFdMainActivity) |
|
|
|
dialog.setContentView(R.layout.camera_gallery_layout) |
|
|
@ -227,12 +261,87 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { |
|
|
|
val documentUpload = DocumentUpload() |
|
|
|
val value: Editable? = binding.spDocType.text |
|
|
|
Log.e("check_Data", value.toString()) |
|
|
|
val file_dir:File = requireActivity().cacheDir |
|
|
|
val file_ex = File(file_dir.toString().plus("/").plus(getFileName(uri))) |
|
|
|
var file_path: File? = uri.path?.let { File(it) } |
|
|
|
encodedFileToBase64(file_ex) |
|
|
|
|
|
|
|
Log.e("check_data_front", value.toString()+"\n"+front) |
|
|
|
// documentUpload.DocumentType = |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private fun encodedFileToBase64(fileName: File?) { |
|
|
|
front = try { |
|
|
|
val bytes: ByteArray? = fileName?.let { loadFile(it) } |
|
|
|
Base64.encodeToString(bytes, Base64.DEFAULT).trim { it <= ' ' } |
|
|
|
.replace("\n".toRegex(), "").replace("\\s+".toRegex(), "") |
|
|
|
} catch (e: Exception) { |
|
|
|
e.printStackTrace() |
|
|
|
"" |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Throws(IOException::class) |
|
|
|
private fun loadFile(file: File): ByteArray? { |
|
|
|
val inputStream: InputStream = FileInputStream(file) |
|
|
|
val length = file.length() |
|
|
|
val bytes = ByteArray(length.toInt()) |
|
|
|
var offset = 0 |
|
|
|
var numRead = 0 |
|
|
|
while (offset < bytes.size && inputStream.read(bytes, offset, bytes.size - offset).also { |
|
|
|
numRead = it |
|
|
|
} >= 0) { |
|
|
|
offset += numRead |
|
|
|
} |
|
|
|
if (offset < bytes.size) { |
|
|
|
throw IOException("Could not completely read file " + file.name) |
|
|
|
} |
|
|
|
inputStream.close() |
|
|
|
return bytes |
|
|
|
} |
|
|
|
|
|
|
|
private fun uploadDocApi(){ |
|
|
|
if(Common.isNetworkAvailable((activity as BajajFdMainActivity))){ |
|
|
|
val du = DocumentUpload() |
|
|
|
du.Description = "PAN" |
|
|
|
du.DocumentType = "PAN" |
|
|
|
du.FDProvider = "Bajaj" |
|
|
|
du.ImageEncodeToBase64 = front //"data:image/png;base64" |
|
|
|
du.NiveshClientCode = "8872" |
|
|
|
du.UniqueId = "5463772498" |
|
|
|
stepThreeBajajFDViewModel.documentsUpload(du,Constants.token) |
|
|
|
stepThreeBajajFDViewModel.getDocumentUploadMutableData.observe(viewLifecycleOwner){ response -> |
|
|
|
when (response){ |
|
|
|
is Resource.Success ->{ |
|
|
|
Log.e("response", "-->$response") |
|
|
|
val getUploadResponse: UploadResponse = |
|
|
|
Gson().fromJson(response.data?.toString(),UploadResponse::class.java) |
|
|
|
getUploadResponse.Response.StatusCode.let { code -> |
|
|
|
when (code) { |
|
|
|
200 -> { |
|
|
|
Log.e("check_upload_res",response.message.toString()) |
|
|
|
} |
|
|
|
// 650 -> refreshToken() |
|
|
|
else -> {} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
is Resource.Error -> { |
|
|
|
response.message?.let { message -> |
|
|
|
Log.e(" ", "An error occurred:$message") |
|
|
|
} |
|
|
|
} |
|
|
|
is Resource.Loading -> { |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private fun docTypeApi() { |
|
|
|
if (Common.isNetworkAvailable(activity as BajajFdMainActivity)) { |
|
|
|
val getCodeRequest = GetCodeRequest() |
|
|
@ -286,7 +395,7 @@ class StepThreeBajajFDFragment : Fragment() { |
|
|
|
|
|
|
|
|
|
|
|
private fun validate(): Boolean { |
|
|
|
return false |
|
|
|
return true |
|
|
|
} |
|
|
|
|
|
|
|
private fun takeImage() { |
|
|
|