SettingsFragment: Add preference for permissions fragment

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2024-12-31 13:51:06 +07:00
parent e766c8000b
commit 825ed174b2
7 changed files with 75 additions and 2 deletions

View File

@@ -74,7 +74,7 @@ class OnboardingFragment : BaseFragment<FragmentOnboardingBinding>() {
override fun createFragment(position: Int): Fragment {
when (position) {
0 -> return WelcomeFragment()
1 -> return PermissionsFragment()
1 -> return PermissionsFragment.newInstance()
2 -> return AppLinksFragment()
}
return Fragment()

View File

@@ -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<FragmentOnboardingPermissionsBinding>() {
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()
}

View File

@@ -34,6 +34,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preferences_settings, rootKey)
findPreference<Preference>("pref_perms")?.setOnPreferenceClickListener {
findNavController().navigate(
SettingsFragmentDirections.actionSettingsFragmentToPermissionsFragment(false)
)
true
}
findPreference<Preference>("pref_install")?.setOnPreferenceClickListener {
findNavController().navigate(R.id.installationPreference)
true

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M120,640L120,560L440,560L440,640L120,640ZM120,480L120,400L600,400L600,480L120,480ZM120,320L120,240L600,240L600,320L120,320ZM654,760L512,618L568,562L654,646L824,476L880,534L654,760Z"/>
</vector>

View File

@@ -20,6 +20,7 @@
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -27,7 +28,17 @@
android:orientation="vertical"
android:showDividers="middle">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:visibility="gone"
app:navigationIcon="@drawable/ic_arrow_back"
app:title="@string/onboarding_title_permissions" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:includeFontPadding="true"
@@ -39,6 +50,7 @@
android:textSize="42sp" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/subtitle"
style="@style/AuroraTextStyle.Subtitle.Alt"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@@ -96,7 +96,11 @@
android:id="@+id/settingsFragment"
android:name="com.aurora.store.view.ui.preferences.SettingsFragment"
android:label="@string/title_settings"
tools:layout="@layout/fragment_setting" />
tools:layout="@layout/fragment_setting" >
<action
android:id="@+id/action_settingsFragment_to_permissionsFragment"
app:destination="@id/permissionsFragment" />
</fragment>
<fragment
android:id="@+id/installationPreference"
android:name="com.aurora.store.view.ui.preferences.InstallationPreference"
@@ -362,6 +366,16 @@
android:id="@+id/action_dispenserFragment_to_removeDispenserDialog"
app:destination="@id/removeDispenserDialog" />
</fragment>
<fragment
android:id="@+id/permissionsFragment"
android:name="com.aurora.store.view.ui.onboarding.PermissionsFragment"
android:label="PermissionsFragment"
tools:layout="@layout/fragment_onboarding_permissions">
<argument
android:name="isOnboarding"
android:defaultValue="true"
app:argType="boolean" />
</fragment>
<dialog
android:id="@+id/appMenuSheet"
android:name="com.aurora.store.view.ui.sheets.AppMenuSheet"

View File

@@ -19,6 +19,13 @@
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
<Preference
app:icon="@drawable/ic_list_check"
app:iconSpaceReserved="false"
app:key="pref_perms"
app:layout="@layout/item_preference"
app:title="@string/onboarding_title_permissions" />
<Preference
app:icon="@drawable/ic_installation"
app:iconSpaceReserved="false"