Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion E_Parking/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@ apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'
apply plugin: 'com.google.gms.google-services'

android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "com.example.e_parking"
minSdkVersion 17
minSdkVersion 26
targetSdkVersion 29
versionCode 1
versionName "1.0"
Expand All @@ -29,10 +30,14 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.firebase:firebase-auth:16.0.5'
implementation 'com.google.firebase:firebase-database:16.0.4'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation 'me.dm7.barcodescanner:zxing:1.9'
implementation 'com.google.android.gms:play-services-vision:15.0.0'
implementation 'com.android.support:appcompat-v7:26.0.0-alpha1'
implementation 'androidmads.library.qrgenearator:QRGenearator:1.0.3'
implementation 'com.google.zxing:core:3.2.1'
}
48 changes: 48 additions & 0 deletions E_Parking/app/google-services.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"project_info": {
"project_number": "541470592695",
"firebase_url": "https://eparking-2842f.firebaseio.com",
"project_id": "eparking-2842f",
"storage_bucket": "eparking-2842f.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:541470592695:android:7b69777e28771cbbe2c732",
"android_client_info": {
"package_name": "com.example.e_parking"
}
},
"oauth_client": [
{
"client_id": "541470592695-8tuabtkusgkf4uoi32a2k2d7kqop9t1g.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.example.e_parking",
"certificate_hash": "508830c67a6bf51c35f72054f964620ced744a04"
}
},
{
"client_id": "541470592695-ld80ftbk4skq7evd7totj72g3l6f07i2.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC_qIDC8qAAdldxZzcAIyh0I6RBUOxG1qI"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "541470592695-ld80ftbk4skq7evd7totj72g3l6f07i2.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}
3 changes: 2 additions & 1 deletion E_Parking/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.e_parking">

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>

Expand Down
31 changes: 31 additions & 0 deletions E_Parking/app/src/main/java/com/example/e_parking/Firebase.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.example.e_parking

import android.provider.ContactsContract
import android.renderscript.Sampler
import android.util.Log
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.database.*
import java.util.*

class Firebase {
val database: FirebaseDatabase = FirebaseDatabase.getInstance()
val myRef: DatabaseReference = database.getReference()

fun connect(username:String, jam:String, id: String){

val uid: String= FirebaseAuth.getInstance().currentUser!!.uid.toString()
val user = username
val book = ModelQrcode(id,jam, user)
myRef.child("booking").child(uid).setValue(book)
// myRef.apply {
//// myRef.child("username").setValue(username)
// myRef.child(uid).child("id_tempat").setValue(id)
// myRef.child(uid).child("jam_masuk").setValue(jam)
// myRef.child(uid).child("user").setValue(user)
// }

// Log.d("PRINTNYA", myRef.key!!.get(0).toString())
// myRef.setValue("Hello, World!");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,23 @@ class Home_Activity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home_)
val user = intent.getStringExtra("user")
Toast.makeText(baseContext, "masuk HOME", Toast.LENGTH_LONG).show()

btnBayar.setOnClickListener {
// Toast.makeText(baseContext, "berhasil Bayar", Toast.LENGTH_LONG).show()
val i = Intent(baseContext, Pembayara_Activity::class.java)
i.putExtra("user",user)
startActivity(i)
finish()
}

btnScan.setOnClickListener {
// Toast.makeText(baseContext, "berhasil scan", Toast.LENGTH_LONG).show()
val i = Intent(baseContext, scan_Activity::class.java)
i.putExtra("user", user)
startActivity(i)
finish()
}
}
}
47 changes: 28 additions & 19 deletions E_Parking/app/src/main/java/com/example/e_parking/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,34 +1,43 @@
package com.example.e_parking

import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import com.google.firebase.auth.FirebaseAuth
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

var sp :SharedPreferences?=null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

btnLogin.setOnClickListener {
val username = edtUsername.text.toString();
val password = edtPassword.text.toString();

if(username.isEmpty() || password.isEmpty()){
Toast.makeText(this, "Tolong Masukkan Email and Password", Toast.LENGTH_LONG).show()

}
if(username == "admin" && password == "admin"){
Toast.makeText(baseContext, "login berhasil", Toast.LENGTH_LONG).show()
val i = Intent(baseContext, Home_Activity::class.java)
startActivity(i)
//setContentView(R.layout.home)
}else{
Toast.makeText(this, "Email atau Password Salah", Toast.LENGTH_LONG).show()
sp=getSharedPreferences("sp", Context.MODE_PRIVATE)
// if(sp?.getBoolean("isLogin", false)!!){
// val i= Intent(baseContext, Home_Activity::class.java)
// i.putExtra("user", edtUsername.text.toString())
// startActivity(i)
// finish()
// }else{
setContentView(R.layout.activity_main)
btnLogin.setOnClickListener {
FirebaseAuth.getInstance()
.signInWithEmailAndPassword(edtUsername.text.toString(),edtPassword.text.toString())
.addOnSuccessListener {
Toast.makeText(baseContext, "Login Berhasil", Toast.LENGTH_LONG).show()
val i= Intent(baseContext, Home_Activity::class.java)
i.putExtra("user", edtUsername.text.toString())
// sp?.edit()?.putBoolean("isLogin", true)?.commit()
startActivity(i)
finish()
}
.addOnFailureListener {
// FirebaseAuth.getInstance().createUserWithEmailAndPassword(edtEmail.text.toString(), edtPassword.text.toString())
Toast.makeText(baseContext, "Username atau password salah!", Toast.LENGTH_LONG).show()
}
}
}
// }


}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.example.e_parking

class ModelQrcode (var id_tempat: String="-" ,var jam_masuk: String="-", var user:String = "-")
Original file line number Diff line number Diff line change
@@ -1,18 +1,100 @@
package com.example.e_parking

import android.content.Intent
import android.content.res.Resources
import android.graphics.Bitmap
import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.ImageView
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.database.*
import com.google.zxing.*
import com.google.zxing.common.BitMatrix
import kotlinx.android.synthetic.main.activity_pembayara_.*
import org.w3c.dom.Text
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.format.FormatStyle

class Pembayara_Activity : AppCompatActivity() {

internal var bitmap:Bitmap?=null
private var qr:ImageView?=null
val uid = FirebaseAuth.getInstance().currentUser!!.uid.toString()
val myRef: DatabaseReference = FirebaseDatabase.getInstance().getReference("booking/$uid")
var tempat =""
var jam =""
var username=""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_pembayara_)

myRef.addValueEventListener(object: ValueEventListener {
override fun onCancelled(p0: DatabaseError) {

}

override fun onDataChange(datasnapshot: DataSnapshot) {
val code = datasnapshot.getValue(ModelQrcode::class.java)
tempat=code!!.id_tempat
jam=code!!.jam_masuk
username=code!!.user
var hasil= username+"\n"+tempat+"\n"+jam
qr=findViewById(R.id.qrcode) as ImageView
txtData.text=username+"\n"+tempat+"\n"+jam
try{
val qrcode = hasil
bitmap= TextToImageEncode(qrcode)
qr!!.setImageBitmap(bitmap)
}catch (e: WriterException){
e.printStackTrace()
}
}

})


kembali.setOnClickListener {
val i = Intent(baseContext, Home_Activity::class.java)
startActivity(i)
finish()
}
}
@Throws(WriterException::class)
private fun TextToImageEncode(Value: String): Bitmap? {
val bitMatrix: BitMatrix
try {
bitMatrix = MultiFormatWriter().encode(
Value,
BarcodeFormat.QR_CODE,
1000, 1000, null
)

} catch (Illegalargumentexception: IllegalArgumentException) {

return null
}

val bitMatrixWidth = bitMatrix.getWidth()

val bitMatrixHeight = bitMatrix.getHeight()

val pixels = IntArray(bitMatrixWidth * bitMatrixHeight)

for (y in 0 until bitMatrixHeight) {
val offset = y * bitMatrixWidth

for (x in 0 until bitMatrixWidth) {

pixels[offset + x] = if (bitMatrix.get(x, y))
Color.BLACK
else
Color.WHITE
}
}
val bitmap = Bitmap.createBitmap(bitMatrixWidth, bitMatrixHeight, Bitmap.Config.ARGB_8888)

bitmap.setPixels(pixels, 0, 1000, 0, 0, bitMatrixWidth, bitMatrixHeight)
return bitmap
}
}
16 changes: 14 additions & 2 deletions E_Parking/app/src/main/java/com/example/e_parking/scan_Activity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,16 @@ import com.google.android.gms.vision.CameraSource
import com.google.android.gms.vision.Detector
import com.google.android.gms.vision.barcode.Barcode
import com.google.android.gms.vision.barcode.BarcodeDetector
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.time.format.FormatStyle

class scan_Activity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_scan_)
val user= intent.getStringExtra("user")
val surfaceview: SurfaceView =findViewById(R.id.camerapreview)
val text: TextView =findViewById(R.id.textView)

Expand Down Expand Up @@ -60,9 +64,17 @@ class scan_Activity : AppCompatActivity() {
val vibrator: Vibrator
vibrator=applicationContext.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
vibrator.vibrate(1000)
text.setText(qrCodes.valueAt(0).displayValue)
val i = Intent(baseContext, Pembayara_Activity::class.java)
val kode = qrCodes.valueAt(0).displayValue
val current = LocalDateTime.now()
val formatter = DateTimeFormatter.ofPattern("yy-MM-dd HH:mm:ss")
val formatted = current.format(formatter)
val i:Intent = Intent(baseContext, Pembayara_Activity::class.java)
i.putExtra("data", kode)
i.putExtra("jam", formatted)
i.putExtra("user",user)
Firebase().connect(user,formatted,kode)
startActivity(i)
finish()
}
})
}
Expand Down
Loading