[web-browser] Support CSS colors (#18586)
[web-browser] Fix `service not registered` exception on Android (#17855)# Why Fixes: ``` java.lang.IllegalArgumentException: Service not registered: expo.modules.webbrowser.CustomTabsConnectio
[web-browser] Fix `service not registered` exception on Android (#17855)# Why Fixes: ``` java.lang.IllegalArgumentException: Service not registered: expo.modules.webbrowser.CustomTabsConnectionHelper@2d945db at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1967) at android.app.ContextImpl.unbindService(ContextImpl.java:2028) at android.content.ContextWrapper.unbindService(ContextWrapper.java:856) at android.content.ContextWrapper.unbindService(ContextWrapper.java:856) at expo.modules.webbrowser.CustomTabsConnectionHelper.unbindService(CustomTabsConnectionHelper.kt:89) at expo.modules.webbrowser.CustomTabsConnectionHelper.destroy(CustomTabsConnectionHelper.kt:18) at expo.modules.webbrowser.WebBrowserModule$definition$lambda-11$$inlined$OnActivityDestroys$1.invoke(ModuleDefinitionBuilder.kt:556) at expo.modules.webbrowser.WebBrowserModule$definition$lambda-11$$inlined$OnActivityDestroys$1.invoke(ModuleDefinitionBuilder.kt:486) at expo.modules.kotlin.events.BasicEventListener.call(EventListener.kt:13) at expo.modules.kotlin.ModuleHolder.post(ModuleHolder.kt:64) at expo.modules.kotlin.ModuleRegistry.post(ModuleRegistry.kt:53) at expo.modules.kotlin.AppContext.onHostDestroy(AppContext.kt:196) at expo.modules.kotlin.ReactLifecycleDelegate.onHostDestroy(ReactLifecycleDelegate.kt:29) at com.facebook.react.bridge.ReactContext.onHostDestroy(ReactContext.java:305) at com.facebook.react.ReactInstanceManager.moveToBeforeCreateLifecycleState(ReactInstanceManager.java:811) at com.facebook.react.ReactInstanceManager.destroy(ReactInstanceManager.java:748) at com.facebook.react.ReactNativeHost.clear(ReactNativeHost.java:62) at expo.modules.devlauncher.DevLauncherController.clearHost(DevLauncherController.kt:262) at expo.modules.devlauncher.DevLauncherController.access$clearHost(DevLauncherController.kt:58) at expo.modules.devlauncher.DevLauncherController$ensureHostWasCleared$1.invoke(DevLauncherController.kt:245) at expo.modules.devlauncher.DevLauncherController$ensureHostWasCleared$1.invoke(DevLauncherController.kt:244) at expo.modules.devlauncher.helpers.DevLauncherCoroutinesExtensionsKt$runBlockingOnMainThread$1.invokeSuspend(DevLauncherCoroutinesExtensions.kt:19) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:233) at android.os.Looper.loop(Looper.java:344) at android.app.ActivityThread.main(ActivityThread.java:8184) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:584) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1034) ``` # How It's turned out that we can't unbind service that wasn't bound before. So, I've added a check to make sure that the service will be unbounded only if was previously bound. # Test Plan - NCL
show more ...
[web-browser][android] Rewrite module to Sweet API (#17454)- Created `ModuleDefinition` for `WebBrowserModule`, moved methods there, and updated `expo-module.config.json` to take this class into ac
[web-browser][android] Rewrite module to Sweet API (#17454)- Created `ModuleDefinition` for `WebBrowserModule`, moved methods there, and updated `expo-module.config.json` to take this class into account - Replaced `ReadableArguments` with `OpenBrowserOptions` record for `openBrowserAsync` - Made all exceptions inherit from Sweet `CodedException` (in favor of legacy unimodules counterpart). Kept error codes for backwards compatibility. - Replaced `CustomTabsActivitiesHelper` and `CustomTabsConnectionHelper` internal unimodules with plain class instantiations. Merged their interface+implementation: `CustomTabsActivitiesHelper (interface)` + `InternalCustomTabsActivitiesHelper (impl)` -> just `CustomTabsActivitiesHelper (impl)` - Migrated native unit tests - Updated `ExperiencePackagePicker` to use expo-module - Deleted the `WebBrowserPackage` from both `ExperiencePackagePicker` and `HomeActivity`. > It was listed as a package to be added to modules used in Home, but from what I discovered, sweet expo-modules are always loaded.
[web-browser] Rewrite Android code to Kotlin (#17195)Auto convert + some manual tweaks. Took special care of null safety, it is not so obvious in this module. There are still areas to improve, but
[web-browser] Rewrite Android code to Kotlin (#17195)Auto convert + some manual tweaks. Took special care of null safety, it is not so obvious in this module. There are still areas to improve, but I'll take care of them when converting to expo-module. * Kotlinize module file * Kotlinize errors * Kotlinize client actions queue * Kotlinize activities helper * Kotlinize connection helper * Fix tests * Apply spotless * Apply suggestions from code review * Update CHANGELOG
[expo-modules] Move code from `unimodules` into `expo-modules-core` (#13703)# Why Migrated `unimodules-core`, `unimodules-react-native-adapter`, `unimodules-app-loader` into `expo-modules-core`
[expo-modules] Move code from `unimodules` into `expo-modules-core` (#13703)# Why Migrated `unimodules-core`, `unimodules-react-native-adapter`, `unimodules-app-loader` into `expo-modules-core` # How - Change package using AS refactor tools - Fix some places where AS wasn't able to do automatically - Fix compatibility with new auto-linking - Ensure that classes which are used during installation steps are still available in the old place # Test Plan - expo-go (tested using unversioned and 41) - bare-expo
[android][web-browser] Add option to not open browser in new task (#12462)# Why The addition of this option can improve the user experience for users of apps using this dependency. By not naviga
[android][web-browser] Add option to not open browser in new task (#12462)# Why The addition of this option can improve the user experience for users of apps using this dependency. By not navigating "outside" of the app but instead keeping the users within the app will provide a more seamless experience. I found an issue addressing this [here](https://github.com/expo/expo/issues/11963). This addition will also make the user experience for iOS and Android similar, as the iOS implementation already does this by default. # How I created an additional browser option for Android called `createTask` which prevents the addition of the flag This resulted in the expected behaviour of the feature and it still maintained the capability of linking back to the application in case of authentication flow. The default value of this option is set to `true`, which essentially will act in the same way prior to this feature. # Test Plan I primarily used the bare-expo app on an emulator running Chrome to be as close as possible to simulate how it would work in practice. In the following demo I show how it works in the bare-expo app using both `openBrowserAsync()` and `openAuthSessionAsync`.  I also added an additional test case to the native tests to make sure the intent flags are set correctly. <img width="592" alt="Screen Shot 2021-04-08 at 23 31 45" src="https://user-images.githubusercontent.com/10698008/114099129-9d981800-98c2-11eb-83f0-d89bd42e477c.png">
[native-tests][android] Unit testing library and config for android. (#8137)Added 'unimodules-test-core' as a base module for testing android modules. Refactored and added tests in expo-web-browse
[native-tests][android] Unit testing library and config for android. (#8137)Added 'unimodules-test-core' as a base module for testing android modules. Refactored and added tests in expo-web-browser to showcase usage of the library.
[expo-web-browser][android] Add support for secondaryToolbarColor (#8615)Add support for secondaryToolbarColor
[expo-webbrowser] Add new parapeters to Webbrowser.Add "enableDefaultShareMenuItem", "dismissButtonStyle" and "readerMode" options to WebBrowser. Co-authored-by: Linus Unnebäck <linus@folkdator
[expo-webbrowser] Add new parapeters to Webbrowser.Add "enableDefaultShareMenuItem", "dismissButtonStyle" and "readerMode" options to WebBrowser. Co-authored-by: Linus Unnebäck <[email protected]>
Migrate to androidx (#5521)# Why resolves: https://github.com/expo/expo/issues/5260 # How https://developer.android.com/jetpack/androidx/migrate https://blog.danlew.net/2018/11/14/the-rea
Migrate to androidx (#5521)# Why resolves: https://github.com/expo/expo/issues/5260 # How https://developer.android.com/jetpack/androidx/migrate https://blog.danlew.net/2018/11/14/the-reality-of-migrating-to-androidx/ https://gist.github.com/loganj/7535a13e98be83460f362b63dbd13e07 # Test Plan Run NCL, native tests (androidTest, test)
[webbrowser][android]Add configuration option to show web browser in … (#5442)…recents on android. # Why Fix in WebBrowser introduced behavior that is not expected by users, even though we in
[webbrowser][android]Add configuration option to show web browser in … (#5442)…recents on android. # Why Fix in WebBrowser introduced behavior that is not expected by users, even though we introduced it consciously. Hence, we want to give users an option to configure showing/hiding web browser i recents in cases they find default behavior wrong. # Test Plan There is new switch in WebBrowser screen in NCL.
[web-browser] Open Custom Tab in new task in order to allow closing it with deeplink to app. (#4882)# Why We reorder experience task to front when deeplink is fired from Custom Tab. In order to
[web-browser] Open Custom Tab in new task in order to allow closing it with deeplink to app. (#4882)# Why We reorder experience task to front when deeplink is fired from Custom Tab. In order to get back to Experience, not Custom Tabs, the latter needs to be in seperate task.
[unimodules][android] Change ModuleRegistryConsumer to RegistryLifecycleListener (#4345)# Why Modules need to know when they should release resources.
[expo-web-browser] Add better CustomTabs support, remove unnecessary activity, more fixes (#3717)# Why Another extensions to WebBrowser module to better cover functionalities provided by both Cu
[expo-web-browser] Add better CustomTabs support, remove unnecessary activity, more fixes (#3717)# Why Another extensions to WebBrowser module to better cover functionalities provided by both CustomTabs and SFSafariViewController. # Test Plan Each new functionality has corresponding field to test in in WebBrowserScreen.
[packages] Move unimodules foundation to `org.unimodules` scope
[expo-web-browser] Major Android improvements (#3691)# Why 1. Fix issue [#2838](https://github.com/expo/expo/issues/2838) 2. Add switch in DocumentPickerScreen to enable testing this copyToCach
[expo-web-browser] Major Android improvements (#3691)# Why 1. Fix issue [#2838](https://github.com/expo/expo/issues/2838) 2. Add switch in DocumentPickerScreen to enable testing this copyToCache switch 3. Add support for new arguments in WebBrowserModule. # Test Plan WebBrowserScreen has additional fields to test all arguments supported by each platform. DocumentPickerScreen has new switch.
[expo-web-browser] Extract WebBrowser API to a universal module (#3374)* [expo-web-browser] Generate universal module from template * [expo-web-browser] Move TS code to expo-web-browser * [ex
[expo-web-browser] Extract WebBrowser API to a universal module (#3374)* [expo-web-browser] Generate universal module from template * [expo-web-browser] Move TS code to expo-web-browser * [expo-web-browser] Move iOS code to expo-web-browser * [expo-web-browser] Move Android code to expo-web-browser * [docs] Add a note about WebBrowser.dismissBrowser() not doing anything on Android * [jest-expo] Update mocks * [expo-facebook] WebBrowser moved to universal modules