diff --git a/app/src/main/java/com/example/pbd_jwr/MainActivity.kt b/app/src/main/java/com/example/pbd_jwr/MainActivity.kt
index e497547cac8c4c2920292536c1dddec481018849..a3eb223fcefe2ba8127340ad2d4d6c6925e2d20f 100644
--- a/app/src/main/java/com/example/pbd_jwr/MainActivity.kt
+++ b/app/src/main/java/com/example/pbd_jwr/MainActivity.kt
@@ -10,6 +10,11 @@ import android.content.pm.PackageManager
 import android.widget.Toast
 import android.Manifest
 import android.app.Activity
+import android.content.BroadcastReceiver
+import android.content.IntentFilter
+import android.util.Log
+import android.view.Menu
+import android.view.MenuItem
 import androidx.activity.result.contract.ActivityResultContracts
 
 import com.google.android.material.bottomnavigation.BottomNavigationView
@@ -17,6 +22,7 @@ import androidx.appcompat.app.AppCompatActivity
 import androidx.core.app.ActivityCompat
 import androidx.core.content.ContextCompat
 import androidx.lifecycle.ViewModelProvider
+import androidx.localbroadcastmanager.content.LocalBroadcastManager
 import androidx.navigation.findNavController
 import androidx.navigation.ui.AppBarConfiguration
 import androidx.navigation.ui.setupActionBarWithNavController
@@ -32,6 +38,8 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton
 import org.json.JSONObject
 import java.util.Date
 import kotlin.math.roundToInt
+import androidx.appcompat.widget.Toolbar
+import com.example.pbd_jwr.ui.transaction.TransactionAddFragment
 
 class MainActivity : AppCompatActivity() {
 
@@ -44,17 +52,38 @@ class MainActivity : AppCompatActivity() {
 
     private lateinit var mTransactionViewModel: TransactionViewModel
 
+    private lateinit var receiver: BroadcastReceiver
+
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
 
         val serviceIntent = Intent(this, JWTValidationService::class.java)
         startService(serviceIntent)
 
+        // Inisialisasi receiver
+        val receiver = object : BroadcastReceiver() {
+            override fun onReceive(context: Context, intent: Intent) {
+                if (intent.action == "com.example.pbd_jwr.RANDOMIZE_TRANSACTION") {
+                    val sharedPreferences = context.getSharedPreferences("randomize_data", Context.MODE_PRIVATE)
+                    val editor = sharedPreferences.edit()
+                    editor.putBoolean("randomize_intent_received", true)
+                    editor.apply()
+
+                }
+            }
+        }
+
+        val filter = IntentFilter().apply {
+            addAction("com.example.pbd_jwr.RANDOMIZE_TRANSACTION")
+        }
+        LocalBroadcastManager.getInstance(this).registerReceiver(receiver, filter)
+
         sharedPreferences = EncryptedSharedPref.create(applicationContext,"login")
         sharedPreferencesEditor = sharedPreferences.edit()
         binding = ActivityMainBinding.inflate(layoutInflater)
         setContentView(binding.root)
 
+
         if (!isLocationPermissionGranted()) {
             requestLocationPermission()
         }
@@ -124,6 +153,7 @@ class MainActivity : AppCompatActivity() {
         networkCallback = NetworkCallbackImplementation(this)
         registerNetworkCallback()
     }
+
     private fun isLocationPermissionGranted(): Boolean {
         return ContextCompat.checkSelfPermission(
             this,
@@ -180,6 +210,7 @@ class MainActivity : AppCompatActivity() {
         super.onDestroy()
         val serviceIntent = Intent(this, JWTValidationService::class.java)
         stopService(serviceIntent)
+        LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver)
     }
 
     private fun registerNetworkCallback() {
diff --git a/app/src/main/java/com/example/pbd_jwr/ui/settings/SettingsFragment.kt b/app/src/main/java/com/example/pbd_jwr/ui/settings/SettingsFragment.kt
index 8904abe133f1d1de17dc762d133eb79cb1e20169..1876e51403444d9a384d02b1deeedf2a42ec5a73 100644
--- a/app/src/main/java/com/example/pbd_jwr/ui/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/example/pbd_jwr/ui/settings/SettingsFragment.kt
@@ -57,6 +57,7 @@ class SettingsFragment : Fragment() {
             intent.setAction("com.example.pbd_jwr.RANDOMIZE_TRANSACTION")
 
             LocalBroadcastManager.getInstance(requireContext()).sendBroadcast(intent)
+
         }
 
         binding.twibbonButton.setOnClickListener {
diff --git a/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionAddFragment.kt b/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionAddFragment.kt
index a07051e37a0fccb9d521bbc3925585609484c9a9..e80e414569dbe8a893e281c681f56dc67f9b4587 100644
--- a/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionAddFragment.kt
+++ b/app/src/main/java/com/example/pbd_jwr/ui/transaction/TransactionAddFragment.kt
@@ -10,7 +10,11 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager
 import android.content.pm.PackageManager
 import android.os.Build
 import android.os.Bundle
+import android.util.Log
 import android.view.LayoutInflater
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
 import android.view.View
 import android.view.ViewGroup
 import android.widget.AdapterView
@@ -27,9 +31,7 @@ import com.example.pbd_jwr.databinding.FragmentTransactionAddBinding
 import com.example.pbd_jwr.encryptedSharedPref.EncryptedSharedPref
 import com.google.android.gms.location.FusedLocationProviderClient
 import com.google.android.gms.location.LocationServices
-import com.google.android.gms.location.LocationRequest
-import com.google.android.gms.location.LocationCallback
-import com.google.android.gms.location.LocationResult
+import com.example.pbd_jwr.R
 import java.util.Date
 
 class TransactionAddFragment : Fragment() {
@@ -43,6 +45,8 @@ class TransactionAddFragment : Fragment() {
 
     private lateinit var encryptedSharedPref: SharedPreferences
 
+    private lateinit var receiver: BroadcastReceiver
+
     @RequiresApi(Build.VERSION_CODES.TIRAMISU)
     override fun onCreateView(
         inflater: LayoutInflater,
@@ -62,8 +66,19 @@ class TransactionAddFragment : Fragment() {
             }
         }
 
-        val filter = IntentFilter(TransactionAddFragment.ACTION_RANDOMIZE_TRANSACTION)
-        LocalBroadcastManager.getInstance(requireContext()).registerReceiver(randomizeTransactionReceiver, filter)
+        val sharedPreferences = requireContext().getSharedPreferences("randomize_data", Context.MODE_PRIVATE)
+        val randomIntentReceived = sharedPreferences.getBoolean("randomize_intent_received", false)
+        if (randomIntentReceived) {
+            println("masuk random")
+            // Lakukan randomisasi transaksi di sini
+            handleRandomizeTransaction()
+            // Hapus status intent yang sudah diterima agar tidak diproses lagi
+            val editor = sharedPreferences.edit()
+            editor.putBoolean("randomize_intent_received", false)
+            editor.apply()
+        }
+//
+//        setupListeners()
 
         fusedLocationClient = LocationServices.getFusedLocationProviderClient(requireActivity())
         showCurrentLocation()
@@ -114,26 +129,30 @@ class TransactionAddFragment : Fragment() {
         }
 
 
+
         return root
     }
 
-    private fun handleRandomizeTransaction() {
-        val editMode = arguments?.getBoolean("editMode", false) ?: false
-        if (!editMode) {
-            println("random random")
-            fillRandomField()
-        }
+
+    fun handleRandomizeTransaction() {
+        val randomTitle = generateRandomTitle()
+        val randomAmount = generateRandomAmount()
+
+        binding.editTextTitle.setText(randomTitle)
+        binding.editTextAmount.setText(randomAmount.toString())
+
+        saveRandomData(randomTitle, randomAmount)
     }
 
-    private val randomizeTransactionReceiver = object : BroadcastReceiver() {
-        override fun onReceive(context: Context?, intent: Intent?) {
-            println("Intent diterima oleh broadcast receiver")
-            if (intent?.action == "com.example.pbd_jwr.RANDOMIZE_TRANSACTION") {
-                handleRandomizeTransaction()
-            }
-        }
+    private fun saveRandomData(randomTitle: String, randomAmount: Double) {
+        val sharedPreferences = requireContext().getSharedPreferences("randomize_data", Context.MODE_PRIVATE)
+        val editor = sharedPreferences.edit()
+        editor.putString("random_title", randomTitle)
+        editor.putFloat("random_amount", randomAmount.toFloat()) // Menggunakan putFloat karena SharedPreferences tidak mendukung Double secara langsung
+        editor.apply()
     }
 
+
     private fun showCurrentLocation() {
         if (ContextCompat.checkSelfPermission(
                 requireContext(),
@@ -248,24 +267,21 @@ class TransactionAddFragment : Fragment() {
         Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show()
     }
 
-    private fun fillRandomField() {
-        val randomTitle = generateRandomTitle()
-        binding.editTextTitle.setText(randomTitle)
+    private fun generateRandomAmount(): Double {
+        return (0..300).random().toDouble()
     }
 
     private fun generateRandomTitle(): String {
-        return "Random Transaction ${System.currentTimeMillis()}"
+        return "Random Transaction"
     }
 
     override fun onDestroyView() {
         super.onDestroyView()
 
-        LocalBroadcastManager.getInstance(requireContext()).unregisterReceiver(randomizeTransactionReceiver)
     }
 
     companion object {
         private const val LOCATION_PERMISSION_REQUEST_CODE = 1001
-        const val ACTION_RANDOMIZE_TRANSACTION = "com.example.pbd_jwr.RANDOMIZE_TRANSACTION"
     }
 
 }