diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 116beb5..4184cb4 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -12,6 +12,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 6843870..08ee739 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,14 +3,20 @@
diff --git a/app/build.gradle b/app/build.gradle
index cbb104d..0f133b9 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -44,6 +44,7 @@ dependencies {
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.0'
+ implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
diff --git a/app/src/main/java/com/sockenklaus/batterytracker/MainActivity.kt b/app/src/main/java/com/sockenklaus/batterytracker/MainActivity.kt
index df8f0fb..8d8c84a 100644
--- a/app/src/main/java/com/sockenklaus/batterytracker/MainActivity.kt
+++ b/app/src/main/java/com/sockenklaus/batterytracker/MainActivity.kt
@@ -2,6 +2,7 @@ package com.sockenklaus.batterytracker
import android.os.Bundle
import android.view.Menu
+import android.view.MenuItem
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.navigation.NavigationView
import androidx.navigation.findNavController
@@ -11,12 +12,14 @@ import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController
import androidx.drawerlayout.widget.DrawerLayout
import androidx.appcompat.app.AppCompatActivity
+import androidx.navigation.NavController
import com.sockenklaus.batterytracker.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var appBarConfiguration: AppBarConfiguration
private lateinit var binding: ActivityMainBinding
+ private lateinit var navController: NavController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -26,18 +29,14 @@ class MainActivity : AppCompatActivity() {
setSupportActionBar(binding.appBarMain.toolbar)
- binding.appBarMain.fab.setOnClickListener { view ->
- Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
- .setAction("Action", null).show()
- }
val drawerLayout: DrawerLayout = binding.drawerLayout
val navView: NavigationView = binding.navView
- val navController = findNavController(R.id.nav_host_fragment_content_main)
+ navController = findNavController(R.id.nav_host_fragment_content_main)
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
appBarConfiguration = AppBarConfiguration(
setOf(
- R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow
+ R.id.nav_home, R.id.nav_add_charge, R.id.nav_add_battery, R.id.nav_settings
), drawerLayout
)
setupActionBarWithNavController(navController, appBarConfiguration)
diff --git a/app/src/main/java/com/sockenklaus/batterytracker/ui/AddBatteryFragment.kt b/app/src/main/java/com/sockenklaus/batterytracker/ui/AddBatteryFragment.kt
new file mode 100644
index 0000000..881c772
--- /dev/null
+++ b/app/src/main/java/com/sockenklaus/batterytracker/ui/AddBatteryFragment.kt
@@ -0,0 +1,60 @@
+package com.sockenklaus.batterytracker.ui
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.sockenklaus.batterytracker.R
+
+// 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 [AddBatteryFragment.newInstance] factory method to
+ * create an instance of this fragment.
+ */
+class AddBatteryFragment : 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_add_battery, 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 AddBatteryFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+ @JvmStatic
+ fun newInstance(param1: String, param2: String) =
+ AddBatteryFragment().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/sockenklaus/batterytracker/ui/add_charge/AddChargeFragment.kt b/app/src/main/java/com/sockenklaus/batterytracker/ui/add_charge/AddChargeFragment.kt
new file mode 100644
index 0000000..ad0cbc7
--- /dev/null
+++ b/app/src/main/java/com/sockenklaus/batterytracker/ui/add_charge/AddChargeFragment.kt
@@ -0,0 +1,32 @@
+package com.sockenklaus.batterytracker.ui.add_charge
+
+import androidx.lifecycle.ViewModelProvider
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.sockenklaus.batterytracker.R
+
+class AddChargeFragment : Fragment() {
+
+ companion object {
+ fun newInstance() = AddChargeFragment()
+ }
+
+ private lateinit var viewModel: AddChargeViewModel
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ return inflater.inflate(R.layout.fragment_add_charge, container, false)
+ }
+
+ override fun onActivityCreated(savedInstanceState: Bundle?) {
+ super.onActivityCreated(savedInstanceState)
+ viewModel = ViewModelProvider(this).get(AddChargeViewModel::class.java)
+ // TODO: Use the ViewModel
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sockenklaus/batterytracker/ui/add_charge/AddChargeViewModel.kt b/app/src/main/java/com/sockenklaus/batterytracker/ui/add_charge/AddChargeViewModel.kt
new file mode 100644
index 0000000..5eb5911
--- /dev/null
+++ b/app/src/main/java/com/sockenklaus/batterytracker/ui/add_charge/AddChargeViewModel.kt
@@ -0,0 +1,7 @@
+package com.sockenklaus.batterytracker.ui.add_charge
+
+import androidx.lifecycle.ViewModel
+
+class AddChargeViewModel : ViewModel() {
+ // TODO: Implement the ViewModel
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sockenklaus/batterytracker/ui/gallery/GalleryFragment.kt b/app/src/main/java/com/sockenklaus/batterytracker/ui/gallery/GalleryFragment.kt
deleted file mode 100644
index d597489..0000000
--- a/app/src/main/java/com/sockenklaus/batterytracker/ui/gallery/GalleryFragment.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.sockenklaus.batterytracker.ui.gallery
-
-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.sockenklaus.batterytracker.databinding.FragmentGalleryBinding
-
-class GalleryFragment : Fragment() {
-
- private var _binding: FragmentGalleryBinding? = 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 galleryViewModel =
- ViewModelProvider(this).get(GalleryViewModel::class.java)
-
- _binding = FragmentGalleryBinding.inflate(inflater, container, false)
- val root: View = binding.root
-
- val textView: TextView = binding.textGallery
- galleryViewModel.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/sockenklaus/batterytracker/ui/gallery/GalleryViewModel.kt b/app/src/main/java/com/sockenklaus/batterytracker/ui/gallery/GalleryViewModel.kt
deleted file mode 100644
index 447e712..0000000
--- a/app/src/main/java/com/sockenklaus/batterytracker/ui/gallery/GalleryViewModel.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.sockenklaus.batterytracker.ui.gallery
-
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.MutableLiveData
-import androidx.lifecycle.ViewModel
-
-class GalleryViewModel : ViewModel() {
-
- private val _text = MutableLiveData().apply {
- value = "This is gallery Fragment"
- }
- val text: LiveData = _text
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/sockenklaus/batterytracker/ui/settings/SettingsFragment.kt b/app/src/main/java/com/sockenklaus/batterytracker/ui/settings/SettingsFragment.kt
new file mode 100644
index 0000000..a37e42a
--- /dev/null
+++ b/app/src/main/java/com/sockenklaus/batterytracker/ui/settings/SettingsFragment.kt
@@ -0,0 +1,27 @@
+package com.sockenklaus.batterytracker.ui.settings
+
+import androidx.lifecycle.ViewModelProvider
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.sockenklaus.batterytracker.R
+
+class SettingsFragment : Fragment() {
+
+ companion object {
+ fun newInstance() = SettingsFragment()
+ }
+
+ private lateinit var viewModel: SettingsViewModel
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ viewModel = ViewModelProvider(this)[SettingsViewModel::class.java]
+
+ return inflater.inflate(R.layout.fragment_settings, container, false)
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sockenklaus/batterytracker/ui/settings/SettingsViewModel.kt b/app/src/main/java/com/sockenklaus/batterytracker/ui/settings/SettingsViewModel.kt
new file mode 100644
index 0000000..6e79cfa
--- /dev/null
+++ b/app/src/main/java/com/sockenklaus/batterytracker/ui/settings/SettingsViewModel.kt
@@ -0,0 +1,7 @@
+package com.sockenklaus.batterytracker.ui.settings
+
+import androidx.lifecycle.ViewModel
+
+class SettingsViewModel : ViewModel() {
+ // TODO: Implement the ViewModel
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/sockenklaus/batterytracker/ui/slideshow/SlideshowFragment.kt b/app/src/main/java/com/sockenklaus/batterytracker/ui/slideshow/SlideshowFragment.kt
deleted file mode 100644
index ca8f6b3..0000000
--- a/app/src/main/java/com/sockenklaus/batterytracker/ui/slideshow/SlideshowFragment.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.sockenklaus.batterytracker.ui.slideshow
-
-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.sockenklaus.batterytracker.databinding.FragmentSlideshowBinding
-
-class SlideshowFragment : Fragment() {
-
- private var _binding: FragmentSlideshowBinding? = 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 slideshowViewModel =
- ViewModelProvider(this).get(SlideshowViewModel::class.java)
-
- _binding = FragmentSlideshowBinding.inflate(inflater, container, false)
- val root: View = binding.root
-
- val textView: TextView = binding.textSlideshow
- slideshowViewModel.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/sockenklaus/batterytracker/ui/slideshow/SlideshowViewModel.kt b/app/src/main/java/com/sockenklaus/batterytracker/ui/slideshow/SlideshowViewModel.kt
deleted file mode 100644
index d512ee0..0000000
--- a/app/src/main/java/com/sockenklaus/batterytracker/ui/slideshow/SlideshowViewModel.kt
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.sockenklaus.batterytracker.ui.slideshow
-
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.MutableLiveData
-import androidx.lifecycle.ViewModel
-
-class SlideshowViewModel : ViewModel() {
-
- private val _text = MutableLiveData().apply {
- value = "This is slideshow Fragment"
- }
- val text: LiveData = _text
-}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_baseline_battery_5_bar_24.xml b/app/src/main/res/drawable/ic_baseline_battery_5_bar_24.xml
new file mode 100644
index 0000000..a6b1fd5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_battery_5_bar_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_battery_charging_full_24.xml b/app/src/main/res/drawable/ic_baseline_battery_charging_full_24.xml
new file mode 100644
index 0000000..77cdb8a
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_battery_charging_full_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_check_24.xml b/app/src/main/res/drawable/ic_baseline_check_24.xml
new file mode 100644
index 0000000..cf143d4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_check_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_baseline_home_24.xml b/app/src/main/res/drawable/ic_baseline_home_24.xml
new file mode 100644
index 0000000..5a870f5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_home_24.xml
@@ -0,0 +1,5 @@
+
+
+
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..298a5a1
--- /dev/null
+++ b/app/src/main/res/drawable/ic_baseline_settings_24.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_menu_camera.xml b/app/src/main/res/drawable/ic_menu_camera.xml
deleted file mode 100644
index 634fe92..0000000
--- a/app/src/main/res/drawable/ic_menu_camera.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
diff --git a/app/src/main/res/drawable/ic_menu_gallery.xml b/app/src/main/res/drawable/ic_menu_gallery.xml
deleted file mode 100644
index 03c7709..0000000
--- a/app/src/main/res/drawable/ic_menu_gallery.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/drawable/ic_menu_slideshow.xml b/app/src/main/res/drawable/ic_menu_slideshow.xml
deleted file mode 100644
index 5e9e163..0000000
--- a/app/src/main/res/drawable/ic_menu_slideshow.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 6c7dd7c..3615eaa 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -22,4 +22,5 @@
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer" />
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml
index 8c5302c..75bd898 100644
--- a/app/src/main/res/layout/app_bar_main.xml
+++ b/app/src/main/res/layout/app_bar_main.xml
@@ -20,15 +20,8 @@
-
-
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_add_battery.xml b/app/src/main/res/layout/fragment_add_battery.xml
new file mode 100644
index 0000000..f7e98c4
--- /dev/null
+++ b/app/src/main/res/layout/fragment_add_battery.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_add_charge.xml b/app/src/main/res/layout/fragment_add_charge.xml
new file mode 100644
index 0000000..c529e74
--- /dev/null
+++ b/app/src/main/res/layout/fragment_add_charge.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_gallery.xml b/app/src/main/res/layout/fragment_gallery.xml
deleted file mode 100644
index 643fe25..0000000
--- a/app/src/main/res/layout/fragment_gallery.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
\ 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..fda1d80
--- /dev/null
+++ b/app/src/main/res/layout/fragment_settings.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_slideshow.xml b/app/src/main/res/layout/fragment_slideshow.xml
deleted file mode 100644
index 2141a33..0000000
--- a/app/src/main/res/layout/fragment_slideshow.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml
index d7f2df2..d9275fd 100644
--- a/app/src/main/res/menu/activity_main_drawer.xml
+++ b/app/src/main/res/menu/activity_main_drawer.xml
@@ -6,15 +6,24 @@
+
+ android:id="@+id/nav_add_charge"
+ android:title="@string/menu_add_charge"
+ android:icon="@drawable/ic_baseline_battery_charging_full_24"
+ />
+
+ android:id="@+id/nav_add_battery"
+ android:title="@string/menu_add_battery"
+ android:icon="@drawable/ic_baseline_battery_5_bar_24"
+ />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/main.xml b/app/src/main/res/menu/main.xml
index 412d5f8..4b177d2 100644
--- a/app/src/main/res/menu/main.xml
+++ b/app/src/main/res/menu/main.xml
@@ -1,9 +1,9 @@
\ 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 229ac89..54450ee 100644
--- a/app/src/main/res/navigation/mobile_navigation.xml
+++ b/app/src/main/res/navigation/mobile_navigation.xml
@@ -12,14 +12,20 @@
tools:layout="@layout/fragment_home" />
+ android:id="@+id/nav_add_charge"
+ android:name="com.sockenklaus.batterytracker.ui.add_charge.AddChargeFragment"
+ android:label="@string/menu_add_charge"
+ tools:layout="@layout/fragment_add_charge" />
+ android:id="@+id/nav_add_battery"
+ android:name="com.sockenklaus.batterytracker.ui.AddBatteryFragment"
+ android:label="@string/menu_add_battery"
+ tools:layout="@layout/fragment_add_battery" />
+
+
\ 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 559c95b..29722cc 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -10,4 +10,12 @@
Home
Gallery
Slideshow
+
+ Hello blank fragment
+ Settings
+ Save Settings
+ Add Charge
+ Add Battery
+ Battery ID
+ Save Charge
\ No newline at end of file