Skip to content

Conversation

gnprice
Copy link
Member

@gnprice gnprice commented Oct 21, 2020

This change will be required in order to upload new releases to the
Play Store, effective 2020-11-01, a couple of weeks from now.

The change causes Android 10 and later to apply to our app a number
of behavior changes introduced in that version, documented here:
https://developer.android.com/about/versions/10/behavior-changes-10

Further discussion in #3665.

Fixes: #3665

This opts out of Android 10's new "scoped storage" model.  Docs:
  https://developer.android.com/training/data-storage/use-cases#opt-out-scoped-storage

The new model otherwise takes effect on Android 10+ devices when
targeting Android 10+.  We're about to start targeting Android 10
(zulip#3665), because Google Play will require us to do so starting on
2020-11-02, which is soon.

The opt-out will stop having any effect on Android 11+, when we
eventually target Android 11+.  So effectively it gives us an
extension of one more cycle on adapting to the new model.

The reason we're opting out is that at least one of our dependencies,
the react-native-image-picker library which we use for taking photos
and also picking existing photos to share on Zulip, hasn't yet
adapted to work properly with scoped storage; if you try doing so in
a Zulip that targets Android 10 but doesn't have this change, you
just get an error.  I've filed zulip#4283 with details of the issue and
what needs to be done to properly fix it.
This change will be required in order to upload new releases to the
Play Store, effective 2020-11-01, a couple of weeks from now.

The change causes Android 10 and later to apply to our app a number
of behavior changes introduced in that version, documented here:
  https://developer.android.com/about/versions/10/behavior-changes-10

After reading carefully through that documentation, I believe we
can rule out almost all the changes as possibly affecting us:
  zulip#3665 (comment)
except for one -- "scoped storage" -- and it seems likely that the
remaining don't either.  We've opted out of scoped storage for now,
in the previous commit.

We'll want to thoroughly test a beta version with this change
before shipping it broadly, to try to catch any remaining issues.

Fixes: zulip#3665
@gnprice gnprice merged commit 1f9c995 into zulip:master Oct 22, 2020
@gnprice gnprice deleted the pr-target29 branch October 22, 2020 22:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update Android targetSdkVersion to 29 (Android 10), by 2020-11 deadline
1 participant