From 6d1ab773dc1b3f8d1afe978a18d48a530882dd4f Mon Sep 17 00:00:00 2001 From: denizk0461 Date: Sun, 4 Jun 2023 16:59:04 +0200 Subject: [PATCH] Added navigation graph and corresponding user preference for additional app layout option --- .idea/deploymentTargetDropDown.xml | 12 +++--- .../weserplaner/activity/MainActivity.kt | 2 +- .../weserplaner/db/AppRepository.kt | 10 +++++ .../fragment/CompactOverviewFragment.kt | 8 ++++ .../weserplaner/fragment/SettingsFragment.kt | 5 +++ .../weserplaner/values/SettingsPreferences.kt | 5 +++ app/src/main/res/drawable/pill.xml | 3 +- .../res/layout/fragment_compact_overview.xml | 6 +++ app/src/main/res/layout/fragment_settings.xml | 27 ++++++++++++ .../main/res/navigation/nav_graph_compact.xml | 41 +++++++++++++++++++ ...n_nav_graph.xml => nav_graph_detailed.xml} | 3 +- app/src/main/res/values-de/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 13 files changed, 117 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/com/denizk0461/weserplaner/fragment/CompactOverviewFragment.kt create mode 100644 app/src/main/res/layout/fragment_compact_overview.xml create mode 100644 app/src/main/res/navigation/nav_graph_compact.xml rename app/src/main/res/navigation/{main_nav_graph.xml => nav_graph_detailed.xml} (97%) diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 80ddcc0..c5f7429 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -1,17 +1,17 @@ - + - + - - + + - - + + \ No newline at end of file diff --git a/app/src/main/java/com/denizk0461/weserplaner/activity/MainActivity.kt b/app/src/main/java/com/denizk0461/weserplaner/activity/MainActivity.kt index 24b1fef..7511812 100644 --- a/app/src/main/java/com/denizk0461/weserplaner/activity/MainActivity.kt +++ b/app/src/main/java/com/denizk0461/weserplaner/activity/MainActivity.kt @@ -77,7 +77,7 @@ class MainActivity : FragmentActivity() { // Inflate new nav graph val navGraph = navHostFragment - .navController.navInflater.inflate(R.navigation.main_nav_graph) + .navController.navInflater.inflate(R.navigation.nav_graph_detailed) // Set the starting fragment for the app navGraph.setStartDestination(when (viewModel.preferenceLaunchFragment) { diff --git a/app/src/main/java/com/denizk0461/weserplaner/db/AppRepository.kt b/app/src/main/java/com/denizk0461/weserplaner/db/AppRepository.kt index ca7eb1f..0aee72e 100644 --- a/app/src/main/java/com/denizk0461/weserplaner/db/AppRepository.kt +++ b/app/src/main/java/com/denizk0461/weserplaner/db/AppRepository.kt @@ -393,6 +393,16 @@ class AppRepository(app: Application) { setPreference(SettingsPreferences.PRICING, newValue) } + /** + * This value determines which navigation graph will be used for app navigation. + */ + fun getAppLayout(): Int = getIntPreference( + SettingsPreferences.APP_LAYOUT, + ) + fun setAppLayout(newValue: Int) { + setPreference(SettingsPreferences.APP_LAYOUT, newValue) + } + /** * This value determines whether the user opts into submitting crash reports. */ diff --git a/app/src/main/java/com/denizk0461/weserplaner/fragment/CompactOverviewFragment.kt b/app/src/main/java/com/denizk0461/weserplaner/fragment/CompactOverviewFragment.kt new file mode 100644 index 0000000..fad453f --- /dev/null +++ b/app/src/main/java/com/denizk0461/weserplaner/fragment/CompactOverviewFragment.kt @@ -0,0 +1,8 @@ +package com.denizk0461.weserplaner.fragment + +import com.denizk0461.weserplaner.databinding.FragmentCompactOverviewBinding + +class CompactOverviewFragment : AppFragment() { + + +} \ No newline at end of file diff --git a/app/src/main/java/com/denizk0461/weserplaner/fragment/SettingsFragment.kt b/app/src/main/java/com/denizk0461/weserplaner/fragment/SettingsFragment.kt index 1cc39a4..5568b8c 100644 --- a/app/src/main/java/com/denizk0461/weserplaner/fragment/SettingsFragment.kt +++ b/app/src/main/java/com/denizk0461/weserplaner/fragment/SettingsFragment.kt @@ -4,6 +4,7 @@ import android.annotation.SuppressLint import android.content.Context import android.content.Intent import android.net.Uri +import android.os.Build import android.os.Bundle import android.util.Base64 import android.view.LayoutInflater @@ -332,6 +333,10 @@ class SettingsFragment : AppFragment() { ) } + // Set text for Android version and API level + @SuppressLint("SetTextI18n") + binding.textAndroidVersion.text = "Android ${Build.VERSION.RELEASE} | API ${Build.VERSION.SDK_INT}" + // Set build version code and time text @SuppressLint("SetTextI18n") binding.buildTimeText.text = "v${BuildConfig.VERSION_CODE} | ${ diff --git a/app/src/main/java/com/denizk0461/weserplaner/values/SettingsPreferences.kt b/app/src/main/java/com/denizk0461/weserplaner/values/SettingsPreferences.kt index 436216e..7c90cf9 100644 --- a/app/src/main/java/com/denizk0461/weserplaner/values/SettingsPreferences.kt +++ b/app/src/main/java/com/denizk0461/weserplaner/values/SettingsPreferences.kt @@ -73,5 +73,10 @@ enum class SettingsPreferences(val key: String) { * Whether beta screens should be shown. */ BETA_SCREENS_ENABLED("beta_screens"), + + /** + * The user's app layout preference. + */ + APP_LAYOUT("app_layout"), ; } \ No newline at end of file diff --git a/app/src/main/res/drawable/pill.xml b/app/src/main/res/drawable/pill.xml index ceb6e84..b3570f7 100644 --- a/app/src/main/res/drawable/pill.xml +++ b/app/src/main/res/drawable/pill.xml @@ -1,5 +1,6 @@ - diff --git a/app/src/main/res/layout/fragment_compact_overview.xml b/app/src/main/res/layout/fragment_compact_overview.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/fragment_compact_overview.xml @@ -0,0 +1,6 @@ + + + + \ 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 index 04cbf91..733ac40 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -660,6 +660,33 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/navigation/main_nav_graph.xml b/app/src/main/res/navigation/nav_graph_detailed.xml similarity index 97% rename from app/src/main/res/navigation/main_nav_graph.xml rename to app/src/main/res/navigation/nav_graph_detailed.xml index 7a4d726..0e5f742 100644 --- a/app/src/main/res/navigation/main_nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph_detailed.xml @@ -2,7 +2,7 @@ + \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c86acce..f81ebb4 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -286,6 +286,8 @@ Verstecke experimentelle Einstellungen Rufe sie wieder über den Lizenzen-Knopf auf + Android-Version & API-Level + Gradle Build-Code & Zeit Zeige in-Entwicklung-Bildschirme diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2501851..5ecad6b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -297,6 +297,8 @@ Hide experimental settings Show them again via licences button + Android version & API level + Gradle build code & time Show in-development screens