This commit is contained in:
trung 2019-12-05 09:41:40 +07:00
parent 1328b33876
commit aac4a7457d

176
main.kt Normal file
View File

@ -0,0 +1,176 @@
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)
}
}
}