diff --git a/app/src/main/java/com/example/android_hit/DetailTransaction.kt b/app/src/main/java/com/example/android_hit/DetailTransaction.kt index 4293baa13cbf06fa73f4e5f9aa97e8c5151057a7..dfefc31f4d864fc79dd8201a594c83947ec6e600 100644 --- a/app/src/main/java/com/example/android_hit/DetailTransaction.kt +++ b/app/src/main/java/com/example/android_hit/DetailTransaction.kt @@ -39,6 +39,7 @@ import java.util.Locale class DetailTransaction : Fragment(), LocationListener { private var _binding: FragmentDetailTransactionBinding? = null private val binding get() = _binding!! + private lateinit var fusedLocationProviderClient: FusedLocationProviderClient private lateinit var database: TransactionDB private var category: String = "" private var coordinate: String = "-6.927314530264154, 107.77007155415649" @@ -47,15 +48,13 @@ class DetailTransaction : Fragment(), LocationListener { private val RANDOMIZE_ACTION = "com.example.android_hit.RANDOMIZE_ACTION" private lateinit var locationManager: LocationManager private lateinit var locationRequest: LocationRequest - private lateinit var fusedLocationProviderClient: FusedLocationProviderClient + companion object { var fragmentCounter = 0 var amountInput = "" } - - inner class TransactionReceiver : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { if (intent?.action == RANDOMIZE_ACTION) { @@ -245,7 +244,6 @@ class DetailTransaction : Fragment(), LocationListener { } private fun getUserLocation() { - if (ActivityCompat.checkSelfPermission( requireContext(), Manifest.permission.ACCESS_FINE_LOCATION @@ -271,12 +269,12 @@ class DetailTransaction : Fragment(), LocationListener { try { val geocoder = Geocoder(requireContext(), Locale.getDefault()) val address = geocoder.getFromLocation(location.latitude, location.longitude, 1) - val address_line = address?.get(0)?.getAddressLine(0) + val addressLine = address?.get(0)?.getAddressLine(0) coordinate = "${location.latitude},${location.longitude}" - binding.inputLocation.setText(address_line) + binding.inputLocation.setText(addressLine) - Log.d("Location", "Address: $address_line") + Log.d("Location", "Address: $addressLine") Log.d("Location", "Coordinate: $coordinate") } catch (e: Exception) { @@ -295,29 +293,24 @@ class DetailTransaction : Fragment(), LocationListener { locationRequest.fastestInterval = 5000 val builder = LocationSettingsRequest.Builder().addLocationRequest(locationRequest) - builder.setAlwaysShow(true) - - var result = LocationServices.getSettingsClient(requireContext().applicationContext).checkLocationSettings(builder.build()) - + val result = LocationServices.getSettingsClient(requireContext().applicationContext).checkLocationSettings(builder.build()) result.addOnCompleteListener { task -> try { var response = task.getResult( ApiException::class.java ) - getUserLocation() - } catch (ex: ApiException) { when (ex.statusCode) { LocationSettingsStatusCodes.RESOLUTION_REQUIRED -> { try { - var resolvableApiException = ex as ResolvableApiException + val resolvableApiException = ex as ResolvableApiException resolvableApiException.startResolutionForResult( this@DetailTransaction.requireActivity(), 200 ) - } catch (ex: IntentSender.SendIntentException) { + } catch (_: IntentSender.SendIntentException) { } } LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE -> { @@ -327,7 +320,6 @@ class DetailTransaction : Fragment(), LocationListener { } } } - } override fun onDestroyView() { @@ -337,7 +329,6 @@ class DetailTransaction : Fragment(), LocationListener { if(fragmentCounter>1){ LocalBroadcastManager.getInstance(requireContext()).unregisterReceiver(transactionReceiver) } - } override fun onLocationChanged(location: Location) { diff --git a/app/src/main/java/com/example/android_hit/Transaction.kt b/app/src/main/java/com/example/android_hit/Transaction.kt index e1482e6e05720e0e06ce1f6071836d3fb9bf2d76..3658c4469e2dd5d926e5ca722d920cc448ac43c4 100644 --- a/app/src/main/java/com/example/android_hit/Transaction.kt +++ b/app/src/main/java/com/example/android_hit/Transaction.kt @@ -28,7 +28,6 @@ private const val ARG_PARAM2 = "param2" * create an instance of this fragment. */ class Transaction : Fragment() { - // TODO: Rename and change types of parameters private lateinit var binding: FragmentTransactionBinding private lateinit var recyclerView: RecyclerView private lateinit var adapter: TransactionAdapter @@ -36,10 +35,6 @@ class Transaction : Fragment() { private lateinit var fab: FloatingActionButton private var list = mutableListOf<TransactionEntity>() -// override fun onCreate(savedInstanceState: Bundle?) { -// super.onCreate(savedInstanceState) -// } - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? diff --git a/app/src/main/java/com/example/android_hit/adapter/TransactionAdapter.kt b/app/src/main/java/com/example/android_hit/adapter/TransactionAdapter.kt index 66cc0a7b3a1b05d05de2bb795610a713445cb6a3..222f10956ca194d13832072cfb32cb64a24a5b59 100644 --- a/app/src/main/java/com/example/android_hit/adapter/TransactionAdapter.kt +++ b/app/src/main/java/com/example/android_hit/adapter/TransactionAdapter.kt @@ -1,9 +1,7 @@ package com.example.android_hit.adapter import android.content.Intent -import android.location.Geocoder import android.net.Uri -import android.util.Log import android.view.LayoutInflater import android.view.ViewGroup import androidx.core.content.ContextCompat @@ -28,15 +26,11 @@ class TransactionAdapter(private val list: MutableList<TransactionEntity>) : Rec location.text = transaction.location date.text = transaction.timestamp - if (transaction.category == "Expense") { - category.setTextColor(ContextCompat.getColor(itemView.context, R.color.secondary4)) - } else { - category.setTextColor(ContextCompat.getColor(itemView.context, R.color.secondary5)) - } + val colorId = if (transaction.category == "Expense") R.color.secondary4 else R.color.secondary5 + category.setTextColor(ContextCompat.getColor(binding.root.context, colorId)) deleteButton.setOnClickListener { - val position = adapterPosition - onDeleteClickListener?.onDeleteClick(position) + onDeleteClickListener?.onDeleteClick(adapterPosition) } editButton.setOnClickListener { @@ -46,18 +40,14 @@ class TransactionAdapter(private val list: MutableList<TransactionEntity>) : Rec } location.setOnClickListener { - Log.d("Masuk klik Location", transaction.location) - if (transaction.coordinate != "-6.927314530264154, 107.77007155415649") { - val locationUri = "geo:0,0?q=${transaction.location}" - val mapIntent = Intent(Intent.ACTION_VIEW, Uri.parse(locationUri)) - mapIntent.setPackage("com.google.android.apps.maps") - startActivity(binding.root.context, mapIntent, null) + val locationUri = if (transaction.coordinate != "-6.927314530264154, 107.77007155415649") { + "geo:0,0?q=${transaction.location}" } else { - val locationUri = "geo:0,0?q=${transaction.coordinate}" - val mapIntent = Intent(Intent.ACTION_VIEW, Uri.parse(locationUri)) - mapIntent.setPackage("com.google.android.apps.maps") - startActivity(binding.root.context, mapIntent, null) + "geo:0,0?q=${transaction.coordinate}" } + val mapIntent = Intent(Intent.ACTION_VIEW, Uri.parse(locationUri)) + mapIntent.setPackage("com.google.android.apps.maps") + startActivity(binding.root.context, mapIntent, null) } } }