This repository has been archived by the owner on Feb 6, 2024. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
We need to target at least Android SDK 31 in order to remain on the Play Store past August 31. The start of this work was completed in #210 but there were still some outstanding issues that needed to be addressed. This addresses some of them, but not all (see notes, below).
Demo
Notes
There were a number of issues identified in #209 . Here's a list of the resolutions of each one:
There are a lot of these spots and
AsyncTask
has just been deprecated, not removed, so we should punt until we're less time-crunched. I opened #213 for this.We should upgrade eventually but don't need to now because Gradle's maintenance support extends back one major version. In other words, Gradle 7 will only receive support until Gradle 9 is released, but if we're on Gradle 8 then we'll have support until Gradle 10. I opened #214 for this.
I did some research on this and my best understanding is that this seems like it could be from calling setAdapter() inside of an asynchronous callback: https://stackoverflow.com/questions/29141729/recyclerview-no-adapter-attached-skipping-layout . It mostly doesn't seem to hurt anything (although I think it might cause some images to be blank when they scroll into view), and we're going to have to rework the asynchronous code soon anyway, so I think it's best to punt on this for the time being. I opened #215 to address this.
I was able to replicate this, but the only discussion I was able to find online indicated that it happens when displaying a dialog over the map (which we do) and that the only solution is to avoid doing that, which would be more effort than we have time for. Luckily, it doesn't seem to harm anything so I think we can safely ignore this.
I wasn't able to replicate this but it seems like there's only one spot in the code that could throw this exception, so I wrapped it in a try/catch and hopefully that'll do the trick.
I changed the permission checking logic so that it works with either precise or approximate location.
One final note is that SDK is the minimum version to remain on the Play Store, but in order to publish updates we need to target at least SDK 33. We should start on the SDK 33 upgrade as soon as SDK 31 is published.
Testing Instructions
Closes #209