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