47 lines
1.2 KiB
Kotlin
47 lines
1.2 KiB
Kotlin
package id.ac.ubharajaya.sistemakademik
|
|
|
|
import android.graphics.Bitmap
|
|
import android.util.Base64
|
|
import org.json.JSONObject
|
|
import java.io.ByteArrayOutputStream
|
|
|
|
/**
|
|
* Data class untuk menyimpan informasi absensi mahasiswa
|
|
*/
|
|
data class Absensi(
|
|
val npm: String,
|
|
val nama: String,
|
|
val latitude: Double,
|
|
val longitude: Double,
|
|
val waktu: String,
|
|
val foto: Bitmap
|
|
|
|
|
|
) {
|
|
/**
|
|
* Convert objek Absensi ini menjadi JSONObject
|
|
* Siap untuk dikirim ke server
|
|
*/
|
|
fun toJson(): JSONObject {
|
|
val json = JSONObject()
|
|
json.put("npm", npm)
|
|
json.put("nama", nama)
|
|
json.put("latitude", latitude)
|
|
json.put("longitude", longitude)
|
|
json.put("timestamp", System.currentTimeMillis())
|
|
json.put("waktu", waktu)
|
|
json.put("foto_base64", bitmapToBase64(foto))
|
|
return json
|
|
}
|
|
|
|
companion object {
|
|
/**
|
|
* Helper function untuk convert Bitmap ke Base64
|
|
*/
|
|
fun bitmapToBase64(bitmap: Bitmap): String {
|
|
val outputStream = ByteArrayOutputStream()
|
|
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, outputStream)
|
|
return Base64.encodeToString(outputStream.toByteArray(), Base64.NO_WRAP)
|
|
}
|
|
}
|
|
} |