From b4f0bfdf2cc7d6f8a9a917dd435931fd68bd1495 Mon Sep 17 00:00:00 2001
From: syauqijan <13521014@std.stei.itb.ac.id>
Date: Sun, 31 Mar 2024 12:20:35 +0700
Subject: [PATCH] fix network error

---
 .../com/example/android_hit/HeaderNetwork.kt  | 59 +++++++++++++++++++
 .../com/example/android_hit/MainActivity.kt   |  5 ++
 .../com/example/android_hit/NetworkError.kt   | 59 +++++++++++++++++++
 .../res/layout/fragment_header_network.xml    |  8 +++
 .../res/layout/fragment_network_error.xml     | 39 ++++++++++++
 5 files changed, 170 insertions(+)
 create mode 100644 app/src/main/java/com/example/android_hit/HeaderNetwork.kt
 create mode 100644 app/src/main/java/com/example/android_hit/NetworkError.kt
 create mode 100644 app/src/main/res/layout/fragment_header_network.xml
 create mode 100644 app/src/main/res/layout/fragment_network_error.xml

diff --git a/app/src/main/java/com/example/android_hit/HeaderNetwork.kt b/app/src/main/java/com/example/android_hit/HeaderNetwork.kt
new file mode 100644
index 0000000..c5409f4
--- /dev/null
+++ b/app/src/main/java/com/example/android_hit/HeaderNetwork.kt
@@ -0,0 +1,59 @@
+package com.example.android_hit
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+
+// TODO: Rename parameter arguments, choose names that match
+// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+private const val ARG_PARAM1 = "param1"
+private const val ARG_PARAM2 = "param2"
+
+/**
+ * A simple [Fragment] subclass.
+ * Use the [HeaderNetwork.newInstance] factory method to
+ * create an instance of this fragment.
+ */
+class HeaderNetwork : Fragment() {
+    // TODO: Rename and change types of parameters
+    private var param1: String? = null
+    private var param2: String? = null
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        arguments?.let {
+            param1 = it.getString(ARG_PARAM1)
+            param2 = it.getString(ARG_PARAM2)
+        }
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        // Inflate the layout for this fragment
+        return inflater.inflate(R.layout.fragment_header_network, container, false)
+    }
+
+    companion object {
+        /**
+         * Use this factory method to create a new instance of
+         * this fragment using the provided parameters.
+         *
+         * @param param1 Parameter 1.
+         * @param param2 Parameter 2.
+         * @return A new instance of fragment HeaderNetwork.
+         */
+        // TODO: Rename and change types and number of parameters
+        @JvmStatic
+        fun newInstance(param1: String, param2: String) =
+            HeaderNetwork().apply {
+                arguments = Bundle().apply {
+                    putString(ARG_PARAM1, param1)
+                    putString(ARG_PARAM2, param2)
+                }
+            }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/android_hit/MainActivity.kt b/app/src/main/java/com/example/android_hit/MainActivity.kt
index a76aa46..cf0ec0c 100644
--- a/app/src/main/java/com/example/android_hit/MainActivity.kt
+++ b/app/src/main/java/com/example/android_hit/MainActivity.kt
@@ -38,6 +38,11 @@ class MainActivity : AppCompatActivity() {
         binding.bottomNavigation.setOnItemSelectedListener {
             when (it.itemId) {
                 R.id.nav_transaction -> {
+//                    if(!networkManager.value!!){
+//                        setCurrentFragment(NetworkError(), HeaderNetwork())
+//                    }else{
+//                        setCurrentFragment(Transaction(), HeaderTransaction())
+//                    }
                     setCurrentFragment(Transaction(), HeaderTransaction())
                 }
                 R.id.nav_scan -> {
diff --git a/app/src/main/java/com/example/android_hit/NetworkError.kt b/app/src/main/java/com/example/android_hit/NetworkError.kt
new file mode 100644
index 0000000..faeceb8
--- /dev/null
+++ b/app/src/main/java/com/example/android_hit/NetworkError.kt
@@ -0,0 +1,59 @@
+package com.example.android_hit
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+
+// TODO: Rename parameter arguments, choose names that match
+// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+private const val ARG_PARAM1 = "param1"
+private const val ARG_PARAM2 = "param2"
+
+/**
+ * A simple [Fragment] subclass.
+ * Use the [NetworkError.newInstance] factory method to
+ * create an instance of this fragment.
+ */
+class NetworkError : Fragment() {
+    // TODO: Rename and change types of parameters
+    private var param1: String? = null
+    private var param2: String? = null
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+        arguments?.let {
+            param1 = it.getString(ARG_PARAM1)
+            param2 = it.getString(ARG_PARAM2)
+        }
+    }
+
+    override fun onCreateView(
+        inflater: LayoutInflater, container: ViewGroup?,
+        savedInstanceState: Bundle?
+    ): View? {
+        // Inflate the layout for this fragment
+        return inflater.inflate(R.layout.fragment_network_error, container, false)
+    }
+
+    companion object {
+        /**
+         * Use this factory method to create a new instance of
+         * this fragment using the provided parameters.
+         *
+         * @param param1 Parameter 1.
+         * @param param2 Parameter 2.
+         * @return A new instance of fragment NetworkError.
+         */
+        // TODO: Rename and change types and number of parameters
+        @JvmStatic
+        fun newInstance(param1: String, param2: String) =
+            NetworkError().apply {
+                arguments = Bundle().apply {
+                    putString(ARG_PARAM1, param1)
+                    putString(ARG_PARAM2, param2)
+                }
+            }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_header_network.xml b/app/src/main/res/layout/fragment_header_network.xml
new file mode 100644
index 0000000..8658c4e
--- /dev/null
+++ b/app/src/main/res/layout/fragment_header_network.xml
@@ -0,0 +1,8 @@
+<?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"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/primary_color_4"
+    >
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/app/src/main/res/layout/fragment_network_error.xml b/app/src/main/res/layout/fragment_network_error.xml
new file mode 100644
index 0000000..130fe17
--- /dev/null
+++ b/app/src/main/res/layout/fragment_network_error.xml
@@ -0,0 +1,39 @@
+<?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"
+    tools:context=".NetworkError">
+
+    <!-- TODO: Update blank fragment layout -->
+    <ImageView
+        android:id="@+id/iv_network"
+        android:layout_width="91dp"
+        android:layout_height="129dp"
+        android:layout_centerInParent="true"
+        android:src="@drawable/iv_network_check" />
+
+    <TextView
+        android:id="@+id/text_network_check"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/iv_network"
+        android:layout_alignParentEnd="true"
+        android:layout_marginTop="13dp"
+        android:layout_marginEnd="164dp"
+        android:layout_marginBottom="451dp"
+        android:text="@string/network_check" />
+
+    <TextView
+        android:id="@+id/text_network_check_desc"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/iv_network"
+        android:layout_alignParentEnd="true"
+        android:layout_alignParentBottom="true"
+        android:layout_marginTop="47dp"
+        android:layout_marginEnd="82dp"
+        android:layout_marginBottom="235dp"
+        android:text="@string/network_check_desc" />
+
+</RelativeLayout>
\ No newline at end of file
-- 
GitLab