diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index c920a39773c94b53581a624ea8e0fc3b4e502593..7f33317cf9f056a4da9dfc420ea2864502bd0601 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -65,6 +65,7 @@ dependencies {
     implementation("com.google.android.material:material:1.11.0")
     implementation("androidx.mediarouter:mediarouter:1.7.0")
     implementation("androidx.camera:camera-view:1.3.2")
+    //implementation("com.github.PhilJay:MPAndroidChart:v3.1.0")
     testImplementation("junit:junit:4.13.2")
     androidTestImplementation("androidx.test.ext:junit:1.1.5")
     androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a9e24f1f3df4384c3c4ee59181a780c3c8b12e6c..dd3c1e9f24acd3e4f56a680d198ccc8df4f1f6e1 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -6,6 +6,8 @@
     <uses-feature
         android:name="android.hardware.camera"
         android:required="false" />
+
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <uses-permission android:name="android.permission.CAMERA"/>
 
     <application
diff --git a/app/src/main/java/com/example/bondoman/MainActivity.kt b/app/src/main/java/com/example/bondoman/MainActivity.kt
index 23ed3181f5e8b00604d8e56737d8471c98b1f6f4..fd9cf8f83602708d175d4fd4a070d1ce6a348bc3 100644
--- a/app/src/main/java/com/example/bondoman/MainActivity.kt
+++ b/app/src/main/java/com/example/bondoman/MainActivity.kt
@@ -2,18 +2,39 @@ package com.example.bondoman
 
 import SettingsFragment
 import android.annotation.SuppressLint
+import android.content.Context
+import android.net.ConnectivityManager
 import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
 import android.widget.TextView
+import androidx.appcompat.app.AlertDialog
 import androidx.appcompat.app.AppCompatActivity
 import androidx.fragment.app.Fragment
 import com.google.android.material.bottomnavigation.BottomNavigationView
 
 
 class MainActivity : AppCompatActivity() {
+
+    private val handler = Handler(Looper.getMainLooper())
+    private val checkNetworkRunnable = object : Runnable {
+        override fun run() {
+            // Check network connection status
+            if (!isNetworkConnected()) {
+                // Display pop-up dialog
+                showNoInternetDialog()
+            }
+            // Schedule the next check after 1 minutes
+            handler.postDelayed(this, 60 * 1000) // 3 minutes in milliseconds
+        }
+    }
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_main)
 
+        // Check network connection status
+        startNetworkCheck()
+
         val bottomNavigationView = findViewById<BottomNavigationView>(R.id.bottomNavigationView)
         var previousItem = 0
 
@@ -86,6 +107,39 @@ class MainActivity : AppCompatActivity() {
         frameHeaderText.text = title
     }
 
+    private fun startNetworkCheck() {
+        // Immediately check network connection
+        checkNetworkRunnable.run()
+    }
+
+    private fun stopNetworkCheck() {
+        // Remove any pending callbacks to stop the periodic check
+        handler.removeCallbacks(checkNetworkRunnable)
+    }
+
+    private fun isNetworkConnected(): Boolean {
+        val connectivityManager =
+            getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
+        val activeNetworkInfo = connectivityManager.activeNetworkInfo
+        return activeNetworkInfo != null && activeNetworkInfo.isConnected
+    }
+
+    private fun showNoInternetDialog() {
+        val builder = AlertDialog.Builder(this)
+        builder.setTitle("No Internet Connection")
+            .setMessage("Please check your internet connection and try again.")
+            .setPositiveButton("OK") { dialog, _ -> dialog.dismiss() }
+            .setCancelable(false)
+        val dialog = builder.create()
+        dialog.show()
+    }
+
+    override fun onDestroy() {
+        super.onDestroy()
+        // Stop the periodic network check when the activity is destroyed
+        stopNetworkCheck()
+    }
+
     companion object {
         const val EXTRA_FRAGMENT = "com.example.bondoman.EXTRA_FRAGMENT"
         const val FRAGMENT_TRANSAKSI = "transaksi_fragment"
diff --git a/app/src/main/java/com/example/bondoman/fragment_graph.kt b/app/src/main/java/com/example/bondoman/fragment_graph.kt
new file mode 100644
index 0000000000000000000000000000000000000000..a314c9fcb7512f45c583d65067382dd54711b8a9
--- /dev/null
+++ b/app/src/main/java/com/example/bondoman/fragment_graph.kt
@@ -0,0 +1,42 @@
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import com.example.bondoman.R
+//import com.github.mikephil.charting.charts.PieChart
+//import com.github.mikephil.charting.data.Entry
+//import com.github.mikephil.charting.data.PieData
+//import com.github.mikephil.charting.data.PieDataSet
+
+class GraphFragment : Fragment() {
+
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        return inflater.inflate(R.layout.fragment_graph, container, false)
+    }
+
+}
+
+//override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+//    super.onViewCreated(view, savedInstanceState)
+//
+//    val pieChart = view.findViewById<PieChart>(R.id.pieChart)
+//
+//    // Dummy data for demonstration
+//    val entries = listOf(
+//        Entry(0f, 200f),
+//        Entry(1f, 300f),
+//        Entry(2f, 400f),
+//        Entry(3f, 500f)
+//    )
+//
+//    val dataSet = PieDataSet(entries, "Summary")
+//    val data = PieData(dataSet)
+//    pieChart.data = data
+//
+//    // Customize the appearance of the chart
+//    pieChart.description.isEnabled = false
+//    pieChart.invalidate() }
diff --git a/app/src/main/java/com/example/bondoman/fragment_scanner.kt b/app/src/main/java/com/example/bondoman/fragment_scanner.kt
index 1394d5240ba8a1457704b1f7f080066110748eee..3be4c1e581c4dad7ab118a4080d16ad670ebd66e 100644
--- a/app/src/main/java/com/example/bondoman/fragment_scanner.kt
+++ b/app/src/main/java/com/example/bondoman/fragment_scanner.kt
@@ -26,6 +26,7 @@ import androidx.fragment.app.Fragment
 import androidx.lifecycle.LifecycleOwner
 import com.google.android.material.floatingactionbutton.FloatingActionButton
 import java.io.File
+import java.io.FileOutputStream
 import java.util.concurrent.ExecutorService
 import java.util.concurrent.Executors
 
@@ -115,12 +116,28 @@ class CameraFragment : Fragment() {
         super.onActivityResult(requestCode, resultCode, data)
         if (requestCode == REQUEST_CODE_GALLERY && resultCode == Activity.RESULT_OK) {
             data?.data?.let { uri ->
-                capturedImageView.setImageURI(uri)
-                capturedImageView.visibility = View.VISIBLE
+                saveGalleryImage(uri)
             }
         }
     }
 
+    private fun saveGalleryImage(uri: Uri) {
+        val inputStream = requireContext().contentResolver.openInputStream(uri)
+        val outputDir = File(requireContext().filesDir, "photos")
+        if (!outputDir.exists()) {
+            outputDir.mkdir()
+        }
+        val photoFile = File(outputDir, "${System.currentTimeMillis()}.jpg")
+        inputStream?.use { input ->
+            FileOutputStream(photoFile).use { output ->
+                input.copyTo(output)
+            }
+        }
+        currentPhotoPath = photoFile.absolutePath
+        showCapturedImage()
+    }
+
+
     private fun allPermissionsGranted() =
         REQUIRED_PERMISSIONS.all {
             ContextCompat.checkSelfPermission(
@@ -197,3 +214,5 @@ class CameraFragment : Fragment() {
         private val REQUIRED_PERMISSIONS = arrayOf(Manifest.permission.CAMERA)
     }
 }
+
+class fragment_graph {}
\ 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 0000000000000000000000000000000000000000..c2ebe811aa5fcc66fea59d3b4b77d64075a08820
--- /dev/null
+++ b/app/src/main/res/layout/fragment_graph.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout 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">
+
+    <com.github.mikephil.charting.charts.PieChart
+        android:id="@+id/pieChart"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        tools:ignore="MissingClass" />
+
+</RelativeLayout>