From 825ed174b2959ad4957980d9946b4051e62b0b31 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Tue, 31 Dec 2024 13:51:06 +0700 Subject: [PATCH] SettingsFragment: Add preference for permissions fragment Signed-off-by: Aayush Gupta --- .../view/ui/onboarding/OnboardingFragment.kt | 2 +- .../view/ui/onboarding/PermissionsFragment.kt | 23 +++++++++++++++++++ .../view/ui/preferences/SettingsFragment.kt | 6 +++++ app/src/main/res/drawable/ic_list_check.xml | 11 +++++++++ .../fragment_onboarding_permissions.xml | 12 ++++++++++ .../main/res/navigation/mobile_navigation.xml | 16 ++++++++++++- app/src/main/res/xml/preferences_settings.xml | 7 ++++++ 7 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/ic_list_check.xml diff --git a/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt b/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt index 43d458aa8..e28213454 100644 --- a/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/onboarding/OnboardingFragment.kt @@ -74,7 +74,7 @@ class OnboardingFragment : BaseFragment() { override fun createFragment(position: Int): Fragment { when (position) { 0 -> return WelcomeFragment() - 1 -> return PermissionsFragment() + 1 -> return PermissionsFragment.newInstance() 2 -> return AppLinksFragment() } return Fragment() diff --git a/app/src/main/java/com/aurora/store/view/ui/onboarding/PermissionsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/onboarding/PermissionsFragment.kt index 98dd99378..41ad637cb 100644 --- a/app/src/main/java/com/aurora/store/view/ui/onboarding/PermissionsFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/onboarding/PermissionsFragment.kt @@ -22,6 +22,10 @@ package com.aurora.store.view.ui.onboarding import android.os.Bundle import android.view.View +import androidx.core.os.bundleOf +import androidx.core.view.isVisible +import androidx.navigation.fragment.findNavController +import androidx.navigation.fragment.navArgs import com.aurora.extensions.isMAndAbove import com.aurora.extensions.isOAndAbove import com.aurora.extensions.isRAndAbove @@ -39,8 +43,27 @@ import dagger.hilt.android.AndroidEntryPoint @AndroidEntryPoint class PermissionsFragment : BaseFragment() { + private val args: PermissionsFragmentArgs by navArgs() + + companion object { + fun newInstance(isOnboarding: Boolean = true): PermissionsFragment { + return PermissionsFragment().apply { + arguments = bundleOf("isOnboarding" to isOnboarding) + } + } + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + + // Headers are only visible if we are onboarding + binding.title?.isVisible = args.isOnboarding + binding.subtitle?.isVisible = args.isOnboarding + binding.toolbar?.apply { + isVisible = !args.isOnboarding + setNavigationOnClickListener { findNavController().navigateUp() } + } + updateController() } diff --git a/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt b/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt index efd8b043e..a8c9ffc7c 100644 --- a/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/preferences/SettingsFragment.kt @@ -34,6 +34,12 @@ class SettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preferences_settings, rootKey) + findPreference("pref_perms")?.setOnPreferenceClickListener { + findNavController().navigate( + SettingsFragmentDirections.actionSettingsFragmentToPermissionsFragment(false) + ) + true + } findPreference("pref_install")?.setOnPreferenceClickListener { findNavController().navigate(R.id.installationPreference) true diff --git a/app/src/main/res/drawable/ic_list_check.xml b/app/src/main/res/drawable/ic_list_check.xml new file mode 100644 index 000000000..40a1734da --- /dev/null +++ b/app/src/main/res/drawable/ic_list_check.xml @@ -0,0 +1,11 @@ + + + + diff --git a/app/src/main/res/layout/fragment_onboarding_permissions.xml b/app/src/main/res/layout/fragment_onboarding_permissions.xml index 8ca551937..f40132a5f 100644 --- a/app/src/main/res/layout/fragment_onboarding_permissions.xml +++ b/app/src/main/res/layout/fragment_onboarding_permissions.xml @@ -20,6 +20,7 @@ --> + + + tools:layout="@layout/fragment_setting" > + + + + + + +