diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/AddTransactionsFragment.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/AddTransactionsFragment.kt index 3bd484ddb198fcd7c934173ec83caf05cb990ee5..88d64ef36a124fb2e7a944540da9f4ca8a2a2dd2 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/AddTransactionsFragment.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/AddTransactionsFragment.kt @@ -7,12 +7,12 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ArrayAdapter -import android.widget.TextView import android.widget.Toast import androidx.core.app.ActivityCompat import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import com.example.bondoyap.databinding.FragmentAddTransactionsBinding +import com.example.bondoyap.ui.transactions.data.Transactions import com.google.android.gms.location.FusedLocationProviderClient import com.google.android.gms.location.LocationServices import java.text.SimpleDateFormat diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt index 025e2796bb9065f35490a6fa76392895cc5ebc36..f72aaec034e554588d337ae3b8a2d80d30291e71 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/EditTransactionsFragment.kt @@ -2,16 +2,12 @@ package com.example.bondoyap.ui.transactions import android.R import android.app.AlertDialog -import android.content.Intent import android.content.pm.PackageManager import android.location.Address import android.location.Geocoder -import android.net.Uri import android.os.Bundle import android.os.Handler import android.os.Looper -import android.text.Editable -import android.text.Spannable import android.text.SpannableStringBuilder import android.view.LayoutInflater import android.view.View @@ -19,12 +15,11 @@ import android.view.ViewGroup import android.widget.ArrayAdapter import android.widget.Toast import androidx.core.app.ActivityCompat -import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController -import com.example.bondoyap.databinding.FragmentAddTransactionsBinding import com.example.bondoyap.databinding.FragmentEditTransactionsBinding +import com.example.bondoyap.ui.transactions.data.Transactions import com.google.android.gms.location.FusedLocationProviderClient import com.google.android.gms.location.LocationServices import kotlinx.coroutines.CoroutineScope @@ -183,16 +178,20 @@ class EditTransactionsFragment : Fragment() { binding.editTextNominal.text = SpannableStringBuilder(transaction.nominal.toBigDecimal().toString()) - val addresses: List<Address> = - Geocoder(requireContext(), Locale.getDefault()).getFromLocation( - transaction.latitude.toDouble(), - transaction.longitude.toDouble(), - 1 - ) ?: emptyList() - if (addresses.isNotEmpty()) { - val locationName = addresses[0].getAddressLine(0) - Handler(Looper.getMainLooper()).post { - binding.editTextLokasi.text = SpannableStringBuilder(locationName) + if (transaction.longitude.isEmpty() || transaction.latitude.isEmpty()) { + binding.editTextLokasi.text = SpannableStringBuilder("Unavailable") + } else { + val addresses: List<Address> = + Geocoder(requireContext(), Locale.getDefault()).getFromLocation( + transaction.latitude.toDouble(), + transaction.longitude.toDouble(), + 1 + ) ?: emptyList() + if (addresses.isNotEmpty()) { + val locationName = addresses[0].getAddressLine(0) + Handler(Looper.getMainLooper()).post { + binding.editTextLokasi.text = SpannableStringBuilder(locationName) + } } } diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsApplication.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsApplication.kt index dd689b1fa840106ee0e113f1a93086fa7c113f14..0634b8129e6625beb80b829d449e8f6219f26988 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsApplication.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsApplication.kt @@ -1,6 +1,8 @@ package com.example.bondoyap.ui.transactions import android.app.Application +import com.example.bondoyap.ui.transactions.data.TransactionsRepository +import com.example.bondoyap.ui.transactions.data.TransactionsRoomDatabase class TransactionsApplication: Application() { val database by lazy { TransactionsRoomDatabase.getDatabase(this) } diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsListAdapter.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsListAdapter.kt index 7ce3edd1637d5247920f3c1a07b148fd3fbf648e..6c5dce13bf504632c030d4a57aa4b6fc47b3991e 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsListAdapter.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsListAdapter.kt @@ -16,11 +16,11 @@ import android.widget.Toast import androidx.cardview.widget.CardView import androidx.core.content.ContextCompat.startActivity import androidx.navigation.Navigation -import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.example.bondoyap.R +import com.example.bondoyap.ui.transactions.data.Transactions import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsViewModel.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsViewModel.kt index ff47645bc7e10fbd57dd6763bea0e072756dd0c7..012172e8ce21819fb181c307aa74520ef627be80 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsViewModel.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsViewModel.kt @@ -3,15 +3,12 @@ package com.example.bondoyap.ui.transactions import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory.Companion.APPLICATION_KEY import androidx.lifecycle.asLiveData -import androidx.lifecycle.createSavedStateHandle import androidx.lifecycle.viewModelScope -import androidx.lifecycle.viewmodel.CreationExtras +import com.example.bondoyap.ui.transactions.data.Transactions +import com.example.bondoyap.ui.transactions.data.TransactionsRepository import kotlinx.coroutines.Deferred import kotlinx.coroutines.async -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch class TransactionsViewModel( diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/Transactions.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/data/Transactions.kt similarity index 92% rename from app/src/main/java/com/example/bondoyap/ui/transactions/Transactions.kt rename to app/src/main/java/com/example/bondoyap/ui/transactions/data/Transactions.kt index 33e0b82c9ffb70dfdbd28074a4c2e7ef886c5528..a5bddbd9edcc1d9bc8323ad08c4ae69d6949e37d 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/Transactions.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/data/Transactions.kt @@ -1,4 +1,4 @@ -package com.example.bondoyap.ui.transactions +package com.example.bondoyap.ui.transactions.data import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsDao.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsDao.kt similarity index 87% rename from app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsDao.kt rename to app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsDao.kt index 9d808a52834fa7b7c3d032707694ee4cc8de1a53..d09b3619c20f83a05fc1a292f450f720efc04412 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsDao.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsDao.kt @@ -1,6 +1,5 @@ -package com.example.bondoyap.ui.transactions +package com.example.bondoyap.ui.transactions.data -import androidx.lifecycle.LiveData import androidx.room.Dao import androidx.room.Delete import androidx.room.Query diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsRepository.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsRepository.kt similarity index 87% rename from app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsRepository.kt rename to app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsRepository.kt index e5e402a75ab9fa2205f9f274c465bd7868975925..2a5dcda7972ac83f2c201507de6d43d2fe30c68d 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsRepository.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsRepository.kt @@ -1,8 +1,7 @@ -package com.example.bondoyap.ui.transactions +package com.example.bondoyap.ui.transactions.data import androidx.annotation.WorkerThread import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.firstOrNull class TransactionsRepository(private val transactionsDao: TransactionsDao) { val allTransactions: Flow<List<Transactions>> = transactionsDao.getTransactions() diff --git a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsRoomDatabase.kt b/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsRoomDatabase.kt similarity index 98% rename from app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsRoomDatabase.kt rename to app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsRoomDatabase.kt index 6c46f75237fc62f154a52ee7bd29be85deb46e7d..ada79cee07b3f11afee9b2a627791b737ab9c644 100644 --- a/app/src/main/java/com/example/bondoyap/ui/transactions/TransactionsRoomDatabase.kt +++ b/app/src/main/java/com/example/bondoyap/ui/transactions/data/TransactionsRoomDatabase.kt @@ -1,4 +1,4 @@ -package com.example.bondoyap.ui.transactions +package com.example.bondoyap.ui.transactions.data import android.content.Context import androidx.room.Database