177 lines
6.2 KiB
Kotlin
177 lines
6.2 KiB
Kotlin
package com.example.appimage
|
|
|
|
import android.graphics.Bitmap
|
|
import android.graphics.BitmapFactory
|
|
import android.graphics.Color
|
|
import android.os.AsyncTask
|
|
import android.os.Bundle
|
|
import android.util.Base64
|
|
import android.util.JsonReader
|
|
import android.util.Log
|
|
import android.view.View
|
|
import android.widget.Button
|
|
import android.widget.EditText
|
|
import android.widget.ImageView
|
|
import android.widget.Toast
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
import org.json.JSONObject
|
|
import org.json.JSONStringer
|
|
import org.xml.sax.Parser
|
|
import java.io.BufferedReader
|
|
import java.io.InputStream
|
|
import java.io.InputStreamReader
|
|
import java.lang.Exception
|
|
import java.lang.StringBuilder
|
|
import java.net.HttpURLConnection
|
|
import java.net.URL
|
|
import java.net.URLEncoder
|
|
|
|
|
|
class MainActivity : AppCompatActivity() {
|
|
|
|
var urlRes : String = ""
|
|
var urlConfirm : String = ""
|
|
var btnShowImage1: Button? = null
|
|
var btnShowImage2: Button? = null
|
|
var im1: ImageView? = null
|
|
var im2: ImageView? = null
|
|
|
|
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
setContentView(R.layout.activity_main)
|
|
|
|
btnShowImage1 = findViewById<Button>(R.id.btnShowImage1)
|
|
btnShowImage2 = findViewById<Button>(R.id.btnShowImage2)
|
|
im1 = findViewById(R.id.im1)
|
|
im2 = findViewById(R.id.im2)
|
|
|
|
btnShowImage1!!.isEnabled = false
|
|
btnShowImage2!!.isEnabled = false
|
|
|
|
btnShowImage1!!.setOnClickListener {
|
|
var url = urlRes + "1&timeout=6"
|
|
// Log.d("URL : ", url)
|
|
sendAPIDetail(url)
|
|
}
|
|
|
|
btnShowImage2!!.setOnClickListener {
|
|
Log.d("urlConfirm : ", urlConfirm)
|
|
sendAPIDetail(urlConfirm)
|
|
}
|
|
}
|
|
|
|
fun sendAPIDetail(url: String) {
|
|
var readContentURL: ReadContentURL = ReadContentURL()
|
|
readContentURL.execute(url)
|
|
}
|
|
|
|
fun onConnect(view: View) {
|
|
var textID = findViewById<EditText>(R.id.edEnterID);
|
|
var id = textID.text.toString()
|
|
var url = "http://192.168.3.94:5000/get-ip-box?id=" + id
|
|
this.sendAPIDetail(url)
|
|
}
|
|
|
|
|
|
inner class ReadContentURL : AsyncTask<String, Void, String> () {
|
|
|
|
var content: String = String()
|
|
var url : URL? = null
|
|
var urlConnection: HttpURLConnection? = null
|
|
var inputStream : InputStream? = null
|
|
var inputStreamReader : InputStreamReader? = null
|
|
var bufferedReader: BufferedReader? = null
|
|
var line: String = ""
|
|
|
|
|
|
override fun onPreExecute() {
|
|
super.onPreExecute()
|
|
}
|
|
|
|
override fun doInBackground(vararg params: String?): String {
|
|
try {
|
|
|
|
url = URL(params[0])
|
|
urlConnection = url!!.openConnection() as HttpURLConnection
|
|
inputStream = urlConnection!!.inputStream
|
|
inputStreamReader = InputStreamReader(inputStream)
|
|
bufferedReader = BufferedReader(inputStreamReader)
|
|
try {
|
|
do {
|
|
line = bufferedReader!!.readLine()
|
|
if (line != null) {
|
|
content += line
|
|
|
|
}
|
|
} while (line != null)
|
|
} catch (e:Exception) {
|
|
Log.d("AAA", e.toString())
|
|
}
|
|
return content
|
|
} catch (e: Exception) {
|
|
Log.d("ERROR:", e.toString())
|
|
}finally {
|
|
bufferedReader!!.close()
|
|
inputStreamReader!!.close()
|
|
inputStream!!.close()
|
|
urlConnection!!.disconnect()
|
|
}
|
|
return "{\"error\":\"1001\"}"
|
|
}
|
|
|
|
override fun onPostExecute(result: String?) {
|
|
super.onPostExecute(result)
|
|
btnShowImage2!!.isEnabled = false
|
|
try {
|
|
var obj = JSONObject(result.toString())
|
|
if (obj.has("url")) {
|
|
urlRes = obj["url"].toString()
|
|
btnShowImage1!!.isEnabled = true
|
|
}
|
|
else if (obj.has("data")) {
|
|
var jArray = obj.getJSONArray("data")
|
|
var code = obj["code"]
|
|
// Log.d("Code : ", code.toString())
|
|
for (i in 0 until jArray.length())
|
|
{
|
|
val row = jArray.getJSONObject(i)
|
|
var base64 = row.getString("base64")
|
|
var type = row.getString("type")
|
|
if(type == "CD" && (code.toString() == "1" || code.toString() != "2")) {
|
|
im1!!.setImageBitmap(decodeBase64(base64))
|
|
}
|
|
if (type == "MT" && (code.toString() == "1" || code.toString() != "3")) {
|
|
im2!!.setImageBitmap(decodeBase64(base64))
|
|
}
|
|
}
|
|
|
|
if (code.toString() == "2") {
|
|
btnShowImage2!!.isEnabled = true
|
|
urlConfirm = urlRes + "2&timeout=6"
|
|
im1!!.setImageResource(android.R.color.transparent)
|
|
Toast.makeText(this@MainActivity, "Lỗi khi chụp chân dung", Toast.LENGTH_SHORT).show()
|
|
} else if (code.toString() == "3") {
|
|
btnShowImage2!!.isEnabled = true
|
|
urlConfirm = urlRes + "3&timeout=6"
|
|
im2!!.setImageResource(android.R.color.transparent)
|
|
Toast.makeText(this@MainActivity, "Lỗi khi chụp chứng minh thư", Toast.LENGTH_SHORT).show()
|
|
}
|
|
}
|
|
} catch (e : Exception) {
|
|
Toast.makeText(this@MainActivity, "Lỗi...", Toast.LENGTH_LONG).show()
|
|
// btnShowImage2!!.isEnabled = false
|
|
im1!!.setImageResource(android.R.color.transparent)
|
|
im2!!.setImageResource(android.R.color.transparent)
|
|
}
|
|
}
|
|
|
|
fun decodeBase64(input: String): Bitmap {
|
|
val decodedBytes = Base64.decode(input, 0)
|
|
return BitmapFactory.decodeByteArray(decodedBytes, 0, decodedBytes.size)
|
|
}
|
|
}
|
|
}
|
|
|