Revision Date Author Comments
# 229dec0d 22-Sep-2023 Łukasz Kosmaty <[email protected]>

[notifications][Android] Convert all exported modules to new API (#24499)

# Why

Converts all exported modules to new API in `expo-notifications`.

# Test Plan

- bare-expo ✅
- expo go ✅


# 8e6653a3 28-Aug-2023 Wojciech Dróżdż <[email protected]>

[secure-store][android] Secure store audit (#23804)

# Why
ENG-6327
Secure-store was using the old modules API. We wanted to add synchronous
functions to the API, so it's possible to use SecureSto

[secure-store][android] Secure store audit (#23804)

# Why
ENG-6327
Secure-store was using the old modules API. We wanted to add synchronous
functions to the API, so it's possible to use SecureStore in the global
JS scope. During the migration I've also found some bugs/unexpected
behaviours which were corrected

# How

- Migrated `secure-store` to Kotlin and the new modules API
- Changed callback-based authentication prompt to Kotlin coroutines
- Added `getItemSync` and `setItemSync` functions
- Both functions call the same functions as Async versions, but on the
main thread
- It is now possible to save values which require authentication and
ones that don't under one keychain on the JS side. This is archived by
creating two separate keys on the native side.
- Before it wasn't possible to save a no-authentication value under a
keychain, which was initialised with a require-auth value (an exception
was thrown). It was possible to save a value which requires
authentication into a keychain which was already initialised as no-auth,
but it wasn't really encrypted with the necessity of auth and could've
been decrypted without authentication (although `secure-store` always
asked for biometrics correctly)
- It is now possible to save values under different keychains but the
same key. `Secure-store` can now differentiate between them. Before
saving `value1` under `key1` and `keychain1` and `value2` under `key1`
and `keychain2` would overwrite the `value1` under `key1` with a new
value. Now they are separate. This archived by saving the items in
shared preferences under a key which includes the keychain eq.
`keychain1-key1` and `keychain2-key1`. This emulates the `ios`
`secure-store` behavior
- Backwards compatibility with the current naming scheme of keystore
aliases has been kept
- Improved invalidated key exception handling. When removing a key from
the key store all values under that key will be removed from shared
preferences in order to avoid exceptions caused by decryption fails.
This doesn't apply to values stored with previous versions of
`expo-secure-store` as it is not possible to determine if value was
stored with a keychain without making an decryption attempt.
- Updated the docs
- Removed SDK20 read support

# Test Plan

Tested in Bare Expo and Expo Go on a physical android 13 and 7 devices
(forced api < 23 functions on android 7 only for testing since we don't
have such an old device)

---------

Co-authored-by: Expo Bot <[email protected]>

show more ...


# fcc3d068 26-Jul-2023 Łukasz Kosmaty <[email protected]>

[go][Android] Add `ExpoGoModule` (#23710)

# Why

Adds an almost empty `ExpoGoModule` specific to the Expo Go app. This module is present in the Home app too.

# How

Add a decorator function

[go][Android] Add `ExpoGoModule` (#23710)

# Why

Adds an almost empty `ExpoGoModule` specific to the Expo Go app. This module is present in the Home app too.

# How

Add a decorator function that allows us to extend created `AppContext`.

# Test Plan

- run an experience in the expo go app and check if the `ExpoGoModule` is present ✅

show more ...


# 4fde8ae7 07-Jun-2023 Alan Hughes <[email protected]>

[android][file-system] Migrate to new modules API (#22728)

[android][file-system] Migrate to new modules API (#22728)


# fa5bb8bd 01-Oct-2021 Kudo Chien <[email protected]>

[android][tools] fix android shell app errors for sdk 43 (#14613)

# Why

fix android shell app for sdk 43

# How

- `et android-build-packages`
- fix an exception for `ScopedContext` cannot d

[android][tools] fix android shell app errors for sdk 43 (#14613)

# Why

fix android shell app for sdk 43

# How

- `et android-build-packages`
- fix an exception for `ScopedContext` cannot downcast to `ReactContext`. the exception is from here: https://github.com/expo/expo/blob/b319832785511f1b253530e5d2357ea7c394bc28/packages/expo-modules-core/android/src/main/java/expo/modules/adapters/react/ReactAdapterPackage.java#L26-L29
i checked sdk-42 code where it also passing `scopedContext` in `DetachedModuleRegistryAdapter`. since there are much change, i didn't trace down which commit cause the change. anyway it looks like passing `reactContext` make sense.
- support to pass `--privateConfigFile` in `et android-shell-app`
- xdl also needs some changes: https://github.com/expo/xdl/pull/40

# Test Plan

`et android-build-packages --packages all`
`et android-shell-app --url "https://staging.exp.host/@kudochien/native-component-list-next/index.exp?sdkVersion=43.0.0" --sdkVersion 43.0.0 --privateConfigFile privateConfig.json`

show more ...


# 5db43c74 05-Sep-2021 Will Schurman <[email protected]>

[expo-manifests] Remove reliance upon stableLegacyId/originalFullName (#14265)


# 280cec8a 31-Aug-2021 Will Schurman <[email protected]>

[android] Kotlinize scoped universal modules (#14168)


# 50661f5c 30-Aug-2021 Will Schurman <[email protected]>

[expo-manifests] Rename RawManifest -> Manifest (#14194)


# 706a476d 26-Aug-2021 Will Schurman <[email protected]>

[expo-updates] Factor out raw manifests into their own package (#14183)


# 2dd697a6 17-Aug-2021 Will Schurman <[email protected]>

[android] Kotlinize headless and detached app stuff (#14000)