Skip to content
Snippets Groups Projects
Commit d792c1a1 authored by shidqizh's avatar shidqizh
Browse files

feat: maps

parent a8884c16
No related merge requests found
Pipeline #61469 canceled with stages
......@@ -64,6 +64,15 @@
</provider>
</application>
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="geo" />
</intent>
</queries>
</manifest>
\ No newline at end of file
......@@ -14,6 +14,7 @@ import com.atm.bondowowo.R
import com.atm.bondowowo.adapter.TransactionAdapter
import com.atm.bondowowo.data.local.database.AppDatabase
import com.atm.bondowowo.data.local.entity.TransactionEntity
import com.atm.bondowowo.utils.GoogleMapsUtil
import com.google.android.material.floatingactionbutton.FloatingActionButton
......@@ -60,7 +61,15 @@ class TransactionFragment : Fragment() {
} else if (which == 1) {
database.transactionDao().delete(list[position])
getData()
} else {
}
else if(which == 2){
list[position].id?.let {
GoogleMapsUtil.openGoogleMaps(requireContext(),
it
)
}
}
else {
dialog.dismiss()
}
}
......
package com.atm.bondowowo.utils
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.widget.Toast
import com.atm.bondowowo.data.local.database.AppDatabase
import com.atm.bondowowo.data.local.entity.TransactionEntity
object GoogleMapsUtil {
fun openGoogleMaps(context: Context, transactionId: Int) {
val database = AppDatabase.getInstance(context.applicationContext)
val destinationName = getDestinationNameFromDatabase(database, transactionId)
if (!destinationName.isNullOrEmpty()) {
val uri = Uri.parse("geo:0,0?q=$destinationName")
val mapIntent = Intent(Intent.ACTION_VIEW, uri)
mapIntent.setPackage("com.google.android.apps.maps")
if (mapIntent.resolveActivity(context.packageManager) != null) {
context.startActivity(mapIntent)
} else {
Toast.makeText(context, "Google Maps app not found", Toast.LENGTH_SHORT).show()
}
} else {
Toast.makeText(context, "Destination not found", Toast.LENGTH_SHORT).show()
}
}
private fun getDestinationNameFromDatabase(database: AppDatabase, transactionId: Int): String? {
val transaction: TransactionEntity? = database.transactionDao().get(transactionId)
return transaction?.lokasi
}
}
......@@ -10,6 +10,7 @@
<string-array name="transaction_option">
<item>Edit</item>
<item>Delete</item>
<item>Open in maps</item>
<item>Cancel</item>
</string-array>
</resources>
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment