diff --git a/app/src/main/ic_launcher-playstore.png b/app/src/main/ic_launcher-playstore.png
index 04cf3736bf296794d87563fec5814763e44c9ab6..275fb47ca826da64be2f8a9dc7bd8ecd9f9d2ed5 100644
Binary files a/app/src/main/ic_launcher-playstore.png and b/app/src/main/ic_launcher-playstore.png differ
diff --git a/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt b/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt
index 5dc20acc2da7fd59529eb391d63e88e20917ae91..15fcfded4d996a54321db6633a6961aa6fae2fff 100644
--- a/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt
+++ b/app/src/main/java/com/atm/bondowowo/BondowowoApp.kt
@@ -4,42 +4,56 @@ import android.app.Activity
 import android.app.Application
 import android.content.Context
 import android.content.Intent
+import android.content.IntentFilter
+import android.os.Build
+import android.widget.Toast
+import androidx.annotation.RequiresApi
 import com.atm.bondowowo.ui.login.LoginActivity
 import com.atm.bondowowo.utils.BackgroundJWTChecker
+import com.atm.bondowowo.utils.RandomInputBroadcastReceiver
 import com.atm.bondowowo.utils.UserPreferencesUtil
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.SupervisorJob
 
 class BondowowoApp : Application() {
 
+    private val applicationScope = CoroutineScope(SupervisorJob())
     private var jwtChecker: BackgroundJWTChecker? = null
 
+    @RequiresApi(Build.VERSION_CODES.TIRAMISU)
     override fun onCreate() {
         super.onCreate()
-        initBackgroundJWTChecker(this)
+        val myApplication = applicationContext as BondowowoApp
+        val appScope = myApplication.getApplicationScope()
+        initBackgroundJWTChecker(this, appScope, myApplication)
     }
 
-    private fun initBackgroundJWTChecker(context: Context) {
+
+    private fun initBackgroundJWTChecker(context: Context, scope: CoroutineScope, app: BondowowoApp) {
         jwtChecker = BackgroundJWTChecker()
-        jwtChecker?.startChecking(context, object : BackgroundJWTChecker.Callback {
+        jwtChecker?.startChecking(scope, context, object : BackgroundJWTChecker.Callback {
             override fun onTokenVerified() {
                 // Continu app
             }
 
             override fun onTokenInvalid() {
+//                Toast.makeText(context, "Your session has ended", Toast.LENGTH_SHORT).show()
                 UserPreferencesUtil.removeJWT(context)
                 UserPreferencesUtil.removeEmail(context)
                 val intent = Intent(context, LoginActivity::class.java)
                 intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
                 context.startActivity(intent)
-                if (context is Activity) {
-                    context.finish()
-                }
+                (context as? Activity)?.finish()
             }
 
             override fun onNetworkError() {
-                // Harusnya ini coba cek isi JWT pake library
+//                Toast.makeText(context, "Re-login to use full feature", Toast.LENGTH_SHORT).show()
             }
         })
     }
 
+    private fun getApplicationScope(): CoroutineScope {
+        return applicationScope
+    }
 
 }
diff --git a/app/src/main/java/com/atm/bondowowo/MainActivity.kt b/app/src/main/java/com/atm/bondowowo/MainActivity.kt
index f916c79933f5a4bd88624d866e566e20a05f3ed4..31745c3543aab5be84268d9e85bf04ddba893b18 100644
--- a/app/src/main/java/com/atm/bondowowo/MainActivity.kt
+++ b/app/src/main/java/com/atm/bondowowo/MainActivity.kt
@@ -1,8 +1,11 @@
 package com.atm.bondowowo
 
 import android.content.Intent
+import android.content.IntentFilter
+import android.os.Build
 import android.os.Bundle
 import android.widget.Toast
+import androidx.annotation.RequiresApi
 import androidx.appcompat.app.AppCompatActivity
 import androidx.navigation.findNavController
 import androidx.navigation.fragment.NavHostFragment
@@ -12,6 +15,7 @@ import com.atm.bondowowo.ui.login.LoginActivity
 import com.atm.bondowowo.utils.DialogHelper
 import com.atm.bondowowo.utils.NetworkStateLiveData
 import com.atm.bondowowo.utils.NetworkUtils
+import com.atm.bondowowo.utils.RandomInputBroadcastReceiver
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
@@ -19,7 +23,10 @@ import kotlinx.coroutines.launch
 class MainActivity : AppCompatActivity() {
 
     private lateinit var binding: ActivityMainBinding
+    lateinit var navHostFragment: NavHostFragment
+//    private val randomInputReceiver = RandomInputBroadcastReceiver(this)
 
+    @RequiresApi(Build.VERSION_CODES.TIRAMISU)
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         binding = ActivityMainBinding.inflate(layoutInflater)
@@ -36,7 +43,7 @@ class MainActivity : AppCompatActivity() {
             if (!isUserAuthenticated()) {
                 navigateToLoginActivity()
             } else {
-                val navHostFragment =
+                navHostFragment =
                     supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
                 val navController = navHostFragment.navController
                 binding.bottomNavLayout.bottomNavigation.setupWithNavController(navController)
@@ -62,8 +69,6 @@ class MainActivity : AppCompatActivity() {
     }
 
     private suspend fun isTokenValid(token: String): Boolean {
-        // Lagi malas login juga
-//        return true
         return try {
             val response = NetworkUtils.apiService.verifyToken("Bearer $token")
             if (response.isSuccessful) {
@@ -87,4 +92,5 @@ class MainActivity : AppCompatActivity() {
             false
         }
     }
+
 }
diff --git a/app/src/main/java/com/atm/bondowowo/ui/graph/ChartView.kt b/app/src/main/java/com/atm/bondowowo/ui/graph/ChartView.kt
index 7e150c1255d6f2239d27ddc2a896b7369443c8bc..7189ac604e4a3ea608a1d0cd6e58d47b70403930 100644
--- a/app/src/main/java/com/atm/bondowowo/ui/graph/ChartView.kt
+++ b/app/src/main/java/com/atm/bondowowo/ui/graph/ChartView.kt
@@ -4,6 +4,7 @@ import android.content.Context
 import android.graphics.Color
 import android.view.View
 import android.widget.TextView
+import androidx.core.content.ContextCompat
 import androidx.lifecycle.LiveData
 import com.atm.bondowowo.R
 import com.atm.bondowowo.data.model.Transaction
@@ -52,19 +53,19 @@ class ChartView(context: Context) : View(context) {
             pieChart.holeRadius = 40f
 
             val pieDataSet = PieDataSet(entries, "")
-            pieDataSet.colors = listOf(Color.RED, Color.GREEN, Color.BLUE)
+            pieDataSet.colors =
+                listOf(ContextCompat.getColor(context, R.color.primary1), ContextCompat.getColor(context, R.color.primary3))
             pieDataSet.valueTextSize = 24f
             pieDataSet.valueTextColor = Color.WHITE
-            pieDataSet.valueFormatter = PercentFormatter()
             pieDataSet.sliceSpace = 3f
             pieDataSet.selectionShift = 15f
 
             pieChart.legend.isEnabled = true
-            pieChart.legend.orientation = Legend.LegendOrientation.VERTICAL
-            pieChart.legend.horizontalAlignment = Legend.LegendHorizontalAlignment.RIGHT
-            pieChart.legend.verticalAlignment = Legend.LegendVerticalAlignment.BOTTOM
-            pieChart.legend.textSize = 32f
-            pieChart.legend.textColor = Color.BLACK
+            pieChart.legend.orientation = Legend.LegendOrientation.HORIZONTAL
+            pieChart.legend.horizontalAlignment = Legend.LegendHorizontalAlignment.CENTER
+            pieChart.legend.verticalAlignment = Legend.LegendVerticalAlignment.TOP
+            pieChart.legend.formSize = 24f
+            pieChart.legend.textSize = 16f
             pieChart.animateY(1500, Easing.EaseInOutQuad)
             pieChart.animateX(1500, Easing.EaseInOutQuad)
             pieChart.isHighlightPerTapEnabled = true
diff --git a/app/src/main/java/com/atm/bondowowo/ui/settings/SettingsFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/settings/SettingsFragment.kt
index 0289894aedb596ab4bf2296e51c889908463cc69..903c05baf06602f1faed69d07359b82dc76cf4e2 100644
--- a/app/src/main/java/com/atm/bondowowo/ui/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/atm/bondowowo/ui/settings/SettingsFragment.kt
@@ -23,6 +23,7 @@ class SettingsFragment : Fragment() {
     private lateinit var btn_export: Button
     private lateinit var btn_send_email: Button
     private lateinit var btn_logout: Button
+    private lateinit var btn_random: Button
     private lateinit var database: AppDatabase
 
     override fun onCreateView(
@@ -35,13 +36,12 @@ class SettingsFragment : Fragment() {
         btn_export = view.findViewById(R.id.button_export_to_file)
         btn_send_email = view.findViewById(R.id.button_send_via_email)
         btn_logout = view.findViewById(R.id.button_logout_settings)
+        btn_random = view.findViewById(R.id.button_randomize_input)
 
         val context = requireActivity().applicationContext
         database = AppDatabase.getInstance(context)
 
         btn_export.setOnClickListener {
-//            val listOfTransactions = database.transactionDao().getAll()
-//            ExportToFileUtil.exportDataToFile(requireContext(), listOfTransactions)
             showExportFileDialog()
         }
 
@@ -63,17 +63,16 @@ class SettingsFragment : Fragment() {
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
 
-        val randButton = view.findViewById<Button>(R.id.button_randomize_input)
-        randButton.setOnClickListener {
-            val randNum = (0..1000).random().toString()
-            sendInputValueBroadcast(randNum)
+        btn_random.setOnClickListener {
+            sendRandomInputBroadcast()
         }
     }
 
-    private fun sendInputValueBroadcast(inputValue: String) {
+    private fun sendRandomInputBroadcast() {
+        val randomInput = (0..100).random().toString()
         val intent = Intent("com.atm.bondowowo.RANDOM_INPUT_TRANSACTION")
-        intent.putExtra("input_value", inputValue)
-        requireContext().sendBroadcast(intent)
+        intent.putExtra("input_value", randomInput)
+        context?.sendBroadcast(intent)
     }
 
     private fun showExportFileDialog() {
diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt
index 8e66387ad7c1ef88ca05ea0ce03bc22c958c22ec..22932edfb0979644155c739539432638d76655a1 100644
--- a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt
+++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionActivity.kt
@@ -28,6 +28,8 @@ class TransactionActivity : AppCompatActivity(), TransactionInputFragment.Transa
         // Get the id passed from the intent
         val id = intent.getIntExtra("id", -1)
 
+        // Get random number if exist
+        val randomNumber = intent.getStringExtra("randomNumber")
 
         if (id != -1) {
             // Pass the id to the fragment if id found from intent
@@ -37,6 +39,13 @@ class TransactionActivity : AppCompatActivity(), TransactionInputFragment.Transa
             transactionInputFragment.arguments = args
         }
 
+        if (randomNumber != null && id == -1) {
+            val args = Bundle().apply {
+                putString("randomNumber", randomNumber)
+            }
+            transactionInputFragment.arguments = args
+        }
+
         transactionInputFragment.setListener(this)
 
         supportFragmentManager.beginTransaction()
diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt
index 9296f9cd2821322dd76636f4103c2cb60d8b8c11..137d94266e7c6d909837d99e27a45022a832bf30 100644
--- a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt
+++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionFragment.kt
@@ -1,14 +1,19 @@
 package com.atm.bondowowo.ui.transaction
 
 import android.app.AlertDialog
-import android.content.BroadcastReceiver
-import android.content.Context
 import android.content.Intent
+import android.content.IntentFilter
+import android.os.Build
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import androidx.annotation.RequiresApi
+import androidx.appcompat.app.AppCompatActivity
+import androidx.core.content.ContextCompat
+import androidx.core.content.ContextCompat.registerReceiver
 import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
 import androidx.recyclerview.widget.DividerItemDecoration
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
@@ -16,7 +21,11 @@ import com.atm.bondowowo.R
 import com.atm.bondowowo.adapter.TransactionAdapter
 import com.atm.bondowowo.data.local.database.AppDatabase
 import com.atm.bondowowo.data.local.entity.TransactionEntity
+import com.atm.bondowowo.data.repository.TransactionRepository
+import com.atm.bondowowo.ui.graph.GraphViewModel
+import com.atm.bondowowo.ui.graph.GraphViewModelFactory
 import com.atm.bondowowo.utils.GoogleMapsUtil
+import com.atm.bondowowo.utils.RandomInputBroadcastReceiver
 import com.google.android.material.floatingactionbutton.FloatingActionButton
 
 
@@ -27,14 +36,12 @@ class TransactionFragment : Fragment() {
     private var list = mutableListOf<TransactionEntity>()
     private lateinit var adapter: TransactionAdapter
     private lateinit var database: AppDatabase
-    private lateinit var listener: TransactionInteractionListener
+    private lateinit var transactionViewModel: TransactionViewModel
 
-    interface TransactionInteractionListener {
-        fun onTransactionItemClick(transactionId: Int?)
-        fun onAddTransactionButtonClick()
-    }
+    private lateinit var randomInputReceiver: RandomInputBroadcastReceiver
 
 
+    @RequiresApi(Build.VERSION_CODES.TIRAMISU)
     override fun onCreateView(
         inflater: LayoutInflater,
         container: ViewGroup?,
@@ -44,8 +51,13 @@ class TransactionFragment : Fragment() {
         recyclerView = view.findViewById(R.id.cart_list)
         fab = view.findViewById(R.id.fab)
 
+        database = AppDatabase.getInstance(requireContext())
+        val transactionRepository = TransactionRepository(database)
+        val transactionViewModelFactory = TransactionViewModelFactory(transactionRepository)
+        transactionViewModel =
+            ViewModelProvider(this, transactionViewModelFactory)[TransactionViewModel::class.java]
+
         val context = requireActivity().applicationContext
-        database = AppDatabase.getInstance(context)
         adapter = TransactionAdapter(list)
 
         adapter.setDialog(object : TransactionAdapter.Dialog {
@@ -61,8 +73,6 @@ class TransactionFragment : Fragment() {
                         intent.putExtra("id", list[position].id)
                         startActivity(intent)
                     } else if (which == 1) {
-//                        database.transactionDao().delete(list[position])
-//                        getData()
                         showDeleteConfirmationDialog(position)
                     } else if (which == 2) {
                         list[position].id?.let {
@@ -87,12 +97,25 @@ class TransactionFragment : Fragment() {
         )
 
         fab.setOnClickListener {
-            startActivity(Intent(requireContext(), TransactionActivity::class.java))
+            val intent =
+                Intent(requireContext(), TransactionActivity::class.java)
+            if (transactionViewModel.randomNumber != "") {
+                intent.putExtra("randomNumber", transactionViewModel.randomNumber)
+                transactionViewModel.randomNumber = ""
+            }
+            startActivity(intent)
         }
 
         return view
     }
 
+    @RequiresApi(Build.VERSION_CODES.TIRAMISU)
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        super.onViewCreated(view, savedInstanceState)
+        randomInputReceiver = RandomInputBroadcastReceiver(requireContext(), this)
+        registerRandomInputReceiver()
+    }
+
     override fun onResume() {
         super.onResume()
         getData()
@@ -104,6 +127,10 @@ class TransactionFragment : Fragment() {
         adapter.notifyDataSetChanged()
     }
 
+    fun setRandomNumber(num: String) {
+        transactionViewModel.randomNumber = num
+    }
+
     private fun showDeleteConfirmationDialog(position: Int) {
         val builder = AlertDialog.Builder(requireContext())
         builder.setTitle("Delete Transaction")
@@ -122,4 +149,18 @@ class TransactionFragment : Fragment() {
         database.transactionDao().delete(list[position])
         getData()
     }
+
+    @RequiresApi(Build.VERSION_CODES.TIRAMISU)
+    private fun registerRandomInputReceiver() {
+        registerReceiver(
+            requireContext(),
+            randomInputReceiver,
+            IntentFilter("com.atm.bondowowo.RANDOM_INPUT_TRANSACTION"),
+            ContextCompat.RECEIVER_EXPORTED
+        )
+    }
+
+//    private fun unregisterRandomInputReceiver() {
+//        unregisterReceiver(randomInputReceiver)
+//    }
 }
diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt
index 98897c01c7a65bbf3e4376fd834fc20742b8b169..8f638464bda8d1052192a68ed2ffdbaf03446449 100644
--- a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt
+++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionInputFragment.kt
@@ -27,6 +27,7 @@ import androidx.fragment.app.Fragment
 import com.atm.bondowowo.R
 import com.atm.bondowowo.data.local.database.AppDatabase
 import com.atm.bondowowo.data.local.entity.TransactionEntity
+import com.atm.bondowowo.utils.RandomInputBroadcastReceiver
 import java.time.LocalDateTime
 
 class TransactionInputFragment : Fragment() {
@@ -59,45 +60,50 @@ class TransactionInputFragment : Fragment() {
         database = AppDatabase.getInstance(requireContext())
 
         val categories = arrayOf("pemasukan", "pengeluaran")
-        val adapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_item, categories)
+        val adapter =
+            ArrayAdapter(requireContext(), android.R.layout.simple_spinner_item, categories)
         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
         kategori_transaksi.adapter = adapter
 
         val args = arguments
-        if (args != null) {
-            val id = args.getInt("id", 0)
+        if (args != null && args.getInt("id", -1) != -1) {
+            val id = args.getInt("id", -1)
             val transaction = database.transactionDao().get(id)
 
             nama_transaksi.setText(transaction.nama)
             nominal_transaksi.setText(transaction.nominal.toString())
             kategori_transaksi.setSelection(categories.indexOf(transaction.kategori))
             lokasi_transaksi.setText(transaction.lokasi)
+        } else if (args?.getString("randomNumber") != null) {
+            setNominal(args.getString("randomNumber")!!)
         }
 
         btnSave.setOnClickListener {
             if (nama_transaksi.text.isNotEmpty() && nominal_transaksi.text.isNotEmpty() && lokasi_transaksi.text.isNotEmpty()) {
                 val category = kategori_transaksi.selectedItem.toString()
-                val transactionEntity = if (args != null) {
-                    TransactionEntity(
-                        args.getInt("id", 0),
-                        LocalDateTime.now(),
-                        nama_transaksi.text.toString(),
-                        category,
-                        nominal_transaksi.text.toString().toDouble(),
-                        lokasi_transaksi.text.toString()
-                    )
-                } else {
-                    TransactionEntity(
-                        null,
-                        LocalDateTime.now(),
-                        nama_transaksi.text.toString(),
-                        category,
-                        nominal_transaksi.text.toString().toDouble(),
-                        lokasi_transaksi.text.toString()
-                    )
-                }
-
-                if (args != null) {
+                val transactionEntity =
+                    if (args?.getInt("id", -1) != -1 && args?.getInt("id", -1) != null) {
+                        TransactionEntity(
+                            args?.getInt("id", 0),
+                            LocalDateTime.now(),
+                            nama_transaksi.text.toString(),
+                            category,
+                            nominal_transaksi.text.toString().toDouble(),
+                            lokasi_transaksi.text.toString()
+                        )
+                    } else {
+                        TransactionEntity(
+                            null,
+                            LocalDateTime.now(),
+                            nama_transaksi.text.toString(),
+                            category,
+                            nominal_transaksi.text.toString().toDouble(),
+                            lokasi_transaksi.text.toString()
+                        )
+                    }
+
+                val id = args?.getInt("id", -1)
+                if (id != -1 && id != null) {
                     database.transactionDao().update(transactionEntity)
                 } else {
                     database.transactionDao().insertAll(transactionEntity)
@@ -116,21 +122,22 @@ class TransactionInputFragment : Fragment() {
     @RequiresApi(Build.VERSION_CODES.TIRAMISU)
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
-        requireContext().registerReceiver(
-            inputValueReceiver,
-            IntentFilter("com.atm.bondowowo.RANDOM_INPUT_TRANSACTION"),
-            Context.RECEIVER_NOT_EXPORTED
-        )
 
         if (checkLocationPermission()) {
-            locationManager = requireActivity().getSystemService(Context.LOCATION_SERVICE) as LocationManager
-            locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0f, locationListener)
+            locationManager =
+                requireActivity().getSystemService(Context.LOCATION_SERVICE) as LocationManager
+            locationManager.requestLocationUpdates(
+                LocationManager.GPS_PROVIDER,
+                0,
+                0f,
+                locationListener
+            )
         }
     }
 
     override fun onDestroyView() {
         super.onDestroyView()
-        requireContext().unregisterReceiver(inputValueReceiver)
+//        requireContext().unregisterReceiver(inputValueReceiver)
         if (this::locationManager.isInitialized) {
             locationManager.removeUpdates(locationListener)
         }
@@ -140,15 +147,9 @@ class TransactionInputFragment : Fragment() {
         this.listener = listener
     }
 
-    
-    // Failed still broadcast reciever
-    private val inputValueReceiver = object : BroadcastReceiver() {
-        override fun onReceive(context: Context, intent: Intent) {
-            if (intent.action == "com.atm.bondowowo.RANDOM_INPUT_TRANSACTION") {
-                val inputValue = intent.getStringExtra("input_value")
-                nominal_transaksi.setText(inputValue)
-            }
-        }
+
+    fun setNominal(nominal: String) {
+        nominal_transaksi.setText(nominal)
     }
 
     private lateinit var locationManager: LocationManager
@@ -167,7 +168,8 @@ class TransactionInputFragment : Fragment() {
         }
 
         @Deprecated("Deprecated in Java")
-        override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {}
+        override fun onStatusChanged(provider: String?, status: Int, extras: Bundle?) {
+        }
 
         override fun onProviderEnabled(provider: String) {}
 
@@ -199,7 +201,12 @@ class TransactionInputFragment : Fragment() {
                         Manifest.permission.ACCESS_FINE_LOCATION
                     ) == PackageManager.PERMISSION_GRANTED
                 ) {
-                    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0f, locationListener)
+                    locationManager.requestLocationUpdates(
+                        LocationManager.GPS_PROVIDER,
+                        0,
+                        0f,
+                        locationListener
+                    )
                 }
             } else {
                 Toast.makeText(
diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionViewModel.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionViewModel.kt
new file mode 100644
index 0000000000000000000000000000000000000000..171bfa4b6adb4cfaf9193c6767c7c740b9187717
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionViewModel.kt
@@ -0,0 +1,10 @@
+package com.atm.bondowowo.ui.transaction
+
+import androidx.lifecycle.ViewModel
+import com.atm.bondowowo.data.repository.TransactionRepository
+
+class TransactionViewModel(
+    private val transactionRepository: TransactionRepository
+) : ViewModel() {
+    var randomNumber: String = ""
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionViewModelFactory.kt b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionViewModelFactory.kt
new file mode 100644
index 0000000000000000000000000000000000000000..bbcb0183c788cb5129b99f008ac8f250df5486ce
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/ui/transaction/TransactionViewModelFactory.kt
@@ -0,0 +1,18 @@
+package com.atm.bondowowo.ui.transaction
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import com.atm.bondowowo.data.repository.TransactionRepository
+
+class TransactionViewModelFactory(
+    private val transactionRepository: TransactionRepository
+) : ViewModelProvider.Factory {
+
+    override fun <T : ViewModel> create(modelClass: Class<T>): T {
+        if (modelClass.isAssignableFrom(TransactionViewModel::class.java)) {
+            @Suppress("UNCHECKED_CAST")
+            return TransactionViewModel(transactionRepository) as T
+        }
+        throw IllegalArgumentException("Unknown ViewModel class")
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/atm/bondowowo/utils/BackgroundJWTCheckerUtil.kt b/app/src/main/java/com/atm/bondowowo/utils/BackgroundJWTCheckerUtil.kt
index 047a89ebdcd3177f83426485c28e808518820b7b..28a39419682846c49c24e02fa4e5cd25d8db197b 100644
--- a/app/src/main/java/com/atm/bondowowo/utils/BackgroundJWTCheckerUtil.kt
+++ b/app/src/main/java/com/atm/bondowowo/utils/BackgroundJWTCheckerUtil.kt
@@ -1,6 +1,7 @@
 package com.atm.bondowowo.utils
 
 import android.content.Context
+import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.DelicateCoroutinesApi
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.GlobalScope
@@ -19,17 +20,17 @@ class BackgroundJWTChecker {
         fun onNetworkError()
     }
 
-    @OptIn(DelicateCoroutinesApi::class)
-    fun startChecking(context: Context, callback: Callback) {
-        job = GlobalScope.launch(Dispatchers.IO) {
+    fun startChecking(scope: CoroutineScope, context: Context, callback: Callback) {
+        job = scope.launch(Dispatchers.IO) {
             while (isActive) {
+                // 2,5 Menit
+                delay(2 * 60 * 1000 + 40 * 1000)
                 val token = UserPreferencesUtil.getJWT(context)
                 if (token != null) {
                     verifyToken(token, callback)
                 } else {
                     callback.onTokenInvalid()
                 }
-                delay(3 * 60 * 1000)
             }
         }
     }
diff --git a/app/src/main/java/com/atm/bondowowo/utils/NetworkUtils.kt b/app/src/main/java/com/atm/bondowowo/utils/NetworkUtils.kt
index 41395daa2d346845ad92f488fb7330dd953b3a4e..708de6aa74b4d3bf40587f02df070846151cb617 100644
--- a/app/src/main/java/com/atm/bondowowo/utils/NetworkUtils.kt
+++ b/app/src/main/java/com/atm/bondowowo/utils/NetworkUtils.kt
@@ -1,7 +1,5 @@
 package com.atm.bondowowo.utils
 
-// NetworkUtils.kt
-
 import com.atm.bondowowo.data.remote.ApiService
 import retrofit2.Retrofit
 import retrofit2.converter.gson.GsonConverterFactory
diff --git a/app/src/main/java/com/atm/bondowowo/utils/RandomInputBroadcastReciever.kt b/app/src/main/java/com/atm/bondowowo/utils/RandomInputBroadcastReciever.kt
new file mode 100644
index 0000000000000000000000000000000000000000..bcdea73c8faf129bb71dbaab819394f0cf030d2b
--- /dev/null
+++ b/app/src/main/java/com/atm/bondowowo/utils/RandomInputBroadcastReciever.kt
@@ -0,0 +1,29 @@
+package com.atm.bondowowo.utils
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.ViewModelProvider
+import com.atm.bondowowo.MainActivity
+import com.atm.bondowowo.R
+import com.atm.bondowowo.ui.transaction.TransactionFragment
+import com.atm.bondowowo.ui.transaction.TransactionInputFragment
+import com.atm.bondowowo.ui.transaction.TransactionViewModel
+
+class RandomInputBroadcastReceiver(private val context: Context, private val fragment: TransactionFragment) : BroadcastReceiver() {
+    override fun onReceive(context: Context, intent: Intent) {
+        if (intent.action == "com.atm.bondowowo.RANDOM_INPUT_TRANSACTION") {
+            val inputValue = intent.getStringExtra("input_value")
+            updateTransactionInputField(inputValue)
+        }
+    }
+
+    private fun updateTransactionInputField(inputValue: String?) {
+
+        if (inputValue != null) {
+            fragment.setRandomNumber(inputValue)
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
index 07d5da9cbf141911847041df5d7b87f0dd5ef9d4..ca3826a46ce070f906d0d3fbe6987df882134381 100644
--- a/app/src/main/res/drawable/ic_launcher_background.xml
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -1,170 +1,74 @@
 <?xml version="1.0" encoding="utf-8"?>
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="108dp"
+<vector
     android:height="108dp"
+    android:width="108dp"
+    android:viewportHeight="108"
     android:viewportWidth="108"
-    android:viewportHeight="108">
-    <path
-        android:fillColor="#3DDC84"
-        android:pathData="M0,0h108v108h-108z" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M9,0L9,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,0L19,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M29,0L29,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M39,0L39,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M49,0L49,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M59,0L59,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M69,0L69,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M79,0L79,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M89,0L89,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M99,0L99,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,9L108,9"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,19L108,19"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,29L108,29"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,39L108,39"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,49L108,49"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,59L108,59"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,69L108,69"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,79L108,79"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,89L108,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,99L108,99"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,29L89,29"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,39L89,39"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,49L89,49"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,59L89,59"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,69L89,69"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,79L89,79"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M29,19L29,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M39,19L39,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M49,19L49,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M59,19L59,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M69,19L69,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M79,19L79,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
+    xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#3DDC84"
+          android:pathData="M0,0h108v108h-108z"/>
+    <path android:fillColor="#00000000" android:pathData="M9,0L9,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,0L19,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M29,0L29,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M39,0L39,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M49,0L49,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M59,0L59,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M69,0L69,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M79,0L79,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M89,0L89,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M99,0L99,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,9L108,9"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,19L108,19"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,29L108,29"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,39L108,39"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,49L108,49"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,59L108,59"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,69L108,69"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,79L108,79"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,89L108,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,99L108,99"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,29L89,29"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,39L89,39"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,49L89,49"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,59L89,59"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,69L89,69"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,79L89,79"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M29,19L29,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M39,19L39,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M49,19L49,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M59,19L59,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M69,19L69,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M79,19L79,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
 </vector>
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
index 036d09bc5fd523323794379703c4a111d1e28a04..c4a603d4cce78b2fbd8094bd0224d4778bc8c976 100644
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@color/ic_launcher_background"/>
+    <background android:drawable="@drawable/ic_launcher_background"/>
     <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
 </adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
index 036d09bc5fd523323794379703c4a111d1e28a04..c4a603d4cce78b2fbd8094bd0224d4778bc8c976 100644
--- a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
-    <background android:drawable="@color/ic_launcher_background"/>
+    <background android:drawable="@drawable/ic_launcher_background"/>
     <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
 </adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp
index dec7aebad45b5fbe61008a87ed50e08f07a63831..d66ed28e6489131eba008d4391832674f242dc48 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp
index ec29dabd8761f8af9cd283634dfd7ca4e4b0d637..f3fa9a51c88fc403d596cefd87ee4f56928e8110 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
index 30ff81021b07213271e55672f5d79eb12f89bcb0..bf01cd613d5c681ca30a409887f4418f038d8594 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp
index c16ef8661a5881ace0313e958de7d01aa6b61c46..862283f41b7cd8c5ca269843199e018973fe0b1b 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp
index 156618bc52df7922c6acd4da98c182f5dad32ada..bde09f0be6143812719c26d469f64632b1e38327 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
index 9bfb65dbcfe71b9a7ed6a88a28d379982d0085a6..a3a1b0c0c5786610a704ac239ce85ae3b3b7253b 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
index 6c98e61e8f03469e7a14f87f837a31f17f26f2b0..1c2d3553040f9b4cac203cbb8850ee53e43e0d30 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp
index 66401883babd174e2192d5975b3747f0a91624f4..78599232450782cc564ab1a6005e80f20b547def 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
index 45c4a802d9f74e7729e033bc56ddeab3183385eb..8f71a6bc1e5875ba788e40e4d560052b77749fa5 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
index d8d7c177e417ca4a4d0b9e92c0945ae9a3d636fc..d936744796b71b651eebff74c5791c7bd15963d9 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp
index 247c97387e5f28e659e9e6b2ca562dcf91dcfd4c..52af2763c50261775a77723ad1c5825cdf622e07 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
index eb87021db0340fef07817856b4b55614d8afe466..96e600b53101a9afd8f1b62e2a3cdecd7de53ad7 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
index 57e414a1b7c2997944b519a96be82064afdb9ab7..fcf16a142e36e66ba0c96f28622e7f46830742b2 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
index f04334257392175386e080d4a90c089f09853a31..5d121125b7c122bd416e42a3c38f0ec8933414b9 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
index a5ecb0535041f2b00934b6f62be51face721c79e..fad321b46e8d7c64eb5c4bf298dbd4117c19c9ed 100644
Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ
diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml
index 6019c4af464918d581bd04835109170ad7e7aa1a..8a81311c7c9c112c8d984dad306fb51701a88c3b 100644
--- a/app/src/main/res/navigation/nav_graph.xml
+++ b/app/src/main/res/navigation/nav_graph.xml
@@ -39,7 +39,7 @@
         android:id="@+id/transactionInputFragment"
         android:name="com.atm.bondowowo.ui.transaction.TransactionInputFragment"
         android:label="fragment_transaction_input"
-        tools:layout="@layout/fragment_transaction_input" >
+        tools:layout="@layout/fragment_transaction_input">
         <action
             android:id="@+id/action_transactionInputFragment_to_transactionFragment"
             app:destination="@id/transactionFragment" />