-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add onboarding screen to ask for Android permissions #7299
Conversation
...pose/common/src/main/kotlin/app/k9mail/core/ui/compose/common/mvi/UnidirectionalViewModel.kt
Outdated
Show resolved
Hide resolved
61eebfb
to
8ecf87d
Compare
I'm preparing a possible alternative for skipping this screen in case no runtime support. |
8ecf87d
to
1968e5b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had a closer look and was wondering why there are no tests. Despite that it looks good and I just had some findings.
The bottombar buttons need more bottom spacing.
Also the Feature App needs the contact permisison to not fail instantly. That's where I noticed that there is not enough visual feedback when the check failed. I felt a little bit lost and just noticed that the icon changed after clicking the allow button multiple times.
onBack: () -> Unit, | ||
onFinish: (String) -> Unit, | ||
) { | ||
composable(route) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the nested route should be declared directly in the OnboardingNavHost
to prevent unnecessary coupling.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure I follow. Are you saying it's better for the interface between :onboarding:main
and :account:setup
to be AccountSetupScreen()
rather than nestedAccountSetupRoute()
? The first one feels like an implementation detail to me. And one that might change in the future (to use navigation instead of manually handling sub screens).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My issue is that nestedAccountSetupRoute()
only existis because of the needs of the onboarding implementation to use a different entry point.
...re/launcher/src/main/kotlin/app/k9mail/feature/launcher/navigation/FeatureLauncherNavHost.kt
Show resolved
Hide resolved
...ding/main/src/main/kotlin/app/k9mail/feature/onboarding/main/navigation/OnboardingNavHost.kt
Show resolved
Hide resolved
app-feature-preview/src/main/java/app/k9mail/feature/preview/FeatureModule.kt
Show resolved
Hide resolved
...ssions/src/main/kotlin/app/k9mail/feature/onboarding/permissions/domain/entity/Permission.kt
Outdated
Show resolved
Hide resolved
...issions/src/main/kotlin/app/k9mail/feature/onboarding/permissions/ui/PermissionsViewModel.kt
Outdated
Show resolved
Hide resolved
.../src/main/kotlin/app/k9mail/feature/onboarding/permissions/domain/usecase/CheckPermission.kt
Show resolved
Hide resolved
...rmissions/src/main/kotlin/app/k9mail/feature/onboarding/permissions/ui/PermissionsContent.kt
Show resolved
Hide resolved
...issions/src/main/kotlin/app/k9mail/feature/onboarding/permissions/ui/PermissionsViewModel.kt
Outdated
Show resolved
Hide resolved
...issions/src/main/kotlin/app/k9mail/feature/onboarding/permissions/ui/PermissionsViewModel.kt
Outdated
Show resolved
Hide resolved
...common/src/main/kotlin/app/k9mail/core/ui/compose/common/image/ImageWithOverlayCoordinate.kt
Show resolved
Hide resolved
.../permissions/src/main/kotlin/app/k9mail/core/android/permissions/AndroidPermissionChecker.kt
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
9b1d649
to
fe33dd2
Compare
This removes the old onboarding module and creates several onboarding sub modules.
:feature:onboarding:main
contains the navigation logic and binds the various onboarding modules together:feature:onboarding:welcome
contains the welcome screen (strings.xml
files have moved; so we need to update Weblate to point to the new location):feature:onboarding:permission
contains the new permission screen (needs a new component on Weblate)Closes #6262