From 7ce91a2dee1b7ed5540b625e43886034cc9bfce4 Mon Sep 17 00:00:00 2001
From: "Moch. Sofyan Firdaus" <13521083@std.stei.itb.ac.id>
Date: Sat, 30 Mar 2024 05:50:18 +0700
Subject: [PATCH] feat: header and navbar for 4 menus

---
 .idea/gradle.xml                              |  1 +
 .../com/onionsquad/bondoman/MainActivity.kt   |  2 +-
 .../ui/dashboard/DashboardFragment.kt         | 42 -------------------
 .../bondoman/ui/graph/GraphFragment.kt        | 36 ++++++++++++++++
 .../GraphViewModel.kt}                        |  4 +-
 .../ui/notifications/NotificationsFragment.kt | 42 -------------------
 .../HomeFragment.kt => scan/ScanFragment.kt}  | 22 ++++------
 .../ScanViewModel.kt}                         |  4 +-
 .../bondoman/ui/settings/SettingsFragment.kt  | 35 ++++++++++++++++
 .../bondoman/ui/settings/SettingsViewModel.kt | 12 ++++++
 .../ui/transaction/TransactionFragment.kt     | 36 ++++++++++++++++
 .../TransactionViewModel.kt}                  |  4 +-
 .../ic_baseline_document_scanner_24.xml       |  5 +++
 .../drawable/ic_baseline_receipt_long_24.xml  | 13 ++++++
 .../res/drawable/ic_baseline_settings_24.xml  |  5 +++
 .../drawable/ic_baseline_show_chart_24.xml    |  5 +++
 .../res/drawable/ic_dashboard_black_24dp.xml  |  9 ----
 .../main/res/drawable/ic_home_black_24dp.xml  |  9 ----
 .../drawable/ic_notifications_black_24dp.xml  |  9 ----
 .../main/res/layout/fragment_dashboard.xml    | 22 ----------
 app/src/main/res/layout/fragment_graph.xml    |  7 ++++
 app/src/main/res/layout/fragment_home.xml     | 22 ----------
 .../res/layout/fragment_notifications.xml     | 22 ----------
 app/src/main/res/layout/fragment_scan.xml     |  7 ++++
 app/src/main/res/layout/fragment_settings.xml |  8 ++++
 .../main/res/layout/fragment_transaction.xml  |  7 ++++
 app/src/main/res/menu/bottom_nav_menu.xml     | 23 ++++++----
 .../main/res/navigation/mobile_navigation.xml | 31 ++++++++------
 app/src/main/res/values/strings.xml           |  7 ++--
 29 files changed, 228 insertions(+), 223 deletions(-)
 delete mode 100644 app/src/main/java/com/onionsquad/bondoman/ui/dashboard/DashboardFragment.kt
 create mode 100644 app/src/main/java/com/onionsquad/bondoman/ui/graph/GraphFragment.kt
 rename app/src/main/java/com/onionsquad/bondoman/ui/{home/HomeViewModel.kt => graph/GraphViewModel.kt} (76%)
 delete mode 100644 app/src/main/java/com/onionsquad/bondoman/ui/notifications/NotificationsFragment.kt
 rename app/src/main/java/com/onionsquad/bondoman/ui/{home/HomeFragment.kt => scan/ScanFragment.kt} (51%)
 rename app/src/main/java/com/onionsquad/bondoman/ui/{notifications/NotificationsViewModel.kt => scan/ScanViewModel.kt} (74%)
 create mode 100644 app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsFragment.kt
 create mode 100644 app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsViewModel.kt
 create mode 100644 app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionFragment.kt
 rename app/src/main/java/com/onionsquad/bondoman/ui/{dashboard/DashboardViewModel.kt => transaction/TransactionViewModel.kt} (74%)
 create mode 100644 app/src/main/res/drawable/ic_baseline_document_scanner_24.xml
 create mode 100644 app/src/main/res/drawable/ic_baseline_receipt_long_24.xml
 create mode 100644 app/src/main/res/drawable/ic_baseline_settings_24.xml
 create mode 100644 app/src/main/res/drawable/ic_baseline_show_chart_24.xml
 delete mode 100644 app/src/main/res/drawable/ic_dashboard_black_24dp.xml
 delete mode 100644 app/src/main/res/drawable/ic_home_black_24dp.xml
 delete mode 100644 app/src/main/res/drawable/ic_notifications_black_24dp.xml
 delete mode 100644 app/src/main/res/layout/fragment_dashboard.xml
 create mode 100644 app/src/main/res/layout/fragment_graph.xml
 delete mode 100644 app/src/main/res/layout/fragment_home.xml
 delete mode 100644 app/src/main/res/layout/fragment_notifications.xml
 create mode 100644 app/src/main/res/layout/fragment_scan.xml
 create mode 100644 app/src/main/res/layout/fragment_settings.xml
 create mode 100644 app/src/main/res/layout/fragment_transaction.xml

diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 32522c1..0897082 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project version="4">
+  <component name="GradleMigrationSettings" migrationVersion="1" />
   <component name="GradleSettings">
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
diff --git a/app/src/main/java/com/onionsquad/bondoman/MainActivity.kt b/app/src/main/java/com/onionsquad/bondoman/MainActivity.kt
index 25e62b6..d92d0a8 100644
--- a/app/src/main/java/com/onionsquad/bondoman/MainActivity.kt
+++ b/app/src/main/java/com/onionsquad/bondoman/MainActivity.kt
@@ -25,7 +25,7 @@ class MainActivity : AppCompatActivity() {
         // Passing each menu ID as a set of Ids because each
         // menu should be considered as top level destinations.
         val appBarConfiguration = AppBarConfiguration(setOf(
-                R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications))
+                R.id.navigation_transaction, R.id.navigation_scan, R.id.navigation_graph, R.id.navigation_settings))
         setupActionBarWithNavController(navController, appBarConfiguration)
         navView.setupWithNavController(navController)
     }
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/dashboard/DashboardFragment.kt b/app/src/main/java/com/onionsquad/bondoman/ui/dashboard/DashboardFragment.kt
deleted file mode 100644
index 6357eed..0000000
--- a/app/src/main/java/com/onionsquad/bondoman/ui/dashboard/DashboardFragment.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.onionsquad.bondoman.ui.dashboard
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.TextView
-import androidx.fragment.app.Fragment
-import androidx.lifecycle.ViewModelProvider
-import com.onionsquad.bondoman.databinding.FragmentDashboardBinding
-
-class DashboardFragment : Fragment() {
-
-    private var _binding: FragmentDashboardBinding? = null
-
-    // This property is only valid between onCreateView and
-    // onDestroyView.
-    private val binding get() = _binding!!
-
-    override fun onCreateView(
-            inflater: LayoutInflater,
-            container: ViewGroup?,
-            savedInstanceState: Bundle?
-    ): View {
-        val dashboardViewModel =
-                ViewModelProvider(this).get(DashboardViewModel::class.java)
-
-        _binding = FragmentDashboardBinding.inflate(inflater, container, false)
-        val root: View = binding.root
-
-        val textView: TextView = binding.textDashboard
-        dashboardViewModel.text.observe(viewLifecycleOwner) {
-            textView.text = it
-        }
-        return root
-    }
-
-    override fun onDestroyView() {
-        super.onDestroyView()
-        _binding = null
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/graph/GraphFragment.kt b/app/src/main/java/com/onionsquad/bondoman/ui/graph/GraphFragment.kt
new file mode 100644
index 0000000..9e1c929
--- /dev/null
+++ b/app/src/main/java/com/onionsquad/bondoman/ui/graph/GraphFragment.kt
@@ -0,0 +1,36 @@
+package com.onionsquad.bondoman.ui.graph
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
+import com.onionsquad.bondoman.databinding.FragmentGraphBinding
+
+class GraphFragment : Fragment() {
+
+    private var _binding: FragmentGraphBinding? = null
+
+    // This property is only valid between onCreateView and
+    // onDestroyView.
+    private val binding get() = _binding!!
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View {
+        val graphViewModel =
+            ViewModelProvider(this).get(GraphViewModel::class.java)
+
+        _binding = FragmentGraphBinding.inflate(inflater, container, false)
+
+        return binding.root
+    }
+
+    override fun onDestroyView() {
+        super.onDestroyView()
+        _binding = null
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/home/HomeViewModel.kt b/app/src/main/java/com/onionsquad/bondoman/ui/graph/GraphViewModel.kt
similarity index 76%
rename from app/src/main/java/com/onionsquad/bondoman/ui/home/HomeViewModel.kt
rename to app/src/main/java/com/onionsquad/bondoman/ui/graph/GraphViewModel.kt
index e53c9eb..c3ec681 100644
--- a/app/src/main/java/com/onionsquad/bondoman/ui/home/HomeViewModel.kt
+++ b/app/src/main/java/com/onionsquad/bondoman/ui/graph/GraphViewModel.kt
@@ -1,10 +1,10 @@
-package com.onionsquad.bondoman.ui.home
+package com.onionsquad.bondoman.ui.graph
 
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 
-class HomeViewModel : ViewModel() {
+class GraphViewModel : ViewModel() {
 
     private val _text = MutableLiveData<String>().apply {
         value = "This is home Fragment"
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/notifications/NotificationsFragment.kt b/app/src/main/java/com/onionsquad/bondoman/ui/notifications/NotificationsFragment.kt
deleted file mode 100644
index dab409a..0000000
--- a/app/src/main/java/com/onionsquad/bondoman/ui/notifications/NotificationsFragment.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.onionsquad.bondoman.ui.notifications
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import android.widget.TextView
-import androidx.fragment.app.Fragment
-import androidx.lifecycle.ViewModelProvider
-import com.onionsquad.bondoman.databinding.FragmentNotificationsBinding
-
-class NotificationsFragment : Fragment() {
-
-    private var _binding: FragmentNotificationsBinding? = null
-
-    // This property is only valid between onCreateView and
-    // onDestroyView.
-    private val binding get() = _binding!!
-
-    override fun onCreateView(
-            inflater: LayoutInflater,
-            container: ViewGroup?,
-            savedInstanceState: Bundle?
-    ): View {
-        val notificationsViewModel =
-                ViewModelProvider(this).get(NotificationsViewModel::class.java)
-
-        _binding = FragmentNotificationsBinding.inflate(inflater, container, false)
-        val root: View = binding.root
-
-        val textView: TextView = binding.textNotifications
-        notificationsViewModel.text.observe(viewLifecycleOwner) {
-            textView.text = it
-        }
-        return root
-    }
-
-    override fun onDestroyView() {
-        super.onDestroyView()
-        _binding = null
-    }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/home/HomeFragment.kt b/app/src/main/java/com/onionsquad/bondoman/ui/scan/ScanFragment.kt
similarity index 51%
rename from app/src/main/java/com/onionsquad/bondoman/ui/home/HomeFragment.kt
rename to app/src/main/java/com/onionsquad/bondoman/ui/scan/ScanFragment.kt
index b3c4e63..cee58f5 100644
--- a/app/src/main/java/com/onionsquad/bondoman/ui/home/HomeFragment.kt
+++ b/app/src/main/java/com/onionsquad/bondoman/ui/scan/ScanFragment.kt
@@ -1,17 +1,16 @@
-package com.onionsquad.bondoman.ui.home
+package com.onionsquad.bondoman.ui.scan
 
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
-import android.widget.TextView
 import androidx.fragment.app.Fragment
 import androidx.lifecycle.ViewModelProvider
-import com.onionsquad.bondoman.databinding.FragmentHomeBinding
+import com.onionsquad.bondoman.databinding.FragmentScanBinding
 
-class HomeFragment : Fragment() {
+class ScanFragment : Fragment() {
 
-    private var _binding: FragmentHomeBinding? = null
+    private var _binding: FragmentScanBinding? = null
 
     // This property is only valid between onCreateView and
     // onDestroyView.
@@ -22,17 +21,12 @@ class HomeFragment : Fragment() {
             container: ViewGroup?,
             savedInstanceState: Bundle?
     ): View {
-        val homeViewModel =
-                ViewModelProvider(this).get(HomeViewModel::class.java)
+        val scanViewModel =
+                ViewModelProvider(this).get(ScanViewModel::class.java)
 
-        _binding = FragmentHomeBinding.inflate(inflater, container, false)
-        val root: View = binding.root
+        _binding = FragmentScanBinding.inflate(inflater, container, false)
 
-        val textView: TextView = binding.textHome
-        homeViewModel.text.observe(viewLifecycleOwner) {
-            textView.text = it
-        }
-        return root
+        return binding.root
     }
 
     override fun onDestroyView() {
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/notifications/NotificationsViewModel.kt b/app/src/main/java/com/onionsquad/bondoman/ui/scan/ScanViewModel.kt
similarity index 74%
rename from app/src/main/java/com/onionsquad/bondoman/ui/notifications/NotificationsViewModel.kt
rename to app/src/main/java/com/onionsquad/bondoman/ui/scan/ScanViewModel.kt
index 6d67fe4..a7e50dc 100644
--- a/app/src/main/java/com/onionsquad/bondoman/ui/notifications/NotificationsViewModel.kt
+++ b/app/src/main/java/com/onionsquad/bondoman/ui/scan/ScanViewModel.kt
@@ -1,10 +1,10 @@
-package com.onionsquad.bondoman.ui.notifications
+package com.onionsquad.bondoman.ui.scan
 
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 
-class NotificationsViewModel : ViewModel() {
+class ScanViewModel : ViewModel() {
 
     private val _text = MutableLiveData<String>().apply {
         value = "This is notifications Fragment"
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsFragment.kt b/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsFragment.kt
new file mode 100644
index 0000000..dc153a2
--- /dev/null
+++ b/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsFragment.kt
@@ -0,0 +1,35 @@
+package com.onionsquad.bondoman.ui.settings
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
+import com.onionsquad.bondoman.databinding.FragmentSettingsBinding
+
+class SettingsFragment : Fragment() {
+    private var _binding: FragmentSettingsBinding? = null
+
+    // This property is only valid between onCreateView and
+    // onDestroyView.
+    private val binding get() = _binding!!
+
+    override fun onCreateView(
+        inflater: LayoutInflater,
+        container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View {
+        val transactionViewModel =
+            ViewModelProvider(this).get(SettingsViewModel::class.java)
+
+        _binding = FragmentSettingsBinding.inflate(inflater, container, false)
+
+        return binding.root
+    }
+
+    override fun onDestroyView() {
+        super.onDestroyView()
+        _binding = null
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsViewModel.kt b/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsViewModel.kt
new file mode 100644
index 0000000..a877767
--- /dev/null
+++ b/app/src/main/java/com/onionsquad/bondoman/ui/settings/SettingsViewModel.kt
@@ -0,0 +1,12 @@
+package com.onionsquad.bondoman.ui.settings
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+
+class SettingsViewModel : ViewModel() {
+    private val _text = MutableLiveData<String>().apply {
+        value = "This is notifications Fragment"
+    }
+    val text: LiveData<String> = _text
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionFragment.kt b/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionFragment.kt
new file mode 100644
index 0000000..d43791d
--- /dev/null
+++ b/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionFragment.kt
@@ -0,0 +1,36 @@
+package com.onionsquad.bondoman.ui.transaction
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
+import com.onionsquad.bondoman.databinding.FragmentTransactionBinding
+
+class TransactionFragment : Fragment() {
+
+    private var _binding: FragmentTransactionBinding? = null
+
+    // This property is only valid between onCreateView and
+    // onDestroyView.
+    private val binding get() = _binding!!
+
+    override fun onCreateView(
+            inflater: LayoutInflater,
+            container: ViewGroup?,
+            savedInstanceState: Bundle?
+    ): View {
+        val transactionViewModel =
+                ViewModelProvider(this).get(TransactionViewModel::class.java)
+
+        _binding = FragmentTransactionBinding.inflate(inflater, container, false)
+
+        return binding.root
+    }
+
+    override fun onDestroyView() {
+        super.onDestroyView()
+        _binding = null
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/onionsquad/bondoman/ui/dashboard/DashboardViewModel.kt b/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt
similarity index 74%
rename from app/src/main/java/com/onionsquad/bondoman/ui/dashboard/DashboardViewModel.kt
rename to app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt
index 6d4f568..bb883ea 100644
--- a/app/src/main/java/com/onionsquad/bondoman/ui/dashboard/DashboardViewModel.kt
+++ b/app/src/main/java/com/onionsquad/bondoman/ui/transaction/TransactionViewModel.kt
@@ -1,10 +1,10 @@
-package com.onionsquad.bondoman.ui.dashboard
+package com.onionsquad.bondoman.ui.transaction
 
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 
-class DashboardViewModel : ViewModel() {
+class TransactionViewModel : ViewModel() {
 
     private val _text = MutableLiveData<String>().apply {
         value = "This is dashboard Fragment"
diff --git a/app/src/main/res/drawable/ic_baseline_document_scanner_24.xml b/app/src/main/res/drawable/ic_baseline_document_scanner_24.xml
new file mode 100644
index 0000000..fd4a59e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_document_scanner_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+      
+    <path android:fillColor="@android:color/white" android:pathData="M7,3H4v3H2V1h5V3zM22,6V1h-5v2h3v3H22zM7,21H4v-3H2v5h5V21zM20,18v3h-3v2h5v-5H20zM19,18c0,1.1 -0.9,2 -2,2H7c-1.1,0 -2,-0.9 -2,-2V6c0,-1.1 0.9,-2 2,-2h10c1.1,0 2,0.9 2,2V18zM15,8H9v2h6V8zM15,11H9v2h6V11zM15,14H9v2h6V14z"/>
+    
+</vector>
diff --git a/app/src/main/res/drawable/ic_baseline_receipt_long_24.xml b/app/src/main/res/drawable/ic_baseline_receipt_long_24.xml
new file mode 100644
index 0000000..7c7b616
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_receipt_long_24.xml
@@ -0,0 +1,13 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+      
+    <path android:fillColor="@android:color/white" android:pathData="M19.5,3.5L18,2l-1.5,1.5L15,2l-1.5,1.5L12,2l-1.5,1.5L9,2L7.5,3.5L6,2v14H3v3c0,1.66 1.34,3 3,3h12c1.66,0 3,-1.34 3,-3V2L19.5,3.5zM19,19c0,0.55 -0.45,1 -1,1s-1,-0.45 -1,-1v-3H8V5h11V19z"/>
+      
+    <path android:fillColor="@android:color/white" android:pathData="M9,7h6v2h-6z"/>
+      
+    <path android:fillColor="@android:color/white" android:pathData="M16,7h2v2h-2z"/>
+      
+    <path android:fillColor="@android:color/white" android:pathData="M9,10h6v2h-6z"/>
+      
+    <path android:fillColor="@android:color/white" android:pathData="M16,10h2v2h-2z"/>
+    
+</vector>
diff --git a/app/src/main/res/drawable/ic_baseline_settings_24.xml b/app/src/main/res/drawable/ic_baseline_settings_24.xml
new file mode 100644
index 0000000..6593f3a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_settings_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+      
+    <path android:fillColor="@android:color/white" android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.8,11.69 4.8,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z"/>
+    
+</vector>
diff --git a/app/src/main/res/drawable/ic_baseline_show_chart_24.xml b/app/src/main/res/drawable/ic_baseline_show_chart_24.xml
new file mode 100644
index 0000000..3a6c503
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_show_chart_24.xml
@@ -0,0 +1,5 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="24dp" android:tint="#000000" android:viewportHeight="24" android:viewportWidth="24" android:width="24dp">
+      
+    <path android:fillColor="@android:color/white" android:pathData="M3.5,18.49l6,-6.01 4,4L22,6.92l-1.41,-1.41 -7.09,7.97 -4,-4L2,16.99z"/>
+    
+</vector>
diff --git a/app/src/main/res/drawable/ic_dashboard_black_24dp.xml b/app/src/main/res/drawable/ic_dashboard_black_24dp.xml
deleted file mode 100644
index 46fc8de..0000000
--- a/app/src/main/res/drawable/ic_dashboard_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24.0"
-    android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M3,13h8L11,3L3,3v10zM3,21h8v-6L3,15v6zM13,21h8L21,11h-8v10zM13,3v6h8L21,3h-8z" />
-</vector>
diff --git a/app/src/main/res/drawable/ic_home_black_24dp.xml b/app/src/main/res/drawable/ic_home_black_24dp.xml
deleted file mode 100644
index f8bb0b5..0000000
--- a/app/src/main/res/drawable/ic_home_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24.0"
-    android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z" />
-</vector>
diff --git a/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml
deleted file mode 100644
index 78b75c3..0000000
--- a/app/src/main/res/drawable/ic_notifications_black_24dp.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24.0"
-    android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M12,22c1.1,0 2,-0.9 2,-2h-4c0,1.1 0.89,2 2,2zM18,16v-5c0,-3.07 -1.64,-5.64 -4.5,-6.32L13.5,4c0,-0.83 -0.67,-1.5 -1.5,-1.5s-1.5,0.67 -1.5,1.5v0.68C7.63,5.36 6,7.92 6,11v5l-2,2v1h16v-1l-2,-2z" />
-</vector>
diff --git a/app/src/main/res/layout/fragment_dashboard.xml b/app/src/main/res/layout/fragment_dashboard.xml
deleted file mode 100644
index 166ab0e..0000000
--- a/app/src/main/res/layout/fragment_dashboard.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".ui.dashboard.DashboardFragment">
-
-    <TextView
-        android:id="@+id/text_dashboard"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="8dp"
-        android:textAlignment="center"
-        android:textSize="20sp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_graph.xml b/app/src/main/res/layout/fragment_graph.xml
new file mode 100644
index 0000000..ebd46fe
--- /dev/null
+++ b/app/src/main/res/layout/fragment_graph.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".ui.graph.GraphFragment"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml
deleted file mode 100644
index f3d9b08..0000000
--- a/app/src/main/res/layout/fragment_home.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".ui.home.HomeFragment">
-
-    <TextView
-        android:id="@+id/text_home"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="8dp"
-        android:textAlignment="center"
-        android:textSize="20sp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_notifications.xml b/app/src/main/res/layout/fragment_notifications.xml
deleted file mode 100644
index d417935..0000000
--- a/app/src/main/res/layout/fragment_notifications.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".ui.notifications.NotificationsFragment">
-
-    <TextView
-        android:id="@+id/text_notifications"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="8dp"
-        android:textAlignment="center"
-        android:textSize="20sp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_scan.xml b/app/src/main/res/layout/fragment_scan.xml
new file mode 100644
index 0000000..684715a
--- /dev/null
+++ b/app/src/main/res/layout/fragment_scan.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".ui.scan.ScanFragment"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml
new file mode 100644
index 0000000..441476f
--- /dev/null
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".ui.settings.SettingsFragment">
+
+</FrameLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_transaction.xml b/app/src/main/res/layout/fragment_transaction.xml
new file mode 100644
index 0000000..57a8560
--- /dev/null
+++ b/app/src/main/res/layout/fragment_transaction.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".ui.transaction.TransactionFragment"/>
\ No newline at end of file
diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml
index fb6d040..1054af7 100644
--- a/app/src/main/res/menu/bottom_nav_menu.xml
+++ b/app/src/main/res/menu/bottom_nav_menu.xml
@@ -2,18 +2,23 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
 
     <item
-        android:id="@+id/navigation_home"
-        android:icon="@drawable/ic_home_black_24dp"
-        android:title="@string/title_home" />
+        android:id="@+id/navigation_transaction"
+        android:icon="@drawable/ic_baseline_receipt_long_24"
+        android:title="@string/title_transaction" />
 
     <item
-        android:id="@+id/navigation_dashboard"
-        android:icon="@drawable/ic_dashboard_black_24dp"
-        android:title="@string/title_dashboard" />
+        android:id="@+id/navigation_scan"
+        android:icon="@drawable/ic_baseline_document_scanner_24"
+        android:title="@string/title_scan" />
 
     <item
-        android:id="@+id/navigation_notifications"
-        android:icon="@drawable/ic_notifications_black_24dp"
-        android:title="@string/title_notifications" />
+        android:id="@+id/navigation_graph"
+        android:icon="@drawable/ic_baseline_show_chart_24"
+        android:title="@string/title_graph" />
+
+    <item
+        android:id="@+id/navigation_settings"
+        android:icon="@drawable/ic_baseline_settings_24"
+        android:title="@string/title_settings" />
 
 </menu>
\ No newline at end of file
diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml
index d69a26b..fc575e8 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -3,23 +3,28 @@
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:id="@+id/mobile_navigation"
-    app:startDestination="@+id/navigation_home">
+    app:startDestination="@+id/navigation_transaction">
 
     <fragment
-        android:id="@+id/navigation_home"
-        android:name="com.onionsquad.bondoman.ui.home.HomeFragment"
-        android:label="@string/title_home"
-        tools:layout="@layout/fragment_home" />
+        android:id="@+id/navigation_transaction"
+        android:name="com.onionsquad.bondoman.ui.graph.GraphFragment"
+        android:label="@string/title_transaction"
+        tools:layout="@layout/fragment_graph" />
 
     <fragment
-        android:id="@+id/navigation_dashboard"
-        android:name="com.onionsquad.bondoman.ui.dashboard.DashboardFragment"
-        android:label="@string/title_dashboard"
-        tools:layout="@layout/fragment_dashboard" />
+        android:id="@+id/navigation_scan"
+        android:name="com.onionsquad.bondoman.ui.transaction.TransactionFragment"
+        android:label="@string/title_scan"
+        tools:layout="@layout/fragment_transaction" />
 
     <fragment
-        android:id="@+id/navigation_notifications"
-        android:name="com.onionsquad.bondoman.ui.notifications.NotificationsFragment"
-        android:label="@string/title_notifications"
-        tools:layout="@layout/fragment_notifications" />
+        android:id="@+id/navigation_graph"
+        android:name="com.onionsquad.bondoman.ui.scan.ScanFragment"
+        android:label="@string/title_graph"
+        tools:layout="@layout/fragment_scan" />
+    <fragment
+        android:id="@+id/navigation_settings"
+        android:name="com.onionsquad.bondoman.ui.settings.SettingsFragment"
+        android:label="@string/title_settings"
+        tools:layout="@layout/fragment_settings" />
 </navigation>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bc7365b..ad704cd 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,6 +1,7 @@
 <resources>
     <string name="app_name">Bondoman</string>
-    <string name="title_home">Home</string>
-    <string name="title_dashboard">Dashboard</string>
-    <string name="title_notifications">Notifications</string>
+    <string name="title_transaction">Transaction</string>
+    <string name="title_scan">Scan</string>
+    <string name="title_graph">Graph</string>
+    <string name="title_settings">Settings</string>
 </resources>
\ No newline at end of file
-- 
GitLab