From 5b874e6a650e416a06168c67254a47f04ce1ed33 Mon Sep 17 00:00:00 2001
From: fadhilAmri <13521066@std.stei.itb.ac.id>
Date: Mon, 1 Apr 2024 09:24:17 +0700
Subject: [PATCH] feat: intent to MapsActivity

---
 .../java/com/example/nerbos/MapsActivity.kt   | 50 ++-----------------
 .../transaction/TransactionAdapter.kt         |  5 ++
 .../transaction/TransactionFragment.kt        |  8 +++
 3 files changed, 16 insertions(+), 47 deletions(-)

diff --git a/app/src/main/java/com/example/nerbos/MapsActivity.kt b/app/src/main/java/com/example/nerbos/MapsActivity.kt
index 8c00b46..fff63b1 100644
--- a/app/src/main/java/com/example/nerbos/MapsActivity.kt
+++ b/app/src/main/java/com/example/nerbos/MapsActivity.kt
@@ -21,13 +21,11 @@ import com.google.android.gms.location.FusedLocationProviderClient
 import com.google.android.gms.location.LocationServices
 import com.google.android.gms.maps.model.Marker
 
-class MapsActivity : AppCompatActivity(), OnMapReadyCallback, GoogleMap.OnMarkerClickListener {
+class MapsActivity : AppCompatActivity(), OnMapReadyCallback {
 
     private lateinit var mMap: GoogleMap
     private lateinit var binding: ActivityMapsBinding
 
-    private lateinit var currentLocation: Location
-    private lateinit var fusedLocationProviderClient: FusedLocationProviderClient
     private val permissionCode = 1
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
@@ -39,57 +37,15 @@ class MapsActivity : AppCompatActivity(), OnMapReadyCallback, GoogleMap.OnMarker
         val mapFragment = supportFragmentManager
             .findFragmentById(R.id.map) as SupportMapFragment
         mapFragment.getMapAsync(this)
-
-        fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this)
     }
-    /**
-     * Manipulates the map once available.
-     * This callback is triggered when the map is ready to be used.
-     * This is where we can add markers or lines, add listeners or move the camera. In this case,
-     * we just add a marker near Sydney, Australia.
-     * If Google Play services is not installed on the device, the user will be prompted to install
-     * it inside the SupportMapFragment. This method will only be triggered once the user has
-     * installed Google Play services and returned to the app.
-     */
+
     override fun onMapReady(googleMap: GoogleMap) {
         mMap = googleMap
-
         mMap.uiSettings.isZoomControlsEnabled = true
-        mMap.setOnMarkerClickListener ( this )
-        setUpMap()
-    }
-
-    private fun setUpMap() {
-        if (ActivityCompat.checkSelfPermission(
-                this,
-                Manifest.permission.ACCESS_FINE_LOCATION
-            ) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
-                this,
-                Manifest.permission.ACCESS_COARSE_LOCATION
-            ) != PackageManager.PERMISSION_GRANTED
-        ) {
-            ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.ACCESS_FINE_LOCATION), permissionCode)
-            Log.i("Maps", "Masuk Setup")
-            return
-        }
-
-        mMap.isMyLocationEnabled = true
-        fusedLocationProviderClient.lastLocation.addOnSuccessListener (this){
-            location -> if(location!=null){
-                currentLocation = location
-                val currentLatLong = LatLng(location.latitude, location.longitude)
-                placeMarkerOnMap(currentLatLong)
-                mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(currentLatLong, 7f))
-            }
-        }
-    }
-
-    private fun placeMarkerOnMap(currentLatLong: LatLng) {
+        val currentLatLong : LatLng = LatLng(10.0,10.0)
         val markerOptions = MarkerOptions().position(currentLatLong).title("Current Location")
         mMap.addMarker(markerOptions)
-        Log.i("Maps", markerOptions.position.toString())
     }
 
-    override fun onMarkerClick(p0: Marker)  = false
 
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionAdapter.kt b/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionAdapter.kt
index a2a9c17..ae9cd89 100644
--- a/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionAdapter.kt
+++ b/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionAdapter.kt
@@ -19,6 +19,7 @@ class TransactionAdapter() : RecyclerView.Adapter<TransactionAdapter.Transaction
     // Create ViewHolder Class
     private var transactionList : List<Transaction> = emptyList<Transaction>()
     var onItemClick: ((Transaction) -> Unit)? = null
+    var onLocationClick: ((String) -> Unit)? = null
     class TransactionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
         val name: TextView = itemView.findViewById(R.id.transactionName)
         val date: TextView = itemView.findViewById(R.id.transactionDate)
@@ -54,6 +55,10 @@ class TransactionAdapter() : RecyclerView.Adapter<TransactionAdapter.Transaction
         holder.itemView.setOnClickListener{
             onItemClick?.invoke(transactionList[position])
         }
+
+        holder.location.setOnClickListener {
+            onLocationClick?.invoke(holder.location.text.toString())
+        }
     }
     @SuppressLint("NotifyDataSetChanged")
     fun setData(transactions: List<Transaction>){
diff --git a/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionFragment.kt b/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionFragment.kt
index b92a7e3..dd151f8 100644
--- a/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionFragment.kt
+++ b/app/src/main/java/com/example/nerbos/fragments/transaction/TransactionFragment.kt
@@ -3,6 +3,7 @@ package com.example.nerbos.fragments.transaction
 import android.Manifest
 import android.app.AlertDialog
 import android.app.Dialog
+import android.content.Intent
 import android.content.pm.PackageManager
 import android.location.Address
 import android.location.Geocoder
@@ -28,6 +29,7 @@ import androidx.lifecycle.Observer
 import androidx.lifecycle.ViewModelProvider
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
+import com.example.nerbos.MapsActivity
 import com.example.nerbos.R
 import com.example.nerbos.model.Transaction
 import com.example.nerbos.model.TransactionCategory
@@ -84,6 +86,7 @@ class TransactionFragment : Fragment() {
         recyclerView.layoutManager = LinearLayoutManager(context)
         recyclerView.adapter = transactionAdapter
         transactionAdapter.onItemClick = { transaction -> showModifyTransactionDialog(transaction)}
+        transactionAdapter.onLocationClick = {location -> showLocationOnMap(location)}
 
         // Transaction View Model
         transactionViewModel = ViewModelProvider(this)[TransactionViewModel::class.java]
@@ -99,6 +102,11 @@ class TransactionFragment : Fragment() {
         return view
     }
 
+    private fun showLocationOnMap(location: String) {
+        val intent = Intent(requireActivity(), MapsActivity::class.java)
+        startActivity(intent)
+    }
+
     private fun showAddTransactionDialog() {
         val dialog = Dialog(requireContext())
 
-- 
GitLab