· 6 years ago · Oct 07, 2019, 02:36 PM
1package com.minara.kirana.firebasekotlin
2
3import android.content.Intent
4import androidx.appcompat.app.AppCompatActivity
5import android.os.Bundle
6import com.google.android.libraries.places.api.Places
7import com.google.android.libraries.places.api.model.Place
8import com.google.android.libraries.places.widget.Autocomplete
9import com.google.android.libraries.places.widget.model.AutocompleteActivityMode
10import com.google.firebase.database.FirebaseDatabase
11import com.minara.kirana.firebasekotlin.data.Outlet
12import kotlinx.android.synthetic.main.activity_add_outlet.*
13
14class AddOutletActivity : AppCompatActivity() {
15
16 override fun onCreate(savedInstanceState: Bundle?) {
17 super.onCreate(savedInstanceState)
18 setContentView(R.layout.activity_add_outlet)
19
20 // masukkan api key
21 Places.initialize(this,"AIzaSyDIq_ftJnkX6rCK4Sxrixvzc0-4BCd42iQ")
22
23 // ketika edt di klik maka menjalankan untuk mencari edt yang berisi autocomplet
24 tvAlamat.setOnClickListener {
25
26 val dataPlace = arrayListOf(Place.Field.ID, Place.Field.NAME, Place.Field.LAT_LNG, Place.Field.ADDRESS)
27
28 val intent = Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN,dataPlace).build(this)
29
30 startActivityForResult(intent, 12)
31 }
32
33 // memasukkan ke dalam pojo lalu di simpan ke dalam firebase
34 btnSubmit.setOnClickListener {
35 // insert input user k object outlet
36 val outlet = Outlet()
37 outlet.name = edtNameOutlet.text.toString()
38 outlet.hp = edtNoHp.text.toString()
39 outlet.alamat = tvAlamat.text.toString()
40 outlet.lat = edtLat.text.toString()
41 outlet.lon = edtLon.text.toString()
42
43 // set ke firebase
44 //getReference "outlet" --> itu seperti nama tabel
45 val firebase = FirebaseDatabase.getInstance()
46 val myRef = firebase.getReference("outlet")
47
48
49 // key --> karena kita menyimpan data di firebase itu objek (bukan persatuan item) maka menggunakan key
50 val key = myRef.push().key
51 myRef.child("hello world").setValue(outlet)
52
53 // kalau berhasil maka lakukan intent
54 startActivity(Intent(this, MainActivity::class.java))
55 }
56 }
57
58 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
59 super.onActivityResult(requestCode, resultCode, data)
60
61 // jika requestcode sama maka mengambil data lalu di pasangkan di edt
62 if (requestCode == 12){
63 val place = data?.let { Autocomplete.getPlaceFromIntent(it) }
64
65 tvAlamat.text = place?.address
66 edtLat.setText(place?.latLng?.latitude.toString())
67 edtLon.setText(place?.latLng?.longitude.toString())
68 }
69 }
70}