[expo-updates][android] Bare update manifest non-nullability parity (#23166)
[expo-updates][Android] Fix rollback embedded update logic (#23244)
[expo-updates] Put extra data mutation in transaction (#22252)
[expo-updates][android] Re-add support for v1 of the protocol (#21256)# Why This PR re-applies support for v1 of the expo-updates protocol and fixes versioned code compilation and adds a featur
[expo-updates][android] Re-add support for v1 of the protocol (#21256)# Why This PR re-applies support for v1 of the expo-updates protocol and fixes versioned code compilation and adds a feature to avoid a logical breaking change for old SDK versions. # How This does 3 things (in 3 commits): 1. Reverts https://github.com/expo/expo/pull/21226, which itself was a revert of the initial feature implementation PRs: https://github.com/expo/expo/pull/20275 and https://github.com/expo/expo/pull/21007. These are unchanged. 2. Fixes compilation of versioned code. 3. Adds a compatibility mode flag for Expo Go. ## How the compatibility mode flag works Expo Updates protocol v1 is a superset of v0. The diff is that v1 supports directives and also allows empty requests. We want to request v1 of the protocol in all cases, but for Expo Go, we can't do anything with rollbacks or no-ops (the current new features); put another way, Expo Go requires a manifest (which happens to be v0 of the protocol). Therefore, when loading in Expo Go, we require a manifest and ignore directives. Here's what the error will look like in Expo Go if a rollback is fetched: <img width="250" alt="Screenshot 2023-02-16 at 11 58 30 AM" src="https://user-images.githubusercontent.com/189568/219480436-d87616dc-ed70-45ed-8831-18d7f18aa6fb.png"> # Test Plan Run new tests for compatibility mode. Test manually to capture screenshot. # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin).
show more ...
Revert: [expo-updates][android] Add support for version 1 of the protocol and directives and rollback to embedded update directive (#21226)# Why This reverts https://github.com/expo/expo/pull/20
Revert: [expo-updates][android] Add support for version 1 of the protocol and directives and rollback to embedded update directive (#21226)# Why This reverts https://github.com/expo/expo/pull/20275 and https://github.com/expo/expo/pull/21007. Reasoning: https://github.com/expo/expo/pull/20275#discussion_r1106532674 # How `git revert` # Test Plan Wait for CI to ensure this builds. # Checklist <!-- Please check the appropriate items below if they apply to your diff. This is required for changes to Expo modules. --> - [ ] Documentation is up to date to reflect these changes (eg: https://docs.expo.dev and README.md). - [ ] Conforms with the [Documentation Writing Style Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md) - [ ] This diff will work correctly for `expo prebuild` & EAS Build (eg: updated a module plugin).
[expo-updates][android] Add support for version 1 of the protocol and directives (#20275)
[expo-updates] add docblocks to most classes (#19491)
[expo-updates] Add log lines for the error scenarios we want to track (#18810)
[expo-updates][Android] Get downloaded update IDs (#17933)* [expo-updates][Android] Get downloaded update IDs Why In order for the dev client to be able to indicate in the UI whether a partic
[expo-updates][Android] Get downloaded update IDs (#17933)* [expo-updates][Android] Get downloaded update IDs Why In order for the dev client to be able to indicate in the UI whether a particular update is available to load offline, we need to add a method to the expo-updates-interface to let it see which updates are stored locally (in sqlite) and ready to load. It should be sufficient for this method to return a list of UUIDs for updates that have the READY status in sqlite. How New method ```java void storedUpdateIdsWithConfiguration(HashMap<String, Object> configuration, Context context, QueryCallback callback); ``` is added to the interface for Android. The implementation in `UpdatesDevLauncherController` calls into a new method in `DatabaseLauncher`, which uses a new query in `UpdateDao` to retrieve READY update UUIDs. Test Plan New unit tests are added to the existing `DatabaseLauncherTest` (Android test class) to verify the changes. * Address review comments * Address review comments
[expo-updates][android] Fix asset hash storage (#17732)
[ios][android][expo-updates] Change asset hash verification encoding to base64url (#16174)
[android][expo-updates] Turn off erroneously enabled exportSchema (#15855)
[expo-updates][android] Add code signing (#15514)
[expo-updates][android] Add updates datables migration transaction helper (#15560)
[expo-updates][android] Add support for multipart manifest responses (#15401)
[expo-updates][android] hook up error recovery in rest of module (#15222)
[expo-updates] add DEFAULT 0 to new error recovery DB columns (#15360)
[expo-updates][android] add database fields for error recovery (#15218)
[expo-updates][android] track build configuration data (#15045)
[expo-updates] retain embedded asset fields when merging asset entities (#15123)
[expo-updates] check for duplicate asset rows when reaping (#15049)
[expo-updates][android] Kotlinize expo-updates (#14818)
[expo-updates][android][sqlite] make assets.type nullable (#14499)
[expo-manifests] Rename RawManifest -> Manifest (#14194)
[expo-updates] Factor out raw manifests into their own package (#14183)
123