From d955097ce165165be1f07c139023f25ead3e9379 Mon Sep 17 00:00:00 2001
From: Farizki Kurniawan <fariski.mail@gmail.com>
Date: Fri, 5 Apr 2024 15:06:17 +0700
Subject: [PATCH] fix: check if view destroyed

---
 .../bondoman/ui/transaction/TransactionFragment.kt  | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/com/example/bondoman/ui/transaction/TransactionFragment.kt b/app/src/main/java/com/example/bondoman/ui/transaction/TransactionFragment.kt
index 15ffdda..f5cdfac 100644
--- a/app/src/main/java/com/example/bondoman/ui/transaction/TransactionFragment.kt
+++ b/app/src/main/java/com/example/bondoman/ui/transaction/TransactionFragment.kt
@@ -2,7 +2,6 @@ package com.example.bondoman.ui.transaction
 
 import android.Manifest
 import android.app.AlertDialog
-import android.content.ActivityNotFoundException
 import android.content.Context
 import android.content.Intent
 import android.content.pm.PackageManager
@@ -28,18 +27,16 @@ import androidx.core.app.ActivityCompat
 import androidx.core.content.ContextCompat
 import androidx.core.view.MenuHost
 import androidx.core.view.MenuProvider
+import androidx.core.view.isVisible
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.Observer
 import androidx.navigation.Navigation
 import com.example.bondoman.R
-import com.example.bondoman.api.auth.login.dto.LoginRequest
 import com.example.bondoman.core.data.Transaction
 import com.example.bondoman.databinding.FragmentTransactionBinding
 import com.example.bondoman.lib.transaction.TRANSACTION_TYPE
-import okhttp3.MediaType
-import java.io.File
 
 
 class TransactionFragment : Fragment(), LocationListener, GeocodeListener {
@@ -48,7 +45,7 @@ class TransactionFragment : Fragment(), LocationListener, GeocodeListener {
     private var currentTransaction = Transaction("", "", 0L, 0L, "",0.0,0.0)
 
     private var _binding: FragmentTransactionBinding? = null
-
+    private var isAvailable = false;
     // This property is only valid between onCreateView and
     // onDestroyView.
     private val binding get() = _binding!!
@@ -58,10 +55,15 @@ class TransactionFragment : Fragment(), LocationListener, GeocodeListener {
         super.onCreate(savedInstanceState)
     }
 
+    override fun onDestroyView() {
+        super.onDestroyView()
+        this.isAvailable = false
+    }
     override fun onCreateView(
         inflater: LayoutInflater, container: ViewGroup?,
         savedInstanceState: Bundle?
     ): View? {
+        this.isAvailable = true
         // Inflate the layout for this fragment
         _binding = FragmentTransactionBinding.inflate(inflater, container, false)
         val view = binding.root
@@ -304,6 +306,7 @@ class TransactionFragment : Fragment(), LocationListener, GeocodeListener {
 
     private lateinit var geocoder: Geocoder
     override fun onGeocode(p0: MutableList<Address>) {
+        if(this.isAvailable)
         tvGpsLocation.text = p0[0].getAddressLine(0).toString()
     }
 
-- 
GitLab