diff --git a/app/src/main/java/com/example/tubespbd/MainActivity.kt b/app/src/main/java/com/example/tubespbd/MainActivity.kt index d3f409f6217fd98cd28737f4b542f4f1bfc83a6c..23d2a1c423608c40beae7ad2b6347d105a03f706 100644 --- a/app/src/main/java/com/example/tubespbd/MainActivity.kt +++ b/app/src/main/java/com/example/tubespbd/MainActivity.kt @@ -2,16 +2,40 @@ package com.example.tubespbd import android.os.Bundle import androidx.appcompat.app.AppCompatActivity +import androidx.navigation.findNavController +import androidx.navigation.ui.AppBarConfiguration +import androidx.navigation.ui.setupActionBarWithNavController +import androidx.navigation.ui.setupWithNavController import com.example.tubespbd.database.MyDBHelper +import com.example.tubespbd.databinding.ActivityMainBinding +import com.google.android.material.bottomnavigation.BottomNavigationView class MainActivity : AppCompatActivity() { private lateinit var dbHelper: MyDBHelper + private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) + // Routing + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + + val navView: BottomNavigationView = binding.navView + + val navController = findNavController(R.id.nav_host_fragment_activity_main) + // 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_scan, R.id.navigation_dashboard, R.id.navigation_notifications + ) + ) + setupActionBarWithNavController(navController, appBarConfiguration) + navView.setupWithNavController(navController) + + // Database dbHelper = MyDBHelper(this) // TEST DB Sementara diff --git a/app/src/main/java/com/example/tubespbd/ui/scan/ScanFragment.kt b/app/src/main/java/com/example/tubespbd/ui/scan/ScanFragment.kt new file mode 100644 index 0000000000000000000000000000000000000000..09f1f16117954647e1c648373e4ab83642956b6d --- /dev/null +++ b/app/src/main/java/com/example/tubespbd/ui/scan/ScanFragment.kt @@ -0,0 +1,36 @@ +package com.example.tubespbd.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.example.tubespbd.databinding.FragmentScanBinding + +class ScanFragment : Fragment() { + private var _binding: FragmentScanBinding? = null + + private val binding get() = _binding!! + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View { + val scanViewModel = + ViewModelProvider(this).get(ScanViewModel::class.java) + _binding = FragmentScanBinding.inflate(inflater, container, false) + val root: View = binding.root + val textView: TextView = binding.textScan + scanViewModel.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/example/tubespbd/ui/scan/ScanViewModel.kt b/app/src/main/java/com/example/tubespbd/ui/scan/ScanViewModel.kt new file mode 100644 index 0000000000000000000000000000000000000000..6c61fd896fc754769bf422c009b8bd86f0ab7c46 --- /dev/null +++ b/app/src/main/java/com/example/tubespbd/ui/scan/ScanViewModel.kt @@ -0,0 +1,11 @@ +package com.example.tubespbd.ui.scan +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel + +class ScanViewModel : ViewModel(){ + private val _text = MutableLiveData<String>().apply { + value = "This is scan fragment" + } + val text: LiveData<String> = _text +} \ 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 0000000000000000000000000000000000000000..948a2d96b9c2d31f5df9066c1a2868a2e8d378fa --- /dev/null +++ b/app/src/main/res/layout/fragment_scan.xml @@ -0,0 +1,23 @@ +<?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"> + + <TextView + android:id="@+id/text_scan" + 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/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml index fb6d040b9a026ddaa05df0e530ab6f95e6c1f999..f6d827483bea6a497b00e9d87f487d5bf1b741fc 100644 --- a/app/src/main/res/menu/bottom_nav_menu.xml +++ b/app/src/main/res/menu/bottom_nav_menu.xml @@ -11,6 +11,11 @@ android:icon="@drawable/ic_dashboard_black_24dp" android:title="@string/title_dashboard" /> + <item + android:id="@+id/navigation_scan" + android:icon="@drawable/ic_notifications_black_24dp" + android:title="@string/title_scan" /> + <item android:id="@+id/navigation_notifications" android:icon="@drawable/ic_notifications_black_24dp" diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 2a82cc522eee25bd028901c7b509f34e14bb69b6..23bccfa13e0486dbad49f8c58d55ae6b8688e6a8 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -3,7 +3,7 @@ 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_dashboard"> <fragment android:id="@+id/navigation_home" @@ -17,6 +17,12 @@ android:label="@string/title_dashboard" tools:layout="@layout/fragment_dashboard" /> + <fragment + android:id="@+id/navigation_scan" + android:name="com.example.tubespbd.ui.scan.ScanFragment" + android:label="@string/title_scan" + tools:layout="@layout/fragment_scan"/> + <fragment android:id="@+id/navigation_notifications" android:name="com.example.tubespbd.ui.notifications.NotificationsFragment" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f6ff71a5e58e1802f8cff9092e52d2a707f9b0db..b746033c096b4aae425eca7b872afa39b355844e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -11,4 +11,5 @@ <string name="email_text">Email</string> <string name="password_text">Password</string> <string name="masuk_text">Masuk</string> + <string name="title_scan">Scan</string> </resources> \ No newline at end of file