Conversation
|
Hm weird, I merged master into maplibre-compose into maplibre-compose-completion into this branch (😅) but the PR diff is still showing me loads of changes on unrelated metadata (translations, icons, ...) |
3970c77 to
bb184fc
Compare
|
All the merge commits confused me so I just recreated this branch with a fresh commit on top of the latest streetcomplete#7088 |
westnordost
left a comment
There was a problem hiding this comment.
(not a complete review as this is still draft)
-
Have a look at all places where
AnimatedScreenVisibilityis used. Most of these are inMainScreen. Now that it is completely in compose, it makes sense to have these screens (IntroTutorialScreen, OverlaysTutorialScreen, TeamModeWizard) as own screens in the nav graph. -
Not sure what to think of the
appFormattingLocalestuff. It seems awfully error prone to sprinkle a check for that global variable everywhere we are doing anythingLocale-aware (potentially) outside of the composition. I tend towards that it would be easier if the application class would listen for changes on the (app) locale settings and set theLocale.setDefault(…)on Android/JVM and something similar on iOS.
| proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") | ||
| testProguardFile("test-proguard-rules.pro") | ||
| proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt")) | ||
| } | ||
| getByName("debug") { | ||
| isMinifyEnabled = false | ||
| proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") | ||
| applicationIdSuffix = ".debug" |
There was a problem hiding this comment.
Removing the proguard-rules.pro config seems a bit dangerous to me. I don't know how one could test what of these rules is still needed and which not. As far as I know, if too much is stripped, it doesn't lead to the app not compiling, but to runtime "class/method not found" exceptions.
There was a problem hiding this comment.
fixed in 3597865, this snuck in with the rebase
| enterTransition = { slideInHorizontally(initialOffsetX = { +it * dir }) }, | ||
| exitTransition = { slideOutHorizontally(targetOffsetX = { -it * dir }) }, | ||
| popEnterTransition = { slideInHorizontally(initialOffsetX = { -it * dir }) }, | ||
| popExitTransition = { slideOutHorizontally(targetOffsetX = { +it * dir }) }, |
There was a problem hiding this comment.
You mentioned that this animation feels unnatural. I actually removed this recently to see what would be the default transition but for some reason, it resulted in no animation at all. (Even though there is a default, which doesn't look like "no animation".) Anyway, if you want to play around with this, this is the place.
There was a problem hiding this comment.
I spent some time playing with the transitions, and couldn't get it to feel right on Navigation 2.
Will try a Navigation 3 upgrade on another branch.
There was a problem hiding this comment.
Alright, we are one the same page/boat then
consolidated in c7f9414 |
Done in b10a374. these full screen dialogs have a different transition than the other screens, so I preserved it for now with a conditional in the NavHost transition args. looking at refining transitions separately |
Right, this came to my mind this night, too. In the end, it remains to be seen whether it makes more sense as a full screen "dialog" or as part of the nav graph. On the other hand, it is part of the navigation (i.e. back stack etc) so it is probably more idiomatic to have it there. |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
There was a problem hiding this comment.
However, the method seems to be widely used, so, I think it's fine to use it. If it causes app store rejection, it could still be changed. (I.e. the language selection feature disabled for iOS)
There was a problem hiding this comment.
More research on this:
On both Android 13 onwards and iOS 17 onwards, it is possible to set the app language from the system settings. To enable:
-
Android: in the manifest, add
android:localeConfig="@xml/locale_config", wherelocale_configis a file that needs to include a list of supported languages as documented here. -
iOS: setting
UIPrefersShowingLanguageSettingsin the Info.plist toyes. iOS doesn't provide an API to set/synchronize this with an in-app language selector.
For Android, I have actually looked into supporting it two years ago
streetcomplete#5623 (comment) and decided against it.
Anyway, the research doesn't change that I think the current path (in-app language selector) is the best path forward. Only, if the app is rejected because of this, we now know an alternative (for iOS).
There was a problem hiding this comment.
I noticed AppleLanguages was being set recursively, causing a crash. a30a303 resolves
There was a problem hiding this comment.
For Android, I have actually looked into supporting it two years ago
that's some interesting research; it's disappointing even the android api for this is not well suited
…d sidewalks (streetcomplete#7139) * Fix: Sidewalk Surface tagging bug * Undo previous changes * Rectify one-sided sidewalk surface tagging * Add tests for sidewalk surface tag rectification * Implement requested changes * Update tests to faciliate changes * Add isResurvey indicator
Pre-review mirror of streetcomplete#7125, based on
codex/maplibre-compose-completionso the diff excludes the MapLibre Compose migration. Not intended to merge here.