From a341d7a92046210518ffcfe2a76b967f39583c49 Mon Sep 17 00:00:00 2001 From: Clara Dautermann Date: Tue, 13 May 2025 21:31:17 +0200 Subject: [PATCH] Migrate to compose (#1) The whole App has essentially been rebuilt to use compose Reviewed-on: https://new.git.cdaut.de/clara/dbt-app/pulls/1 Co-authored-by: Clara Dautermann Co-committed-by: Clara Dautermann --- DBTApp/.gitignore | 173 ------------------ DBTApp/.idea/.gitignore | 3 - DBTApp/.idea/.name | 1 - DBTApp/.idea/codeStyles/Project.xml | 123 ------------- DBTApp/.idea/codeStyles/codeStyleConfig.xml | 5 - DBTApp/.idea/deploymentTargetSelector.xml | 13 +- .../inspectionProfiles/Project_Default.xml | 61 ++++++ DBTApp/.idea/material_theme_project_new.xml | 12 ++ DBTApp/.idea/misc.xml | 1 - DBTApp/app/build.gradle.kts | 19 +- .../ExampleInstrumentedTest.kt | 4 +- DBTApp/app/src/main/AndroidManifest.xml | 9 +- .../dbt/activities/FavouritesFragment.kt | 60 ------ .../de/cdaut/dbt/activities/HomeActivity.kt | 65 ------- .../de/cdaut/dbt/activities/HomeFragment.kt | 34 ---- .../cdaut/dbt/activities/SkillListFragment.kt | 60 ------ .../dbt/activities/SkillsChainsFragment.kt | 60 ------ .../cdaut/dbt/activities/TrackingFragment.kt | 60 ------ .../main/java/de/cdaut/dbtapp/MainActivity.kt | 94 ++++++++++ .../dbtapp/components/BottomNavigationBar.kt | 62 +++++++ .../de/cdaut/dbtapp/components/SkillsList.kt | 133 ++++++++++++++ .../java/de/cdaut/dbtapp/components/Texts.kt | 44 +++++ .../main/java/de/cdaut/dbtapp/model/Skill.kt | 24 +++ .../de/cdaut/dbtapp/model/SkillCategory.kt | 14 ++ .../dbtapp/navigation/BottomNavigationItem.kt | 55 ++++++ .../de/cdaut/dbtapp/navigation/Screens.kt | 9 + .../res/drawable/baseline_menu_book_24.xml | 11 -- .../src/main/res/drawable/emergency_24px.xml | 10 - .../app/src/main/res/drawable/home_24px.xml | 10 - .../drawable/outline_calendar_month_24.xml | 5 - .../app/src/main/res/drawable/sort_24px.xml | 11 -- .../app/src/main/res/drawable/star_24px.xml | 10 - .../app/src/main/res/layout/activity_home.xml | 12 -- .../app/src/main/res/layout/content_home.xml | 47 ----- .../main/res/layout/fragment_favourites.xml | 20 -- .../app/src/main/res/layout/fragment_home.xml | 20 -- .../main/res/layout/fragment_skill_list.xml | 20 -- .../res/layout/fragment_skills_chains.xml | 20 -- .../src/main/res/layout/fragment_tracking.xml | 20 -- .../app/src/main/res/menu/bottom_navbar.xml | 24 --- .../app/src/main/res/navigation/nav_graph.xml | 13 -- .../src/main/res/values-de-rDE/strings.xml | 12 -- DBTApp/app/src/main/res/values-de/strings.xml | 11 ++ .../app/src/main/res/values-land/dimens.xml | 3 - .../app/src/main/res/values-night/themes.xml | 7 +- DBTApp/app/src/main/res/values-v23/themes.xml | 8 - .../src/main/res/values-w1240dp/dimens.xml | 3 - .../app/src/main/res/values-w600dp/dimens.xml | 3 - DBTApp/app/src/main/res/values/dimens.xml | 3 - DBTApp/app/src/main/res/values/strings.xml | 19 +- DBTApp/app/src/main/res/values/themes.xml | 7 +- .../cdaut/{dbt => dbtapp}/ExampleUnitTest.kt | 2 +- DBTApp/gradle/libs.versions.toml | 29 +-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- DBTApp/settings.gradle.kts | 3 +- 55 files changed, 565 insertions(+), 998 deletions(-) delete mode 100644 DBTApp/.idea/.gitignore delete mode 100644 DBTApp/.idea/.name delete mode 100644 DBTApp/.idea/codeStyles/Project.xml delete mode 100644 DBTApp/.idea/codeStyles/codeStyleConfig.xml create mode 100644 DBTApp/.idea/inspectionProfiles/Project_Default.xml create mode 100644 DBTApp/.idea/material_theme_project_new.xml rename DBTApp/app/src/androidTest/java/de/cdaut/{dbt => dbtapp}/ExampleInstrumentedTest.kt (86%) delete mode 100644 DBTApp/app/src/main/java/de/cdaut/dbt/activities/FavouritesFragment.kt delete mode 100644 DBTApp/app/src/main/java/de/cdaut/dbt/activities/HomeActivity.kt delete mode 100644 DBTApp/app/src/main/java/de/cdaut/dbt/activities/HomeFragment.kt delete mode 100644 DBTApp/app/src/main/java/de/cdaut/dbt/activities/SkillListFragment.kt delete mode 100644 DBTApp/app/src/main/java/de/cdaut/dbt/activities/SkillsChainsFragment.kt delete mode 100644 DBTApp/app/src/main/java/de/cdaut/dbt/activities/TrackingFragment.kt create mode 100644 DBTApp/app/src/main/java/de/cdaut/dbtapp/MainActivity.kt create mode 100644 DBTApp/app/src/main/java/de/cdaut/dbtapp/components/BottomNavigationBar.kt create mode 100644 DBTApp/app/src/main/java/de/cdaut/dbtapp/components/SkillsList.kt create mode 100644 DBTApp/app/src/main/java/de/cdaut/dbtapp/components/Texts.kt create mode 100644 DBTApp/app/src/main/java/de/cdaut/dbtapp/model/Skill.kt create mode 100644 DBTApp/app/src/main/java/de/cdaut/dbtapp/model/SkillCategory.kt create mode 100644 DBTApp/app/src/main/java/de/cdaut/dbtapp/navigation/BottomNavigationItem.kt create mode 100644 DBTApp/app/src/main/java/de/cdaut/dbtapp/navigation/Screens.kt delete mode 100644 DBTApp/app/src/main/res/drawable/baseline_menu_book_24.xml delete mode 100644 DBTApp/app/src/main/res/drawable/emergency_24px.xml delete mode 100644 DBTApp/app/src/main/res/drawable/home_24px.xml delete mode 100644 DBTApp/app/src/main/res/drawable/outline_calendar_month_24.xml delete mode 100644 DBTApp/app/src/main/res/drawable/sort_24px.xml delete mode 100644 DBTApp/app/src/main/res/drawable/star_24px.xml delete mode 100644 DBTApp/app/src/main/res/layout/activity_home.xml delete mode 100644 DBTApp/app/src/main/res/layout/content_home.xml delete mode 100644 DBTApp/app/src/main/res/layout/fragment_favourites.xml delete mode 100644 DBTApp/app/src/main/res/layout/fragment_home.xml delete mode 100644 DBTApp/app/src/main/res/layout/fragment_skill_list.xml delete mode 100644 DBTApp/app/src/main/res/layout/fragment_skills_chains.xml delete mode 100644 DBTApp/app/src/main/res/layout/fragment_tracking.xml delete mode 100644 DBTApp/app/src/main/res/menu/bottom_navbar.xml delete mode 100644 DBTApp/app/src/main/res/navigation/nav_graph.xml delete mode 100644 DBTApp/app/src/main/res/values-de-rDE/strings.xml create mode 100644 DBTApp/app/src/main/res/values-de/strings.xml delete mode 100644 DBTApp/app/src/main/res/values-land/dimens.xml delete mode 100644 DBTApp/app/src/main/res/values-v23/themes.xml delete mode 100644 DBTApp/app/src/main/res/values-w1240dp/dimens.xml delete mode 100644 DBTApp/app/src/main/res/values-w600dp/dimens.xml delete mode 100644 DBTApp/app/src/main/res/values/dimens.xml rename DBTApp/app/src/test/java/de/cdaut/{dbt => dbtapp}/ExampleUnitTest.kt (92%) diff --git a/DBTApp/.gitignore b/DBTApp/.gitignore index cecb4de..aa724b7 100644 --- a/DBTApp/.gitignore +++ b/DBTApp/.gitignore @@ -1,5 +1,3 @@ -# Android studio - *.iml .gradle /local.properties @@ -15,174 +13,3 @@ .externalNativeBuild .cxx local.properties - -# Android - -# Created by https://www.toptal.com/developers/gitignore/api/android,androidstudio -# Edit at https://www.toptal.com/developers/gitignore?templates=android,androidstudio - -### Android ### -# Gradle files -.gradle/ -build/ - -# Local configuration file (sdk path, etc) -local.properties - -# Log/OS Files -*.log - -# Android Studio generated files and folders -captures/ -.externalNativeBuild/ -.cxx/ -*.apk -output.json - -# IntelliJ -*.iml -.idea/ -misc.xml -deploymentTargetDropDown.xml -render.experimental.xml - -# Keystore files -*.jks -*.keystore - -# Google Services (e.g. APIs or Firebase) -google-services.json - -# Android Profiling -*.hprof - -### Android Patch ### -gen-external-apklibs - -# Replacement of .externalNativeBuild directories introduced -# with Android Studio 3.5. - -### AndroidStudio ### -# Covers files to be ignored for android development using Android Studio. - -# Built application files -*.ap_ -*.aab - -# Files for the ART/Dalvik VM -*.dex - -# Java class files -*.class - -# Generated files -bin/ -gen/ -out/ - -# Gradle files -.gradle - -# Signing files -.signing/ - -# Local configuration file (sdk path, etc) - -# Proguard folder generated by Eclipse -proguard/ - -# Log Files - -# Android Studio -/*/build/ -/*/local.properties -/*/out -/*/*/build -/*/*/production -.navigation/ -*.ipr -*~ -*.swp - -# Keystore files - -# Google Services (e.g. APIs or Firebase) -# google-services.json - -# Android Patch - -# External native build folder generated in Android Studio 2.2 and later -.externalNativeBuild - -# NDK -obj/ - -# IntelliJ IDEA -*.iws -/out/ - -# User-specific configurations -.idea/caches/ -.idea/libraries/ -.idea/shelf/ -.idea/workspace.xml -.idea/tasks.xml -.idea/.name -.idea/compiler.xml -.idea/copyright/profiles_settings.xml -.idea/encodings.xml -.idea/misc.xml -.idea/modules.xml -.idea/scopes/scope_settings.xml -.idea/dictionaries -.idea/vcs.xml -.idea/jsLibraryMappings.xml -.idea/datasources.xml -.idea/dataSources.ids -.idea/sqlDataSources.xml -.idea/dynamic.xml -.idea/uiDesigner.xml -.idea/assetWizardSettings.xml -.idea/gradle.xml -.idea/jarRepositories.xml -.idea/navEditor.xml - -# Legacy Eclipse project files -.classpath -.project -.cproject -.settings/ - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.war -*.ear - -# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml) -hs_err_pid* - -## Plugin-specific files: - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Mongo Explorer plugin -.idea/mongoSettings.xml - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -### AndroidStudio Patch ### - -!/gradle/wrapper/gradle-wrapper.jar - -# End of https://www.toptal.com/developers/gitignore/api/android,androidstudio - diff --git a/DBTApp/.idea/.gitignore b/DBTApp/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/DBTApp/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/DBTApp/.idea/.name b/DBTApp/.idea/.name deleted file mode 100644 index 8cb8797..0000000 --- a/DBTApp/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -DBT App \ No newline at end of file diff --git a/DBTApp/.idea/codeStyles/Project.xml b/DBTApp/.idea/codeStyles/Project.xml deleted file mode 100644 index 7643783..0000000 --- a/DBTApp/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/DBTApp/.idea/codeStyles/codeStyleConfig.xml b/DBTApp/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 79ee123..0000000 --- a/DBTApp/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/DBTApp/.idea/deploymentTargetSelector.xml b/DBTApp/.idea/deploymentTargetSelector.xml index 02663a9..2a7a811 100644 --- a/DBTApp/.idea/deploymentTargetSelector.xml +++ b/DBTApp/.idea/deploymentTargetSelector.xml @@ -5,10 +5,19 @@ - + - + + + + + + + diff --git a/DBTApp/.idea/inspectionProfiles/Project_Default.xml b/DBTApp/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..7061a0d --- /dev/null +++ b/DBTApp/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,61 @@ + + + + \ No newline at end of file diff --git a/DBTApp/.idea/material_theme_project_new.xml b/DBTApp/.idea/material_theme_project_new.xml new file mode 100644 index 0000000..d468895 --- /dev/null +++ b/DBTApp/.idea/material_theme_project_new.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/DBTApp/.idea/misc.xml b/DBTApp/.idea/misc.xml index 74dd639..b2c751a 100644 --- a/DBTApp/.idea/misc.xml +++ b/DBTApp/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/DBTApp/app/build.gradle.kts b/DBTApp/app/build.gradle.kts index c0f101f..a6ebec1 100644 --- a/DBTApp/app/build.gradle.kts +++ b/DBTApp/app/build.gradle.kts @@ -5,11 +5,11 @@ plugins { } android { - namespace = "de.cdaut.dbt" + namespace = "de.cdaut.dbtapp" compileSdk = 35 defaultConfig { - applicationId = "de.cdaut.dbt" + applicationId = "de.cdaut.dbtapp" minSdk = 26 targetSdk = 35 versionCode = 1 @@ -35,7 +35,6 @@ android { jvmTarget = "11" } buildFeatures { - viewBinding = true compose = true } } @@ -47,7 +46,7 @@ dependencies { androidTestImplementation(composeBom) // Material Design 3 - implementation(libs.material3) + implementation(libs.androidx.material3) // Android Studio Preview support implementation(libs.androidx.ui.tooling.preview) @@ -63,19 +62,17 @@ dependencies { implementation(libs.androidx.material.icons.core) // Optional - Add full set of material icons implementation(libs.androidx.material.icons.extended) - + // Optional - Add window size utils + implementation(libs.androidx.adaptive) // Optional - Integration with activities implementation(libs.androidx.activity.compose) + //Compose navigation + implementation(libs.androidx.navigation.compose) + implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) - implementation(libs.androidx.constraintlayout) - implementation(libs.androidx.navigation.fragment.ktx) - implementation(libs.androidx.navigation.ui.ktx) - implementation(libs.androidx.runtime.android) - implementation(libs.androidx.ui.tooling.preview.android) - implementation(libs.androidx.material3.android) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) diff --git a/DBTApp/app/src/androidTest/java/de/cdaut/dbt/ExampleInstrumentedTest.kt b/DBTApp/app/src/androidTest/java/de/cdaut/dbtapp/ExampleInstrumentedTest.kt similarity index 86% rename from DBTApp/app/src/androidTest/java/de/cdaut/dbt/ExampleInstrumentedTest.kt rename to DBTApp/app/src/androidTest/java/de/cdaut/dbtapp/ExampleInstrumentedTest.kt index 5242c37..2d65959 100644 --- a/DBTApp/app/src/androidTest/java/de/cdaut/dbt/ExampleInstrumentedTest.kt +++ b/DBTApp/app/src/androidTest/java/de/cdaut/dbtapp/ExampleInstrumentedTest.kt @@ -1,4 +1,4 @@ -package de.cdaut.dbt +package de.cdaut.dbtapp import androidx.test.platform.app.InstrumentationRegistry import androidx.test.ext.junit.runners.AndroidJUnit4 @@ -19,6 +19,6 @@ class ExampleInstrumentedTest { fun useAppContext() { // Context of the app under test. val appContext = InstrumentationRegistry.getInstrumentation().targetContext - assertEquals("de.cdaut.dbt", appContext.packageName) + assertEquals("de.cdaut.dbtapp", appContext.packageName) } } \ No newline at end of file diff --git a/DBTApp/app/src/main/AndroidManifest.xml b/DBTApp/app/src/main/AndroidManifest.xml index 9e9a126..77d63e8 100644 --- a/DBTApp/app/src/main/AndroidManifest.xml +++ b/DBTApp/app/src/main/AndroidManifest.xml @@ -12,17 +12,14 @@ android:supportsRtl="true" android:theme="@style/Theme.DBTApp" tools:targetApi="31"> - - + - + + \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/FavouritesFragment.kt b/DBTApp/app/src/main/java/de/cdaut/dbt/activities/FavouritesFragment.kt deleted file mode 100644 index 8d86b3a..0000000 --- a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/FavouritesFragment.kt +++ /dev/null @@ -1,60 +0,0 @@ -package de.cdaut.dbt.activities - -import android.os.Bundle -import androidx.fragment.app.Fragment -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import de.cdaut.dbt.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 [FavouritesFragment.newInstance] factory method to - * create an instance of this fragment. - */ -class FavouritesFragment : 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_favourites, 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 FavouritesFragment. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - FavouritesFragment().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) - } - } - } -} \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/HomeActivity.kt b/DBTApp/app/src/main/java/de/cdaut/dbt/activities/HomeActivity.kt deleted file mode 100644 index 12a8eba..0000000 --- a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/HomeActivity.kt +++ /dev/null @@ -1,65 +0,0 @@ -package de.cdaut.dbt.activities - -import android.os.Bundle -import android.view.MenuItem -import androidx.appcompat.app.AppCompatActivity -import com.google.android.material.bottomnavigation.BottomNavigationView -import com.google.android.material.navigation.NavigationBarView -import de.cdaut.dbt.R -import de.cdaut.dbt.databinding.ActivityHomeBinding - - -class HomeActivity : AppCompatActivity() { - - private lateinit var binding: ActivityHomeBinding - - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - binding = ActivityHomeBinding.inflate(layoutInflater) - setContentView(binding.root) - - val bottomNav = findViewById(R.id.bottom_navigation) - bottomNav.setSelectedItemId(R.id.home) - - bottomNav.setOnItemSelectedListener { selectedItem -> - when (selectedItem.itemId){ - R.id.home -> { - supportFragmentManager.beginTransaction() - .replace(R.id.fragment_container, HomeFragment()).commit() - true - } - R.id.favs -> { - supportFragmentManager.beginTransaction() - .replace(R.id.fragment_container, FavouritesFragment()).commit() - true - } - R.id.skilllist -> { - supportFragmentManager.beginTransaction() - .replace(R.id.fragment_container, SkillListFragment()).commit() - true - } - R.id.skills_chains -> { - supportFragmentManager.beginTransaction() - .replace(R.id.fragment_container, SkillsChainsFragment()).commit() - true - } - R.id.tracking -> { - supportFragmentManager.beginTransaction() - .replace(R.id.fragment_container, TrackingFragment()).commit() - true - } - else -> false - } - } - - supportFragmentManager.beginTransaction() - .replace(R.id.fragment_container, HomeFragment()).commit() - - } - - -} - - diff --git a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/HomeFragment.kt b/DBTApp/app/src/main/java/de/cdaut/dbt/activities/HomeFragment.kt deleted file mode 100644 index d32dc43..0000000 --- a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/HomeFragment.kt +++ /dev/null @@ -1,34 +0,0 @@ -package de.cdaut.dbt.activities - -import android.os.Bundle -import androidx.fragment.app.Fragment -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import de.cdaut.dbt.databinding.FragmentHomeBinding - -/** - * A simple [Fragment] subclass as the default destination in the navigation. - */ -class HomeFragment : Fragment() { - -private var _binding: FragmentHomeBinding? = 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 { - - _binding = FragmentHomeBinding.inflate(inflater, container, false) - return binding.root - - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } -} \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/SkillListFragment.kt b/DBTApp/app/src/main/java/de/cdaut/dbt/activities/SkillListFragment.kt deleted file mode 100644 index c06649b..0000000 --- a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/SkillListFragment.kt +++ /dev/null @@ -1,60 +0,0 @@ -package de.cdaut.dbt.activities - -import android.os.Bundle -import androidx.fragment.app.Fragment -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import de.cdaut.dbt.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 [SkillListFragment.newInstance] factory method to - * create an instance of this fragment. - */ -class SkillListFragment : 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_skill_list, 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 SkillListFragment. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - SkillListFragment().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) - } - } - } -} \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/SkillsChainsFragment.kt b/DBTApp/app/src/main/java/de/cdaut/dbt/activities/SkillsChainsFragment.kt deleted file mode 100644 index 27f32af..0000000 --- a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/SkillsChainsFragment.kt +++ /dev/null @@ -1,60 +0,0 @@ -package de.cdaut.dbt.activities - -import android.os.Bundle -import androidx.fragment.app.Fragment -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import de.cdaut.dbt.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 [SkillsChainsFragment.newInstance] factory method to - * create an instance of this fragment. - */ -class SkillsChainsFragment : 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_skills_chains, 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 SkillsChainsFragment. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - SkillsChainsFragment().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) - } - } - } -} \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/TrackingFragment.kt b/DBTApp/app/src/main/java/de/cdaut/dbt/activities/TrackingFragment.kt deleted file mode 100644 index 2dd113b..0000000 --- a/DBTApp/app/src/main/java/de/cdaut/dbt/activities/TrackingFragment.kt +++ /dev/null @@ -1,60 +0,0 @@ -package de.cdaut.dbt.activities - -import android.os.Bundle -import androidx.fragment.app.Fragment -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import de.cdaut.dbt.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 [TrackingFragment.newInstance] factory method to - * create an instance of this fragment. - */ -class TrackingFragment : 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_tracking, 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 TrackingFragment. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - TrackingFragment().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) - } - } - } -} \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/MainActivity.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/MainActivity.kt new file mode 100644 index 0000000..8e03061 --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/MainActivity.kt @@ -0,0 +1,94 @@ +package de.cdaut.dbtapp + +import android.graphics.drawable.shapes.Shape +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Emergency +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonColors +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.Icon +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Shapes +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +import com.google.android.material.floatingactionbutton.FloatingActionButton +import de.cdaut.dbtapp.components.BottomNavigationBar +import de.cdaut.dbtapp.components.SkillsScreen +import de.cdaut.dbtapp.navigation.Screens + +class MainActivity : ComponentActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent { + MainContent() + } + } +} + +@Preview(locale = "en-US") +@Composable +private fun MainContent() { + val navController = rememberNavController() + Box { + Scaffold( + modifier = Modifier.fillMaxSize(), + bottomBar = { BottomNavigationBar(navController) }, + floatingActionButton = { EmergencyButton() } + ) { paddingValues -> + NavHost( + navController = navController, + startDestination = Screens.Home.route, + modifier = Modifier.padding(paddingValues = paddingValues) + ) { + composable(Screens.Tracking.route) { + Text("Tracking") + } + composable(Screens.Skillslist.route) { + SkillsScreen() + } + composable(Screens.Home.route) { + Text("Home") + } + composable(Screens.Favourites.route) { + Text("Favourites") + + } + composable(Screens.Skillschains.route) { + Text("Skillschains") + + } + } + } + } +} + +@Preview +@Composable +private fun EmergencyButton() { + FloatingActionButton( + onClick = {}, + containerColor = Color.Red + ) { + Icon( + imageVector = Icons.Filled.Emergency, + contentDescription = stringResource(R.string.emergency_button_description), + ) + } +} \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/BottomNavigationBar.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/BottomNavigationBar.kt new file mode 100644 index 0000000..5513015 --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/BottomNavigationBar.kt @@ -0,0 +1,62 @@ +package de.cdaut.dbtapp.components + +import androidx.compose.material3.Icon +import androidx.compose.material3.NavigationBar +import androidx.compose.material3.NavigationBarItem +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.platform.LocalContext +import androidx.navigation.NavController +import androidx.navigation.NavGraph.Companion.findStartDestination +import de.cdaut.dbtapp.navigation.BottomNavigationItem + + +@Composable +fun BottomNavigationBar(navController: NavController) { + var context = LocalContext.current + //remember the currently selected view + var navigationSelectedItem by remember { + mutableIntStateOf( + //default view is home + BottomNavigationItem().bottomNavigationItems(ctx = context) + .find { item -> item.label == "Home" }!!.idx + ) + } + + NavigationBar { + //Create an entry in the bottom bar for each view + BottomNavigationItem().bottomNavigationItems(ctx = context).sortedBy { item -> item.idx } + .forEachIndexed { index, item -> + NavigationBarItem( + selected = index == navigationSelectedItem, + //label is only visible iff item is selected + label = { + if (index == navigationSelectedItem) { + Text(item.label) + } + }, + icon = { + Icon( + item.icon, + contentDescription = item.label + ) + }, + //navigate to the target view + onClick = { + navigationSelectedItem = index + navController.navigate(item.route) { + popUpTo(navController.graph.findStartDestination().id) { + saveState = true + } + launchSingleTop = true + restoreState = true + } + } + ) + } + } +} diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/SkillsList.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/SkillsList.kt new file mode 100644 index 0000000..3f93d07 --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/SkillsList.kt @@ -0,0 +1,133 @@ +package de.cdaut.dbtapp.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.gestures.ScrollableState +import androidx.compose.foundation.gestures.scrollable +import androidx.compose.foundation.interaction.Interaction +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.IntrinsicSize +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Star +import androidx.compose.material.icons.outlined.Star +import androidx.compose.material.icons.outlined.StarOutline +import androidx.compose.material3.Button +import androidx.compose.material3.Card +import androidx.compose.material3.Icon +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.em +import de.cdaut.dbtapp.R +import de.cdaut.dbtapp.model.Skill +import de.cdaut.dbtapp.model.SkillCategory + +@Preview +@Composable +fun SkillsScreen() { + Column( + Modifier.verticalScroll(rememberScrollState()) + ) { + SkillCategory.entries.forEach { skillCategory -> + SkillsCategoryCard(skillCategory.skills, skillCategory.title) + Spacer(Modifier.height(5.dp)) + } + } +} + +@Preview +@Composable +private fun SkillsCategoryCardPrev() { + SkillsCategoryCard(Skill.mockSkills(), "Skill") +} + +@Composable +fun SkillsCategoryCard(skills: List, title: String) { + Card( + Modifier + .fillMaxWidth() + .padding(10.dp) + ) { + TitleText( + modifier = Modifier.padding(10.dp), + content = title + ) + skills.forEach { skill -> + SingleSkillCard(skill.title, skill.description) + } + } +} + +@Preview +@Composable +private fun SingleSkillsCardPreview() { + SingleSkillCard( + "5-4-3-2-1", + "Hier kurz beschreiben wie die Übung funktioniert. Ggf. mehrere Zeilen aber nicht super lang" + ) +} + +@Composable +private fun SingleSkillCard(title: String, description: String) { + var selected by remember { + mutableStateOf(false) + } + Row( + modifier = Modifier + .fillMaxWidth() + .height(IntrinsicSize.Min) + .background(Color.Transparent) + .padding(10.dp) + .background(Color.White, shape = RoundedCornerShape(5.dp)) + .padding(10.dp), + horizontalArrangement = Arrangement.SpaceBetween, + verticalAlignment = Alignment.CenterVertically + ) { + Column( + modifier = Modifier + .fillMaxHeight() + .fillMaxWidth(fraction = 0.8f), + verticalArrangement = Arrangement.SpaceBetween, + + ) { + TitleText(title) + Spacer(modifier = Modifier.height(10.dp)) + DescriptionText(description) + } + + Icon( + modifier = Modifier + .padding(10.dp) + .clickable(onClick = { + selected = !selected + }), + imageVector = if (selected) Icons.Outlined.Star else Icons.Outlined.StarOutline, + contentDescription = stringResource(R.string.desc_btn_fav), + tint = if (selected) Color.Yellow else Color.Black + ) + + } +} \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/Texts.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/Texts.kt new file mode 100644 index 0000000..82d3988 --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/components/Texts.kt @@ -0,0 +1,44 @@ +package de.cdaut.dbtapp.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Column +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.TextUnit +import androidx.compose.ui.unit.sp + +@Preview +@Composable +private fun PreviewTexts() { + Column( + modifier = Modifier.background(Color.White) + ) { + TitleText("Test Hallo :3") + DescriptionText("lorem ipsum dolor sid amnet consequetur blabla yada yada") + } +} + +@Composable +fun TitleText(content: String, modifier: Modifier = Modifier) { + Text( + text = content, + modifier = modifier, + fontSize = 20.sp, + fontWeight = FontWeight.Bold + ) +} + +@Composable +fun DescriptionText(content: String, modifier: Modifier = Modifier) { + Text( + text = content, + modifier = modifier, + fontSize = 17.sp, + fontWeight = FontWeight.Light + ) +} \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/model/Skill.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/model/Skill.kt new file mode 100644 index 0000000..612c86a --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/model/Skill.kt @@ -0,0 +1,24 @@ +package de.cdaut.dbtapp.model + +class Skill(val title: String, val description: String) { + + + companion object { + fun mockSkills(): List { + return listOf( + Skill( + title = "Test Hallo :3", + description = "lorem ipsum dolor sid amnet consequetur blabla yada yada" + ), + Skill( + title = "5-4-3-2-1", + description = "Hier kurz beschreiben wie die Übung funktioniert. Ggf. mehrere Zeilen aber nicht super lang" + ), + Skill( + title = "UwU UwU awawawa", + description = "Just arf a little like the good fopsgirl you are :3" + ) + ) + } + } +} \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/model/SkillCategory.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/model/SkillCategory.kt new file mode 100644 index 0000000..c09483a --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/model/SkillCategory.kt @@ -0,0 +1,14 @@ +package de.cdaut.dbtapp.model + +import androidx.compose.foundation.layout.Arrangement + +enum class SkillCategory(val title: String, val skills: List = Skill.mockSkills()) { + Mindfulness("Achtsamkeitsübungen"), + EmotionalRegulation("Emotionsregulation"), + MiddleWay("Mittelweg"), + StressTolerance("Stresstoleranz"), + SelfWorth("Selbstwert"), + Addiction("Sucht"), + Interpersonal("Zwischenmenschlich"); +} + diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/navigation/BottomNavigationItem.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/navigation/BottomNavigationItem.kt new file mode 100644 index 0000000..2d3bf49 --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/navigation/BottomNavigationItem.kt @@ -0,0 +1,55 @@ +package de.cdaut.dbtapp.navigation + +import android.content.Context +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.MenuBook +import androidx.compose.material.icons.filled.CalendarToday +import androidx.compose.material.icons.filled.Checklist +import androidx.compose.material.icons.filled.Home +import androidx.compose.material.icons.outlined.Star +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.platform.LocalContext +import androidx.core.content.ContextCompat.getString +import de.cdaut.dbtapp.R + +data class BottomNavigationItem( + val label: String = "", + val icon: ImageVector = Icons.Filled.Home, + val route: String = "", + val idx: Int = 0 +) { + fun bottomNavigationItems(ctx: Context): List { + return listOf( + BottomNavigationItem( + label = getString(ctx, R.string.label_tracking), + icon = Icons.Filled.CalendarToday, + route = Screens.Tracking.route, + idx = 0 + ), + BottomNavigationItem( + label = getString(ctx, R.string.label_skillslist), + icon = Icons.AutoMirrored.Filled.MenuBook, + route = Screens.Skillslist.route, + idx = 1 + ), + BottomNavigationItem( + label = getString(ctx, R.string.label_home), + icon = Icons.Filled.Home, + route = Screens.Home.route, + idx = 2 + ), + BottomNavigationItem( + label = getString(ctx, R.string.label_favourites), + icon = Icons.Outlined.Star, + route = Screens.Favourites.route, + idx = 3 + ), + BottomNavigationItem( + label = getString(ctx, R.string.label_skillschains), + icon = Icons.Filled.Checklist, + route = Screens.Skillschains.route, + idx = 4 + ) + ) + } +} \ No newline at end of file diff --git a/DBTApp/app/src/main/java/de/cdaut/dbtapp/navigation/Screens.kt b/DBTApp/app/src/main/java/de/cdaut/dbtapp/navigation/Screens.kt new file mode 100644 index 0000000..d9a3728 --- /dev/null +++ b/DBTApp/app/src/main/java/de/cdaut/dbtapp/navigation/Screens.kt @@ -0,0 +1,9 @@ +package de.cdaut.dbtapp.navigation + +sealed class Screens(val route: String) { + object Home : Screens("home_route") + object Tracking : Screens("tracking_route") + object Skillslist : Screens("skillslist_route") + object Favourites : Screens("favourites_route") + object Skillschains : Screens("skillschains_route") +} \ No newline at end of file diff --git a/DBTApp/app/src/main/res/drawable/baseline_menu_book_24.xml b/DBTApp/app/src/main/res/drawable/baseline_menu_book_24.xml deleted file mode 100644 index a30d9cb..0000000 --- a/DBTApp/app/src/main/res/drawable/baseline_menu_book_24.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/DBTApp/app/src/main/res/drawable/emergency_24px.xml b/DBTApp/app/src/main/res/drawable/emergency_24px.xml deleted file mode 100644 index 1156fbe..0000000 --- a/DBTApp/app/src/main/res/drawable/emergency_24px.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/DBTApp/app/src/main/res/drawable/home_24px.xml b/DBTApp/app/src/main/res/drawable/home_24px.xml deleted file mode 100644 index 16b0538..0000000 --- a/DBTApp/app/src/main/res/drawable/home_24px.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/DBTApp/app/src/main/res/drawable/outline_calendar_month_24.xml b/DBTApp/app/src/main/res/drawable/outline_calendar_month_24.xml deleted file mode 100644 index 23988d4..0000000 --- a/DBTApp/app/src/main/res/drawable/outline_calendar_month_24.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/DBTApp/app/src/main/res/drawable/sort_24px.xml b/DBTApp/app/src/main/res/drawable/sort_24px.xml deleted file mode 100644 index 1f06ff7..0000000 --- a/DBTApp/app/src/main/res/drawable/sort_24px.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/DBTApp/app/src/main/res/drawable/star_24px.xml b/DBTApp/app/src/main/res/drawable/star_24px.xml deleted file mode 100644 index 0a592a4..0000000 --- a/DBTApp/app/src/main/res/drawable/star_24px.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/DBTApp/app/src/main/res/layout/activity_home.xml b/DBTApp/app/src/main/res/layout/activity_home.xml deleted file mode 100644 index 9619299..0000000 --- a/DBTApp/app/src/main/res/layout/activity_home.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/layout/content_home.xml b/DBTApp/app/src/main/res/layout/content_home.xml deleted file mode 100644 index 08d0418..0000000 --- a/DBTApp/app/src/main/res/layout/content_home.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/layout/fragment_favourites.xml b/DBTApp/app/src/main/res/layout/fragment_favourites.xml deleted file mode 100644 index 812e2f1..0000000 --- a/DBTApp/app/src/main/res/layout/fragment_favourites.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/layout/fragment_home.xml b/DBTApp/app/src/main/res/layout/fragment_home.xml deleted file mode 100644 index 329f50a..0000000 --- a/DBTApp/app/src/main/res/layout/fragment_home.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/layout/fragment_skill_list.xml b/DBTApp/app/src/main/res/layout/fragment_skill_list.xml deleted file mode 100644 index f19e3e0..0000000 --- a/DBTApp/app/src/main/res/layout/fragment_skill_list.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/layout/fragment_skills_chains.xml b/DBTApp/app/src/main/res/layout/fragment_skills_chains.xml deleted file mode 100644 index 828eed2..0000000 --- a/DBTApp/app/src/main/res/layout/fragment_skills_chains.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/layout/fragment_tracking.xml b/DBTApp/app/src/main/res/layout/fragment_tracking.xml deleted file mode 100644 index f1898ef..0000000 --- a/DBTApp/app/src/main/res/layout/fragment_tracking.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/menu/bottom_navbar.xml b/DBTApp/app/src/main/res/menu/bottom_navbar.xml deleted file mode 100644 index c774168..0000000 --- a/DBTApp/app/src/main/res/menu/bottom_navbar.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - diff --git a/DBTApp/app/src/main/res/navigation/nav_graph.xml b/DBTApp/app/src/main/res/navigation/nav_graph.xml deleted file mode 100644 index 63bc0af..0000000 --- a/DBTApp/app/src/main/res/navigation/nav_graph.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values-de-rDE/strings.xml b/DBTApp/app/src/main/res/values-de-rDE/strings.xml deleted file mode 100644 index 009312e..0000000 --- a/DBTApp/app/src/main/res/values-de-rDE/strings.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - DBT App - Erstes Fragment - Tracking - Skill Liste - Favoriten - Home - Skillsketten - Leeres Fragment - Notfall - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values-de/strings.xml b/DBTApp/app/src/main/res/values-de/strings.xml new file mode 100644 index 0000000..e45a695 --- /dev/null +++ b/DBTApp/app/src/main/res/values-de/strings.xml @@ -0,0 +1,11 @@ + + + DBTApp + Home + Skills + Tracking + Favoriten + Skillsketten + Notfallknopf + Favorisieren Button + \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values-land/dimens.xml b/DBTApp/app/src/main/res/values-land/dimens.xml deleted file mode 100644 index 10125a3..0000000 --- a/DBTApp/app/src/main/res/values-land/dimens.xml +++ /dev/null @@ -1,3 +0,0 @@ - - 48dp - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values-night/themes.xml b/DBTApp/app/src/main/res/values-night/themes.xml index f65506a..99159d7 100644 --- a/DBTApp/app/src/main/res/values-night/themes.xml +++ b/DBTApp/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ - - - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values-v23/themes.xml b/DBTApp/app/src/main/res/values-v23/themes.xml deleted file mode 100644 index 9f8c75d..0000000 --- a/DBTApp/app/src/main/res/values-v23/themes.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values-w1240dp/dimens.xml b/DBTApp/app/src/main/res/values-w1240dp/dimens.xml deleted file mode 100644 index ec434d3..0000000 --- a/DBTApp/app/src/main/res/values-w1240dp/dimens.xml +++ /dev/null @@ -1,3 +0,0 @@ - - 200dp - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values-w600dp/dimens.xml b/DBTApp/app/src/main/res/values-w600dp/dimens.xml deleted file mode 100644 index 10125a3..0000000 --- a/DBTApp/app/src/main/res/values-w600dp/dimens.xml +++ /dev/null @@ -1,3 +0,0 @@ - - 48dp - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values/dimens.xml b/DBTApp/app/src/main/res/values/dimens.xml deleted file mode 100644 index b789d50..0000000 --- a/DBTApp/app/src/main/res/values/dimens.xml +++ /dev/null @@ -1,3 +0,0 @@ - - 16dp - \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values/strings.xml b/DBTApp/app/src/main/res/values/strings.xml index 75f145c..51849cb 100644 --- a/DBTApp/app/src/main/res/values/strings.xml +++ b/DBTApp/app/src/main/res/values/strings.xml @@ -1,13 +1,10 @@ - DBT App - - First Fragment - - Tracking - Skill list - Favourites - Home\n - Skills chains\n - Hello blank fragment - Emergency + DBTApp + Home + Skillslist + Tracking + Favourites + Skills Chains + Emergency Button + Favourte Button \ No newline at end of file diff --git a/DBTApp/app/src/main/res/values/themes.xml b/DBTApp/app/src/main/res/values/themes.xml index 8ff576c..0685127 100644 --- a/DBTApp/app/src/main/res/values/themes.xml +++ b/DBTApp/app/src/main/res/values/themes.xml @@ -1,6 +1,6 @@ - - - \ No newline at end of file diff --git a/DBTApp/app/src/test/java/de/cdaut/dbt/ExampleUnitTest.kt b/DBTApp/app/src/test/java/de/cdaut/dbtapp/ExampleUnitTest.kt similarity index 92% rename from DBTApp/app/src/test/java/de/cdaut/dbt/ExampleUnitTest.kt rename to DBTApp/app/src/test/java/de/cdaut/dbtapp/ExampleUnitTest.kt index 9ab9e74..1987caf 100644 --- a/DBTApp/app/src/test/java/de/cdaut/dbt/ExampleUnitTest.kt +++ b/DBTApp/app/src/test/java/de/cdaut/dbtapp/ExampleUnitTest.kt @@ -1,4 +1,4 @@ -package de.cdaut.dbt +package de.cdaut.dbtapp import org.junit.Test diff --git a/DBTApp/gradle/libs.versions.toml b/DBTApp/gradle/libs.versions.toml index aec03ea..b497618 100644 --- a/DBTApp/gradle/libs.versions.toml +++ b/DBTApp/gradle/libs.versions.toml @@ -2,18 +2,13 @@ activityCompose = "1.10.1" agp = "8.9.2" kotlin = "2.0.21" -coreKtx = "1.10.1" +coreKtx = "1.16.0" junit = "4.13.2" -junitVersion = "1.1.5" -espressoCore = "3.5.1" -appcompat = "1.6.1" -material = "1.10.0" -constraintlayout = "2.1.4" -navigationFragmentKtx = "2.6.0" -navigationUiKtx = "2.6.0" -runtimeAndroid = "1.8.1" -uiToolingPreviewAndroid = "1.8.1" -material3Android = "1.3.2" +junitVersion = "1.2.1" +espressoCore = "3.6.1" +appcompat = "1.7.0" +material = "1.12.0" +navigationCompose = "2.7.0-rc01" [libraries] androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "activityCompose" } @@ -22,22 +17,16 @@ androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = androidx-material-icons-core = { module = "androidx.compose.material:material-icons-core" } androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" } androidx-material3 = { module = "androidx.compose.material3:material3" } -androidx-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" } +androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigationCompose" } androidx-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" } +androidx-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" } androidx-ui-tooling = { module = "androidx.compose.ui:ui-tooling" } androidx-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } junit = { group = "junit", name = "junit", version.ref = "junit" } androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } -material = { group = "com.google.android.material", name = "material", version = "1.12.0" } -androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" } -androidx-navigation-fragment-ktx = { group = "androidx.navigation", name = "navigation-fragment-ktx", version.ref = "navigationFragmentKtx" } -androidx-navigation-ui-ktx = { group = "androidx.navigation", name = "navigation-ui-ktx", version.ref = "navigationUiKtx" } -androidx-runtime-android = { group = "androidx.compose.runtime", name = "runtime-android", version.ref = "runtimeAndroid" } -androidx-ui-tooling-preview-android = { group = "androidx.compose.ui", name = "ui-tooling-preview-android", version.ref = "uiToolingPreviewAndroid" } -androidx-material3-android = { group = "androidx.compose.material3", name = "material3-android", version.ref = "material3Android" } -material3 = { module = "androidx.compose.material3:material3" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } diff --git a/DBTApp/gradle/wrapper/gradle-wrapper.properties b/DBTApp/gradle/wrapper/gradle-wrapper.properties index deb2368..39898bb 100644 --- a/DBTApp/gradle/wrapper/gradle-wrapper.properties +++ b/DBTApp/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -#Sat May 03 16:52:58 GMT 2025 +#Mon May 12 19:45:20 GMT 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip diff --git a/DBTApp/settings.gradle.kts b/DBTApp/settings.gradle.kts index ca6593c..840f442 100644 --- a/DBTApp/settings.gradle.kts +++ b/DBTApp/settings.gradle.kts @@ -19,6 +19,5 @@ dependencyResolutionManagement { } } -rootProject.name = "DBT App" +rootProject.name = "DBTApp" include(":app") - \ No newline at end of file