diff --git a/app/src/main/java/com/denizk0461/weserplaner/activity/IntroductionActivity.kt b/app/src/main/java/com/denizk0461/weserplaner/activity/IntroductionActivity.kt new file mode 100644 index 0000000..a988b24 --- /dev/null +++ b/app/src/main/java/com/denizk0461/weserplaner/activity/IntroductionActivity.kt @@ -0,0 +1,20 @@ +package com.denizk0461.weserplaner.activity + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import com.denizk0461.weserplaner.databinding.ActivityIntroductionBinding + +class IntroductionActivity : AppCompatActivity() { + + private lateinit var binding: ActivityIntroductionBinding + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + // Inflate view binding and bind to this activity + binding = ActivityIntroductionBinding.inflate(layoutInflater) + setContentView(binding.root) + + + } +} \ 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 7ddf7f4..b2467e1 100644 --- a/app/src/main/java/com/denizk0461/weserplaner/activity/MainActivity.kt +++ b/app/src/main/java/com/denizk0461/weserplaner/activity/MainActivity.kt @@ -1,5 +1,6 @@ package com.denizk0461.weserplaner.activity +import android.content.Intent import android.os.Bundle import androidx.core.view.WindowCompat import androidx.fragment.app.FragmentActivity @@ -34,6 +35,16 @@ class MainActivity : FragmentActivity() { binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) + /* + * Check whether the user is launching the app for the first time in order to show a + * tutorial. This value will be changed to 'false' upon completing the tutorial, thus not + * requiring any changes to the value here. + */ + if (true/*viewModel.preferenceFirstLaunch*/) { + // Launch the tutorial activity + startActivity(Intent(this, IntroductionActivity::class.java)) + } + // Set up bottom navigation view to navigate between fragments binding.navView.setupWithNavController( binding.navHostFragmentContentMain.getFragment().findNavController() diff --git a/app/src/main/java/com/denizk0461/weserplaner/fragment/EventFragment.kt b/app/src/main/java/com/denizk0461/weserplaner/fragment/EventFragment.kt index 3a89275..c9d3b8f 100644 --- a/app/src/main/java/com/denizk0461/weserplaner/fragment/EventFragment.kt +++ b/app/src/main/java/com/denizk0461/weserplaner/fragment/EventFragment.kt @@ -119,12 +119,6 @@ class EventFragment : AppFragment() { } ) } - - // Show the user a little message if they're opening the app for the first time - if (viewModel.preferenceFirstLaunch) { - // Remember that the app has been launched before - viewModel.preferenceFirstLaunch = false - } } /** 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 2ada3cd..1cc39a4 100644 --- a/app/src/main/java/com/denizk0461/weserplaner/fragment/SettingsFragment.kt +++ b/app/src/main/java/com/denizk0461/weserplaner/fragment/SettingsFragment.kt @@ -410,6 +410,10 @@ class SettingsFragment : AppFragment() { viewModel.nukeEverything() showToast(context, "Nuked everything") } + "NFIRST" -> { // set first launch preference to true + viewModel.preferenceFirstLaunch = true + showToast(context, "First launch flag cleared") + } else -> showSnackBar( getString(R.string.settings_dev_codes_invalid) ) diff --git a/app/src/main/java/com/denizk0461/weserplaner/viewmodel/EventViewModel.kt b/app/src/main/java/com/denizk0461/weserplaner/viewmodel/EventViewModel.kt index 6e85f93..3dcdf8a 100644 --- a/app/src/main/java/com/denizk0461/weserplaner/viewmodel/EventViewModel.kt +++ b/app/src/main/java/com/denizk0461/weserplaner/viewmodel/EventViewModel.kt @@ -22,11 +22,4 @@ class EventViewModel(app: Application) : AppViewModel(app) { */ val preferenceCurrentDay: Boolean get() = repo.getPreferenceCurrentDay() - - /** - * Determines whether the user is launching the app for the first time. - */ - var preferenceFirstLaunch: Boolean - get() = repo.getPreferenceFirstLaunch() - set(value) { repo.setPreferenceFirstLaunch(value) } } \ No newline at end of file diff --git a/app/src/main/java/com/denizk0461/weserplaner/viewmodel/MainViewModel.kt b/app/src/main/java/com/denizk0461/weserplaner/viewmodel/MainViewModel.kt index 6532d8a..98de732 100644 --- a/app/src/main/java/com/denizk0461/weserplaner/viewmodel/MainViewModel.kt +++ b/app/src/main/java/com/denizk0461/weserplaner/viewmodel/MainViewModel.kt @@ -21,4 +21,10 @@ class MainViewModel(application: Application) : AppViewModel(application) { */ val preferenceBetaScreensEnabled: Boolean get() = repo.getPreferenceBetaScreensEnabled() + + /** + * Determines whether the user is launching the app for the first time. + */ + val preferenceFirstLaunch: Boolean + get() = repo.getPreferenceFirstLaunch() } \ No newline at end of file diff --git a/app/src/main/java/com/denizk0461/weserplaner/viewmodel/SettingsViewModel.kt b/app/src/main/java/com/denizk0461/weserplaner/viewmodel/SettingsViewModel.kt index a5f3768..5f57546 100644 --- a/app/src/main/java/com/denizk0461/weserplaner/viewmodel/SettingsViewModel.kt +++ b/app/src/main/java/com/denizk0461/weserplaner/viewmodel/SettingsViewModel.kt @@ -81,6 +81,13 @@ class SettingsViewModel(app: Application) : AppViewModel(app) { get() = repo.getPreferenceBetaScreensEnabled() set(newValue) { repo.setPreferenceBetaScreensEnabled(newValue) } + /** + * Determines whether the user is launching the app for the first time. + */ + var preferenceFirstLaunch: Boolean + get() = repo.getPreferenceFirstLaunch() + set(value) { repo.setPreferenceFirstLaunch(value) } + // --- functions for dev codes --- // /** diff --git a/app/src/main/res/layout/activity_introduction.xml b/app/src/main/res/layout/activity_introduction.xml new file mode 100644 index 0000000..77d9ef6 --- /dev/null +++ b/app/src/main/res/layout/activity_introduction.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file