diff --git a/app/src/main/java/com/example/myapplication/MainActivity.kt b/app/src/main/java/com/example/myapplication/MainActivity.kt index 78a63375d70c1cb9ce64a522592f6590b72b0a3f..ccea2b34eaf5f6073478fc650f31fd725687da53 100644 --- a/app/src/main/java/com/example/myapplication/MainActivity.kt +++ b/app/src/main/java/com/example/myapplication/MainActivity.kt @@ -2,6 +2,7 @@ package com.example.myapplication import android.content.Context import android.content.Intent +import android.content.IntentFilter import android.net.ConnectivityManager import android.net.NetworkCapabilities import android.os.Bundle @@ -23,12 +24,14 @@ import com.example.myapplication.util.EventBus import com.example.myapplication.util.SecretPreference import java.util.concurrent.TimeUnit import com.example.myapplication.ui.settings.SettingsViewModel +import com.example.myapplication.util.AppBroadcastReceiver class MainActivity : AppCompatActivity(){ private lateinit var binding: ActivityMainBinding private lateinit var secretPreference : SecretPreference private val checkConnection by lazy { CheckConnection(application) } private val connected : MutableLiveData<Boolean> = MutableLiveData(true) + private lateinit var receiver: AppBroadcastReceiver override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -52,6 +55,11 @@ class MainActivity : AppCompatActivity(){ setupActionBarWithNavController(navController, appBarConfiguration) navView.setupWithNavController(navController) + receiver = AppBroadcastReceiver() + val filter = IntentFilter("com.example.myapplication.ui.transactions.ADD_TRANSACTION") + registerReceiver(receiver, filter) + + // val loginIntent = Intent(this, LoginActivity::class.java) // startActivity(loginIntent) } @@ -94,6 +102,11 @@ class MainActivity : AppCompatActivity(){ } } } + + override fun onDestroy() { + super.onDestroy() + unregisterReceiver(receiver) + } fun updateConnection(value: Boolean) { connected.value = value } diff --git a/app/src/main/java/com/example/myapplication/ui/settings/SettingsFragment.kt b/app/src/main/java/com/example/myapplication/ui/settings/SettingsFragment.kt index a5067608a96d2c9f631fa236aa4a8223a496f23e..474f66d869c9af19ad53973f9c30ff24ad110394 100644 --- a/app/src/main/java/com/example/myapplication/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/example/myapplication/ui/settings/SettingsFragment.kt @@ -19,6 +19,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager import com.example.myapplication.MainActivity import com.example.myapplication.R import com.example.myapplication.databinding.FragmentSettingsBinding +import kotlin.random.Random class SettingsFragment : Fragment() { private var _binding: FragmentSettingsBinding? = null @@ -86,10 +87,13 @@ class SettingsFragment : Fragment() { } + val titleList = listOf("Makan", "Minum", "Date", "Halo", "Cincin") + randomizeButton.setOnClickListener { - val intent = Intent("RANDOMIZE") - intent.putExtra("val", "val") - requireContext().sendBroadcast(intent) + val map = mapOf("title" to Random.nextInt(0, 4 + 1), "nominal" to Random.nextInt(1,1000000 + 1)) + val intent = Intent("com.example.myapplication.ui.transactions.ADD_TRANSACTION") + intent.putExtra("map", HashMap(map)) + context?.sendBroadcast(intent) } return root diff --git a/app/src/main/java/com/example/myapplication/util/AppBroadcastReceiver.kt b/app/src/main/java/com/example/myapplication/util/AppBroadcastReceiver.kt new file mode 100644 index 0000000000000000000000000000000000000000..314a13f1ef297aad1cae22f02c2838ed9352f6de --- /dev/null +++ b/app/src/main/java/com/example/myapplication/util/AppBroadcastReceiver.kt @@ -0,0 +1,28 @@ +package com.example.myapplication.util + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import com.example.myapplication.repository.TransactionRepository +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch + +class AppBroadcastReceiver : BroadcastReceiver(){ + private lateinit var transactionRepository : TransactionRepository + override fun onReceive(context: Context?, intent: Intent?) { + val map: Map<String, String>? = intent?.getSerializableExtra("map") as? Map<String, String> + transactionRepository = TransactionRepository(context!!) + GlobalScope.launch { + insertToDatabase(map!!, transactionRepository) + } + } + + suspend fun insertToDatabase(map : Map<String, String>, transactionRepository: TransactionRepository){ + transactionRepository.insertTransactionQuery( + title= map.get("title")!!, + nominal = map["nominal"]!!.toString(), + kategori = "Randomize", + lokasi = "Unknown" + ) + } +} \ No newline at end of file