diff --git a/app/src/main/java/com/mhn/bondoman/ui/settings/SettingsFragment.kt b/app/src/main/java/com/mhn/bondoman/ui/settings/SettingsFragment.kt index d1c9b6109af96181e068eb402a4785a59f1ea466..ba286c31b63b97cac76be16e185f692b3294a514 100644 --- a/app/src/main/java/com/mhn/bondoman/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/mhn/bondoman/ui/settings/SettingsFragment.kt @@ -21,6 +21,18 @@ class SettingsFragment : Fragment() { } private lateinit var viewModel: SettingsViewModel + private val titles: MutableList<String> = mutableListOf() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + titles.apply { + add("Food") + add("Drink") + add("Apparel") + add("Candi Prambanan") + add("Sepuh WBD") + } + } override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -41,6 +53,7 @@ class SettingsFragment : Fragment() { Intent().also { it.setAction("com.mhn.bondoman.RANDOMIZE_TRANSACTION") it.setPackage(requireContext().packageName) + it.putExtra("selectedTitle", titles.random()) requireContext().sendBroadcast(it) } } diff --git a/app/src/main/java/com/mhn/bondoman/ui/transactions/TransactionAdd.kt b/app/src/main/java/com/mhn/bondoman/ui/transactions/TransactionAdd.kt index 2d3a9a0f719f752b3d52283d84ffe8542c7b6e7a..2cda3773a4ffac32f6cddeac50e4a26f2397b347 100644 --- a/app/src/main/java/com/mhn/bondoman/ui/transactions/TransactionAdd.kt +++ b/app/src/main/java/com/mhn/bondoman/ui/transactions/TransactionAdd.kt @@ -1,8 +1,11 @@ package com.mhn.bondoman.ui.transactions import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent import android.content.IntentFilter import android.os.Bundle +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -13,17 +16,13 @@ import android.widget.Toast import androidx.core.content.ContextCompat import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider -import androidx.lifecycle.lifecycleScope import androidx.navigation.findNavController import com.google.android.material.textfield.TextInputEditText import com.mhn.bondoman.R -import com.mhn.bondoman.database.AppDatabase import com.mhn.bondoman.database.KeyStoreManager import com.mhn.bondoman.database.Transaction import com.mhn.bondoman.databinding.FragmentAddTransactionBinding import com.mhn.bondoman.utils.LocationAdapter -import com.mhn.bondoman.utils.RandomizeReceiver -import kotlinx.coroutines.launch import java.time.LocalDate class TransactionAdd : Fragment() { @@ -37,8 +36,9 @@ class TransactionAdd : Fragment() { private lateinit var addButton: Button private lateinit var gpsService: LocationAdapter private lateinit var transactionLocation: String - private lateinit var broadcastReceiver: RandomizeReceiver + private lateinit var broadcastReceiver: BroadcastReceiver private lateinit var viewModel: TransactionsViewModel + private lateinit var taViewModel: TransactionAddViewModel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -46,6 +46,8 @@ class TransactionAdd : Fragment() { requireActivity(), TransactionsViewModel.FACTORY )[TransactionsViewModel::class.java] + + taViewModel = ViewModelProvider(requireActivity())[TransactionAddViewModel::class.java] } override fun onCreateView( @@ -55,8 +57,6 @@ class TransactionAdd : Fragment() { ): View { _binding = FragmentAddTransactionBinding.inflate(inflater, container, false) - broadcastReceiver = RandomizeReceiver.getInstance() - gpsService = LocationAdapter.getInstance(requireActivity()) etTitle = binding.etTitle @@ -117,7 +117,7 @@ class TransactionAdd : Fragment() { transactionLocation = gpsService.transformToReadable(location) etLocation.setText(transactionLocation) } - binding.etTitle.setText(broadcastReceiver.selectedTitle) + etTitle.setText(taViewModel.getTitle()) } catch (e: Exception) { Toast.makeText(requireContext(), "Please allow location", Toast.LENGTH_SHORT).show() } @@ -125,7 +125,13 @@ class TransactionAdd : Fragment() { override fun onResume() { super.onResume() - broadcastReceiver = RandomizeReceiver.getInstance() + broadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context?, intent: Intent?) { + val selectedTitle = intent?.getStringExtra("selectedTitle") + taViewModel.setTitle(selectedTitle!!) + Log.d("RANDOMIZE", taViewModel.getTitle()) + } + } val filter = IntentFilter("com.mhn.bondoman.RANDOMIZE_TRANSACTION") val listenToBroadcastsFromOtherApps = false val receiverFlags = if (listenToBroadcastsFromOtherApps) { @@ -135,4 +141,9 @@ class TransactionAdd : Fragment() { } ContextCompat.registerReceiver(requireContext(), broadcastReceiver, filter, receiverFlags) } + + override fun onDestroy() { + super.onDestroy() + taViewModel.setTitle("") + } } \ No newline at end of file diff --git a/app/src/main/java/com/mhn/bondoman/ui/transactions/TransactionAddViewModel.kt b/app/src/main/java/com/mhn/bondoman/ui/transactions/TransactionAddViewModel.kt new file mode 100644 index 0000000000000000000000000000000000000000..76aa3726d8bb8106930217760ed15982ba8e4488 --- /dev/null +++ b/app/src/main/java/com/mhn/bondoman/ui/transactions/TransactionAddViewModel.kt @@ -0,0 +1,16 @@ +package com.mhn.bondoman.ui.transactions + +import androidx.lifecycle.ViewModel + +class TransactionAddViewModel: ViewModel() { + + private var title: String = "" + + fun setTitle(title: String) { + this@TransactionAddViewModel.title = title + } + + fun getTitle() : String { + return title + } +} \ No newline at end of file diff --git a/app/src/main/java/com/mhn/bondoman/utils/RandomizeReceiver.kt b/app/src/main/java/com/mhn/bondoman/utils/RandomizeReceiver.kt deleted file mode 100644 index 60e67e7237f13beec2e69f54eebcd11c5a52499d..0000000000000000000000000000000000000000 --- a/app/src/main/java/com/mhn/bondoman/utils/RandomizeReceiver.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.mhn.bondoman.utils - -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -import android.widget.Toast - -class RandomizeReceiver: BroadcastReceiver() { - - companion object { - @Volatile - private var INSTANCE: RandomizeReceiver? = null - - fun getInstance(): RandomizeReceiver{ - if(INSTANCE == null){ - INSTANCE = RandomizeReceiver() - } - return INSTANCE!! - } - } - - private val titles: MutableList<String> = mutableListOf() - private var _selectedTitle = "" - val selectedTitle get() = _selectedTitle - init { - titles.apply { - add("Food") - add("Drink") - add("Apparel") - add("Candi Prambanan") - add("Sepuh WBD") - } - } - override fun onReceive(context: Context?, intent: Intent?) { - val selectedTitle = titles.random() - _selectedTitle = selectedTitle - } -} \ No newline at end of file