expo-dev-launcher 6.0.0-canary-20250404-3c3b5fd → 6.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +116 -2
- package/android/build.gradle +41 -5
- package/android/src/debug/AndroidManifest.xml +8 -1
- package/android/src/debug/java/expo/modules/devlauncher/DevLauncherController.kt +50 -23
- package/android/src/debug/java/expo/modules/devlauncher/DevLauncherPackageDelegate.kt +1 -3
- package/android/src/debug/java/expo/modules/devlauncher/compose/AuthActivity.kt +136 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/BindingView.kt +22 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/DevLauncherBottomTabsNavigator.kt +128 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/Session.kt +33 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/UpdatesModels.kt +14 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/BranchViewModel.kt +105 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/BranchesViewModel.kt +157 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/CrashReportModel.kt +22 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/ErrorViewModel.kt +50 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/HomeViewModel.kt +120 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/ProfileViewModel.kt +82 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/models/SettingsViewModel.kt +89 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/Accordion.kt +93 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/Asyncimage.kt +39 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/CircularProgressBar.kt +89 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/primitives/DefaultScaffold.kt +25 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/CrashReport.kt +38 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Home.kt +48 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Profile.kt +150 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Routes.kt +20 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Settings.kt +18 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/routes/Updates.kt +97 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/BranchScreen.kt +265 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/BranchesScreen.kt +360 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/CrashReportScreen.kt +220 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/ErrorScreen.kt +79 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/HomeScreen.kt +424 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/NoUpdatesScreen.kt +90 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/screens/SettingsScreen.kt +307 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AccountAvatar.kt +44 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AccountSelector.kt +88 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ActionButton.kt +85 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AppHeader.kt +140 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/AppLoadingErrorDialog.kt +81 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/BottomSheet.kt +84 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/BottomTabBar.kt +79 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/BottomTabButton.kt +72 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/DevelopmentServerHelp.kt +55 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ProfileLayout.kt +53 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/RunningAppCard.kt +115 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ScreenHeaderContainer.kt +25 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/SectionHeader.kt +20 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/ServerUrlInput.kt +118 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/ui/SignUp.kt +42 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/utils/DateFormat.kt +40 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/utils/UpdatesUtils.kt +12 -0
- package/android/src/debug/java/expo/modules/devlauncher/compose/utils/WithIsLast.kt +32 -0
- package/android/src/debug/java/expo/modules/devlauncher/helpers/DevLauncherReactUtils.kt +9 -9
- package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherActivity.kt +14 -105
- package/android/src/debug/java/expo/modules/devlauncher/launcher/errors/DevLauncherErrorActivity.kt +32 -81
- package/android/src/debug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherExpoAppLoader.kt +2 -2
- package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherBridgeDevSupportManager.kt +5 -4
- package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherBridgelessDevSupportManager.kt +3 -2
- package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherDevSupportManagerSwapper.kt +17 -26
- package/android/src/debug/java/expo/modules/devlauncher/react/DevLauncherReactNativeHostHandler.kt +0 -5
- package/android/src/debug/java/expo/modules/devlauncher/services/ApolloClientService.kt +98 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/AppService.kt +82 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/DependencyInjection.kt +87 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/ErrorRegistryService.kt +13 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/HttpClientService.kt +84 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/ImageLoaderService.kt +81 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/PackagerService.kt +158 -0
- package/android/src/debug/java/expo/modules/devlauncher/services/SessionService.kt +112 -0
- package/android/src/debug/res/drawable-mdpi/qr_code.png +0 -0
- package/android/src/debug/res/drawable-night-mdpi/qr_code.png +0 -0
- package/android/src/debug/res/drawable-night-xhdpi/qr_code.png +0 -0
- package/android/src/debug/res/drawable-night-xxhdpi/qr_code.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/qr_code.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/qr_code.png +0 -0
- package/android/src/main/AndroidManifest.xml +6 -1
- package/android/src/main/graphql/GetBranches.graphql +44 -0
- package/android/src/main/graphql/GetUpdates.graphql +21 -0
- package/android/src/main/graphql/Me.graphql +18 -0
- package/android/src/main/graphql/schema.graphqls +9850 -0
- package/android/src/main/java/com/facebook/react/devsupport/DevLauncherDevServerHelper.kt +7 -7
- package/android/src/main/java/com/facebook/react/devsupport/NonFinalBridgeDevSupportManager.kt +109 -0
- package/android/src/main/java/com/facebook/react/devsupport/NonFinalBridgelessDevSupportManager.kt +93 -0
- package/android/src/main/java/expo/modules/devlauncher/launcher/DevLauncherControllerInterface.kt +0 -1
- package/android/src/main/java/expo/modules/devlauncher/launcher/DevLauncherRecentlyOpenedAppsRegistry.kt +10 -9
- package/android/src/main/java/expo/modules/devlauncher/launcher/errors/DevLauncherErrorRegistry.kt +7 -6
- package/android/src/main/java/expo/modules/devlauncher/react/activitydelegates/DevLauncherReactActivityNOPDelegate.kt +2 -2
- package/android/src/main/java/expo/modules/devlauncher/splashscreen/DevLauncherSplashScreen.kt +0 -2
- package/android/src/main/res/drawable/arrow_right.xml +9 -0
- package/android/src/main/res/drawable/check_circle.xml +10 -0
- package/android/src/main/res/drawable/chevron_right.xml +10 -0
- package/android/src/main/res/drawable/copy.xml +13 -0
- package/android/src/main/res/drawable/expo_logo.xml +9 -0
- package/android/src/main/res/drawable/home.xml +10 -0
- package/android/src/main/res/drawable/inspect.xml +10 -0
- package/android/src/main/res/drawable/log_in.xml +12 -0
- package/android/src/main/res/drawable/pulse.xml +10 -0
- package/android/src/main/res/drawable/reload.xml +10 -0
- package/android/src/main/res/drawable/scan.xml +42 -0
- package/android/src/main/res/drawable/settings.xml +14 -0
- package/android/src/main/res/drawable/show_at_launch.xml +12 -0
- package/android/src/main/res/drawable/signal.xml +26 -0
- package/android/src/main/res/drawable/user.xml +13 -0
- package/android/src/main/res/drawable-mdpi/dev_menu_fab_icon.png +0 -0
- package/android/src/main/res/drawable-xhdpi/dev_menu_fab_icon.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/dev_menu_fab_icon.png +0 -0
- package/android/src/main/res/layout/error_fragment.xml +2 -0
- package/android/src/main/res/values/styles.xml +6 -9
- package/android/src/release/java/expo/modules/devlauncher/DevLauncherController.kt +0 -3
- package/expo-dev-launcher-gradle-plugin/build.gradle.kts +1 -1
- package/expo-dev-launcher.podspec +4 -4
- package/expo-module.config.json +0 -2
- package/ios/Assets.xcassets/Contents.json +6 -0
- package/ios/Assets.xcassets/TabBarTint.colorset/Contents.json +38 -0
- package/ios/Assets.xcassets/branch-icon.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/expo-go-logo.imageset/Contents.json +21 -0
- package/ios/Assets.xcassets/expo-go-logo.imageset/expo-go logo.png +0 -0
- package/ios/Assets.xcassets/extensions-icon.imageset/Contents.json +26 -0
- package/ios/Assets.xcassets/extensions.imageset/Contents.json +23 -0
- package/ios/Assets.xcassets/log-in.imageset/Contents.json +21 -0
- package/ios/Assets.xcassets/log-in.imageset/log-in.png +0 -0
- package/ios/Assets.xcassets/refresh-icon.imageset/Contents.json +23 -0
- package/ios/Assets.xcassets/shake-device.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/show-menu-at-launch.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/terminal-icon.imageset/Contents.json +23 -0
- package/ios/Assets.xcassets/three-finger-long-press.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/update-icon.imageset/Contents.json +56 -0
- package/ios/Assets.xcassets/user-icon.imageset/Contents.json +56 -0
- package/ios/EXDevLauncherController.h +4 -0
- package/ios/EXDevLauncherController.m +42 -30
- package/ios/EXDevLauncherInstallationIDHelper.swift +6 -0
- package/ios/EXDevLauncherPendingDeepLinkRegistry.swift +2 -0
- package/ios/EXDevLauncherRecentlyOpenedAppsRegistry.swift +1 -0
- package/ios/EXDevLauncherURLHelper.swift +32 -30
- package/ios/EXDevLauncherUtils.swift +2 -11
- package/ios/Errors/EXDevLauncherErrorManager.swift +44 -25
- package/ios/Manifest/EXDevLauncherManifestHelper.swift +14 -10
- package/ios/ReactDelegateHandler/ExpoDevLauncherReactDelegateHandler.swift +1 -1
- package/ios/ReactNative/EXDevLauncherBundleURLProviderInterceptor.swift +2 -0
- package/ios/SwiftUI/AccountSheet.swift +240 -0
- package/ios/SwiftUI/CrashReportView.swift +183 -0
- package/ios/SwiftUI/Data.swift +34 -0
- package/ios/SwiftUI/DevLauncherErrors.swift +38 -0
- package/ios/SwiftUI/DevLauncherTabBarManager.swift +32 -0
- package/ios/SwiftUI/DevLauncherViewController.swift +55 -0
- package/ios/SwiftUI/DevLauncherViewModel.swift +400 -0
- package/ios/SwiftUI/DevLauncherViews.swift +121 -0
- package/ios/SwiftUI/DevServerInfoModal.swift +88 -0
- package/ios/SwiftUI/DevServersView.swift +182 -0
- package/ios/SwiftUI/ErrorView.swift +94 -0
- package/ios/SwiftUI/GraphQL/APIClient.swift +83 -0
- package/ios/SwiftUI/GraphQL/Models.swift +116 -0
- package/ios/SwiftUI/GraphQL/Queries.swift +150 -0
- package/ios/SwiftUI/HomeTabView.swift +78 -0
- package/ios/SwiftUI/Navigation/Navigation.swift +134 -0
- package/ios/SwiftUI/SettingsTabView.swift +231 -0
- package/ios/SwiftUI/StackFrameView.swift +29 -0
- package/ios/SwiftUI/UpdatesTab/NotSignedInView.swift +45 -0
- package/ios/SwiftUI/UpdatesTab/NotUsingUpdatesView.swift +38 -0
- package/ios/SwiftUI/UpdatesTab/UpdateRow.swift +78 -0
- package/ios/SwiftUI/UpdatesTab/UpdateUtils.swift +5 -0
- package/ios/SwiftUI/UpdatesTab/UpdatesListView.swift +200 -0
- package/ios/SwiftUI/UpdatesTab/UpdatesTabView.swift +26 -0
- package/ios/SwiftUI/Utils/Avatar.swift +66 -0
- package/ios/SwiftUI/Utils/Utils.swift +71 -0
- package/ios/Tests/EXDevLauncherControllerTest.swift +0 -10
- package/ios/Tests/EXDevLauncherRecentlyOpenedAppsRegistryTests.swift +4 -4
- package/ios/Tests/EXDevLauncherURLHelperTests.swift +4 -4
- package/ios/Unsafe/RCTPackagerConnection+EXDevLauncherPackagerConnectionInterceptor.m +19 -5
- package/package.json +5 -47
- package/android/src/debug/assets/expo_dev_launcher_android.bundle +0 -1410
- package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherReactHost.kt +0 -104
- package/android/src/debug/java/expo/modules/devlauncher/launcher/DevLauncherReactNativeHost.kt +0 -65
- package/android/src/debug/java/expo/modules/devlauncher/modules/DevLauncherAuth.kt +0 -72
- package/android/src/debug/res/drawable-mdpi/__node_modules_reactnavigation_elements_lib_module_assets_backicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/__node_modules_reactnavigation_elements_lib_module_assets_backiconmask.png +0 -0
- package/android/src/debug/res/drawable-mdpi/__node_modules_reactnavigation_elements_lib_module_assets_clearicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/__node_modules_reactnavigation_elements_lib_module_assets_closeicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/__node_modules_reactnavigation_elements_lib_module_assets_searchicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_branchiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_checkiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_clipboardicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_debugicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_extensionsfilledactiveicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_extensionsfilledactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_extensionsfilledinactiveicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_extensionsfilledinactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_extensionsiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_homefilledactiveicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_homefilledactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_homefilledinactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_infoiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_inspectelementicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_loadingindicatoricon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_performanceicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_questionmarkicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_refreshicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_runicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_settingsfilledactiveicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_settingsfilledactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_settingsfilledinactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_showmenuatlaunchiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_threefingerlongpressiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_toolbaroverlayicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_updateiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_usericonlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_warningtriangleicon.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_warningtriangleiconlight.png +0 -0
- package/android/src/debug/res/drawable-mdpi/_expodevclientcomponents_assets_xiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/__node_modules_reactnavigation_elements_lib_module_assets_backicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/__node_modules_reactnavigation_elements_lib_module_assets_clearicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/__node_modules_reactnavigation_elements_lib_module_assets_closeicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/__node_modules_reactnavigation_elements_lib_module_assets_searchicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_branchiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_checkiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_clipboardicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_debugicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_extensionsfilledactiveicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_extensionsfilledactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_extensionsfilledinactiveicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_extensionsfilledinactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_extensionsiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_homefilledactiveicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_homefilledactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_homefilledinactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_infoiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_inspectelementicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_loadingindicatoricon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_performanceicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_questionmarkicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_refreshicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_runicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_settingsfilledactiveicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_settingsfilledactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_settingsfilledinactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_showmenuatlaunchiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_threefingerlongpressiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_toolbaroverlayicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_updateiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_usericonlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_warningtriangleicon.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_warningtriangleiconlight.png +0 -0
- package/android/src/debug/res/drawable-xhdpi/_expodevclientcomponents_assets_xiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_backicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_clearicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_closeicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_searchicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_branchiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_checkiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_clipboardicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_debugicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_extensionsfilledactiveicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_extensionsfilledactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_extensionsfilledinactiveicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_extensionsfilledinactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_extensionsiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_homefilledactiveicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_homefilledactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_homefilledinactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_infoiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_inspectelementicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_loadingindicatoricon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_performanceicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_questionmarkicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_refreshicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_runicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_settingsfilledactiveicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_settingsfilledactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_settingsfilledinactiveiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_showmenuatlaunchiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_threefingerlongpressiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_toolbaroverlayicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_updateiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_usericonlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_warningtriangleicon.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_warningtriangleiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxhdpi/_expodevclientcomponents_assets_xiconlight.png +0 -0
- package/android/src/debug/res/drawable-xxxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_backicon.png +0 -0
- package/android/src/debug/res/drawable-xxxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_clearicon.png +0 -0
- package/android/src/debug/res/drawable-xxxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_closeicon.png +0 -0
- package/android/src/debug/res/drawable-xxxhdpi/__node_modules_reactnavigation_elements_lib_module_assets_searchicon.png +0 -0
- package/android/src/main/java/com/facebook/react/devsupport/NonFinalBridgeDevSupportManager.java +0 -140
- package/android/src/main/java/com/facebook/react/devsupport/NonFinalBridgelessDevSupportManager.java +0 -134
- package/android/src/main/java/expo/modules/devlauncher/modules/DevLauncherInternalModule.kt +0 -237
- package/android/src/main/res/drawable-mdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
- package/android/src/main/res/drawable-xhdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/_expodevclientcomponents_assets_logoicon.png +0 -0
- package/android/src/testDebug/java/expo/modules/devlauncher/DevLauncherControllerTest.kt +0 -50
- package/android/src/testDebug/java/expo/modules/devlauncher/launcher/DevLauncherRecentlyOpenedAppsRegistryTest.kt +0 -44
- package/android/src/testDebug/java/expo/modules/devlauncher/launcher/loaders/DevLauncherAppLoaderFactoryTest.kt +0 -181
- package/android/src/testDebug/java/expo/modules/devlauncher/modules/DevLauncherModuleTest.kt +0 -40
- package/app.plugin.js +0 -1
- package/build/DevLauncher.d.ts +0 -22
- package/build/DevLauncher.d.ts.map +0 -1
- package/build/DevLauncher.js +0 -16
- package/build/DevLauncher.js.map +0 -1
- package/build/DevLauncherErrorManager.d.ts +0 -9
- package/build/DevLauncherErrorManager.d.ts.map +0 -1
- package/build/DevLauncherErrorManager.js +0 -66
- package/build/DevLauncherErrorManager.js.map +0 -1
- package/build/DevLauncherErrorManager.web.d.ts +0 -2
- package/build/DevLauncherErrorManager.web.d.ts.map +0 -1
- package/build/DevLauncherErrorManager.web.js +0 -5
- package/build/DevLauncherErrorManager.web.js.map +0 -1
- package/build/WebUnsupportedError.d.ts +0 -4
- package/build/WebUnsupportedError.d.ts.map +0 -1
- package/build/WebUnsupportedError.js +0 -6
- package/build/WebUnsupportedError.js.map +0 -1
- package/build/setUpErrorHandler.fx.d.ts +0 -2
- package/build/setUpErrorHandler.fx.d.ts.map +0 -1
- package/build/setUpErrorHandler.fx.js +0 -4
- package/build/setUpErrorHandler.fx.js.map +0 -1
- package/build/setUpErrorHandler.fx.web.d.ts +0 -1
- package/build/setUpErrorHandler.fx.web.d.ts.map +0 -1
- package/build/setUpErrorHandler.fx.web.js +0 -1
- package/build/setUpErrorHandler.fx.web.js.map +0 -1
- package/bundle/App.tsx +0 -105
- package/bundle/StatusBarMock.js +0 -3
- package/bundle/apiClient.ts +0 -69
- package/bundle/components/ActivityIndicator.tsx +0 -33
- package/bundle/components/AppHeader.tsx +0 -99
- package/bundle/components/Avatar.tsx +0 -96
- package/bundle/components/BaseModal.tsx +0 -42
- package/bundle/components/BasicButton.tsx +0 -65
- package/bundle/components/DeepLinkModal.tsx +0 -169
- package/bundle/components/DevServerExplainerModal.tsx +0 -27
- package/bundle/components/EASUpdatesRows.tsx +0 -261
- package/bundle/components/EmptyBranchesMessage.tsx +0 -106
- package/bundle/components/FlatList.tsx +0 -56
- package/bundle/components/ListButton.tsx +0 -37
- package/bundle/components/LoadAppErrorModal.tsx +0 -12
- package/bundle/components/LoadInitialData.tsx +0 -27
- package/bundle/components/LogoutConfirmationModal.tsx +0 -46
- package/bundle/components/PulseIndicator.tsx +0 -56
- package/bundle/components/SafeAreaTop.tsx +0 -8
- package/bundle/components/ScreenContainer.tsx +0 -8
- package/bundle/components/Splash.tsx +0 -12
- package/bundle/components/Toasts.tsx +0 -60
- package/bundle/components/UrlDropdown.tsx +0 -156
- package/bundle/functions/createAsyncStack.ts +0 -240
- package/bundle/functions/debounce.ts +0 -7
- package/bundle/functions/formatUpdateUrl.ts +0 -6
- package/bundle/functions/getDevSessionsAsync.ts +0 -96
- package/bundle/functions/getInitialData.ts +0 -67
- package/bundle/functions/getRecentRuntime.ts +0 -7
- package/bundle/functions/getServerUrlFromDevSession.ts +0 -12
- package/bundle/functions/getUserProfileAsync.ts +0 -49
- package/bundle/functions/restoreUserAsync.ts +0 -16
- package/bundle/functions/sleepAsync.ts +0 -3
- package/bundle/functions/startAuthSessionAsync.ts +0 -23
- package/bundle/functions/validateUrl.ts +0 -11
- package/bundle/hooks/useDebounce.tsx +0 -44
- package/bundle/hooks/useDevMenuPreferences.tsx +0 -100
- package/bundle/hooks/useIsMounted.ts +0 -16
- package/bundle/hooks/useOnUpdatePress.tsx +0 -67
- package/bundle/index.ts +0 -13
- package/bundle/native-modules/DevLauncherAuth.ts +0 -125
- package/bundle/native-modules/DevLauncherInternal.ts +0 -101
- package/bundle/native-modules/DevMenuPreferences.ts +0 -18
- package/bundle/providers/AppProviders.tsx +0 -88
- package/bundle/providers/BuildInfoProvider.tsx +0 -30
- package/bundle/providers/CrashReportProvider.tsx +0 -18
- package/bundle/providers/DevMenuPreferencesProvider.tsx +0 -100
- package/bundle/providers/DevSessionsProvider.tsx +0 -72
- package/bundle/providers/ModalStackProvider.tsx +0 -100
- package/bundle/providers/PendingDeepLinkProvider.tsx +0 -52
- package/bundle/providers/QueryProvider.tsx +0 -40
- package/bundle/providers/RecentlyOpenedAppsProvider.tsx +0 -121
- package/bundle/providers/ToastStackProvider.tsx +0 -156
- package/bundle/providers/UpdatesConfigProvider.tsx +0 -14
- package/bundle/providers/UserContextProvider.tsx +0 -105
- package/bundle/queries/useBranchesForApp.tsx +0 -212
- package/bundle/queries/useChannelsForApp.tsx +0 -65
- package/bundle/queries/useUpdatesForBranch.tsx +0 -124
- package/bundle/screens/BranchesScreen.tsx +0 -199
- package/bundle/screens/CrashReportScreen.tsx +0 -107
- package/bundle/screens/ExtensionsScreen.tsx +0 -335
- package/bundle/screens/ExtensionsStack.tsx +0 -41
- package/bundle/screens/HomeScreen.tsx +0 -443
- package/bundle/screens/KitchenSinkScreen.tsx +0 -131
- package/bundle/screens/SettingsScreen.tsx +0 -332
- package/bundle/screens/UpdatesScreen.tsx +0 -279
- package/bundle/screens/UserProfileScreen.tsx +0 -252
- package/bundle/test-utils.tsx +0 -34
- package/bundle/tsconfig.json +0 -14
- package/bundle/types.ts +0 -13
- package/index.js +0 -1
- package/ios/DevLauncherAuth.swift +0 -65
- package/ios/DevLauncherExceptions.swift +0 -31
- package/ios/DevLauncherInternal.swift +0 -135
- package/ios/Errors/EXDevLauncherErrorViewController.swift +0 -67
- package/ios/Errors/EXDevLauncherStackTrace.swift +0 -9
- package/ios/Views/EXDevLauncherErrorView.storyboard +0 -181
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon-mask.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon@2x.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/back-icon@3x.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon@2x.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/clear-icon@3x.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon@2x.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/close-icon@3x.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/search-icon.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/search-icon@2x.png +0 -0
- package/ios/assets/__node_modules/@react-navigation/elements/lib/module/assets/search-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/building-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/building-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/building-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/check-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/check-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/check-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/check-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/check-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/check-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/chevron-right-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/chevron-right-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/chevron-right-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/clipboard-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/clipboard-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/clipboard-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/debug-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/debug-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/debug-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-filled-active-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-filled-inactive-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-filled-inactive-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-filled-inactive-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/extensions-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-active-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/home-filled-inactive-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/info-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/info-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/info-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/info-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/info-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/info-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/inspect-element-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/inspect-element-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/inspect-element-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/loading-indicator-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/loading-indicator-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/loading-indicator-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/logo-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/logo-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/logo-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/performance-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/performance-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/performance-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/question-mark-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/question-mark-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/question-mark-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/run-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/run-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/run-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-active-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/settings-filled-inactive-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/toolbar-overlay-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/toolbar-overlay-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/toolbar-overlay-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/warning-triangle-icon@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/x-icon-light.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/x-icon-light@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/x-icon-light@3x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/x-icon.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/x-icon@2x.png +0 -0
- package/ios/assets/_expo-dev-client-components/assets/x-icon@3x.png +0 -0
- package/ios/main.jsbundle +0 -1407
- package/metro.config.js +0 -38
- package/plugin/build/pluginConfig.d.ts +0 -43
- package/plugin/build/pluginConfig.js +0 -77
- package/plugin/build/withDevLauncher.d.ts +0 -3
- package/plugin/build/withDevLauncher.js +0 -30
- package/plugin/jest.config.js +0 -1
- package/plugin/src/pluginConfig.ts +0 -121
- package/plugin/src/withDevLauncher.ts +0 -50
- package/plugin/tsconfig.json +0 -10
- package/react-native.config.js +0 -9
- package/setupTests.ts +0 -67
- package/src/DevLauncher.ts +0 -33
- package/src/DevLauncherErrorManager.ts +0 -78
- package/src/DevLauncherErrorManager.web.ts +0 -5
- package/src/WebUnsupportedError.ts +0 -5
- package/src/setUpErrorHandler.fx.ts +0 -6
- package/src/setUpErrorHandler.fx.web.ts +0 -0
- package/tsconfig.json +0 -9
- package/write_embedded_bundle.sh +0 -49
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_branchicon.png → branch_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_buildingicon.png → building_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_checkicon.png → check_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_chevronrighticon.png → chevron_right_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_extensionsicon.png → extensions_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_homefilledinactiveicon.png → home_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_infoicon.png → info_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_settingsfilledinactiveicon.png → settings_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_shakedeviceicon.png → shake_device_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_showmenuatlaunchicon.png → show_menu_at_launch_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_terminalicon.png → terminal_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_threefingerlongpressicon.png → three_finger_long_press_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_updateicon.png → update_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_usericon.png → user_icon.png} +0 -0
- /package/android/src/debug/res/drawable-mdpi/{_expodevclientcomponents_assets_xicon.png → x_icon.png} +0 -0
- /package/android/src/debug/res/{drawable-mdpi/_expodevclientcomponents_assets_shakedeviceiconlight.png → drawable-night-mdpi/shake_device_icon.png} +0 -0
- /package/android/src/debug/res/{drawable-xhdpi/_expodevclientcomponents_assets_shakedeviceiconlight.png → drawable-night-xhdpi/shake_device_icon.png} +0 -0
- /package/android/src/debug/res/{drawable-xxhdpi/_expodevclientcomponents_assets_shakedeviceiconlight.png → drawable-night-xxhdpi/shake_device_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_branchicon.png → branch_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_buildingicon.png → building_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_checkicon.png → check_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_chevronrighticon.png → chevron_right_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_extensionsicon.png → extensions_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_homefilledinactiveicon.png → home_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_infoicon.png → info_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_settingsfilledinactiveicon.png → settings_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_shakedeviceicon.png → shake_device_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_showmenuatlaunchicon.png → show_menu_at_launch_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_terminalicon.png → terminal_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_threefingerlongpressicon.png → three_finger_long_press_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_updateicon.png → update_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_usericon.png → user_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xhdpi/{_expodevclientcomponents_assets_xicon.png → x_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_branchicon.png → branch_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_buildingicon.png → building_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_checkicon.png → check_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_chevronrighticon.png → chevron_right_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_extensionsicon.png → extensions_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_homefilledinactiveicon.png → home_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_infoicon.png → info_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_settingsfilledinactiveicon.png → settings_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_shakedeviceicon.png → shake_device_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_showmenuatlaunchicon.png → show_menu_at_launch_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_terminalicon.png → terminal_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_threefingerlongpressicon.png → three_finger_long_press_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_updateicon.png → update_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_usericon.png → user_icon.png} +0 -0
- /package/android/src/debug/res/drawable-xxhdpi/{_expodevclientcomponents_assets_xicon.png → x_icon.png} +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon-light.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon-light@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon-light@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/branch-icon.imageset}/branch-icon@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions-icon.imageset}/extensions-filled-inactive-icon.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions-icon.imageset}/extensions-filled-inactive-icon@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions-icon.imageset}/extensions-filled-inactive-icon@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions.imageset}/extensions-icon.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions.imageset}/extensions-icon@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/extensions.imageset}/extensions-icon@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/refresh-icon.imageset}/refresh-icon.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/refresh-icon.imageset}/refresh-icon@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/refresh-icon.imageset}/refresh-icon@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon-light.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon-light@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon-light@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/shake-device.imageset}/shake-device-icon@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon-light.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon-light@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon-light@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/show-menu-at-launch.imageset}/show-menu-at-launch-icon@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/terminal-icon.imageset}/terminal-icon.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/terminal-icon.imageset}/terminal-icon@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/terminal-icon.imageset}/terminal-icon@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon-light.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon-light@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon-light@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/three-finger-long-press.imageset}/three-finger-long-press-icon@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon-light.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon-light@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon-light@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/update-icon.imageset}/update-icon@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets/user-icon.png → Assets.xcassets/user-icon.imageset/user-icon 1.png} +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/user-icon.imageset}/user-icon-light.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/user-icon.imageset}/user-icon-light@2x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets → Assets.xcassets/user-icon.imageset}/user-icon-light@3x.png +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets/user-icon@2x.png → Assets.xcassets/user-icon.imageset/user-icon@2x 1.png} +0 -0
- /package/ios/{assets/_expo-dev-client-components/assets/user-icon@3x.png → Assets.xcassets/user-icon.imageset/user-icon@3x 1.png} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,122 @@
|
|
|
4
4
|
|
|
5
5
|
### 🛠 Breaking changes
|
|
6
6
|
|
|
7
|
+
### 🎉 New features
|
|
8
|
+
|
|
9
|
+
### 🐛 Bug fixes
|
|
10
|
+
|
|
11
|
+
### 💡 Others
|
|
12
|
+
|
|
13
|
+
## 6.0.1 — 2025-08-15
|
|
14
|
+
|
|
15
|
+
### 🐛 Bug fixes
|
|
16
|
+
|
|
17
|
+
- [ios] Fix tvOS and Swiftlint after UI refresh. ([#38808](https://github.com/expo/expo/pull/38808) by [@douglowder](https://github.com/douglowder))
|
|
18
|
+
|
|
19
|
+
## 6.0.0 — 2025-08-13
|
|
20
|
+
|
|
21
|
+
### 🎉 New features
|
|
22
|
+
|
|
23
|
+
- [iOS] Reimplement UI in SwiftUI. ([#37413](https://github.com/expo/expo/pull/37413) by [@alanjhughes](https://github.com/alanjhughes))
|
|
24
|
+
- [Android] Add floating action button option in the settings menu. ([#38247](https://github.com/expo/expo/pull/38247) by [@behenate](https://github.com/behenate))
|
|
25
|
+
- [iOS] Partial support for Apple TV. ([#38388](https://github.com/expo/expo/pull/38388) by [@douglowder](https://github.com/douglowder))
|
|
26
|
+
|
|
27
|
+
### 🐛 Bug fixes
|
|
28
|
+
|
|
29
|
+
- [iOS] Fix missing CDP headers when using static frameworks. ([#37448](https://github.com/expo/expo/pull/37448) by [@alanjhughes](https://github.com/alanjhughes))
|
|
30
|
+
- [Android] Use same strings in UI as iOS. ([#37786](https://github.com/expo/expo/pull/37786) by [@douglowder](https://github.com/douglowder))
|
|
31
|
+
- [iOS] Fix an issue where the packager commands stop working after a reload. ([#38579](https://github.com/expo/expo/pull/38579) by [@alanjhughes](https://github.com/alanjhughes))
|
|
32
|
+
|
|
33
|
+
### 💡 Others
|
|
34
|
+
|
|
35
|
+
- [Android] RN 0.81.0: patched some reflection issues after kotlin upgrade ([#38451](https://github.com/expo/expo/pull/38451) by [@chrfalch](https://github.com/chrfalch))
|
|
36
|
+
- Fixed release build error on Android. ([#37579](https://github.com/expo/expo/pull/37579) by [@kudo](https://github.com/kudo))
|
|
37
|
+
- Informational message for tvOS on signin page. ([#38518](https://github.com/expo/expo/pull/38518) by [@douglowder](https://github.com/douglowder))
|
|
38
|
+
|
|
39
|
+
### ⚠️ Notices
|
|
40
|
+
|
|
41
|
+
- Added support for React Native 0.80.x. ([#37400](https://github.com/expo/expo/pull/37400) by [@gabrieldonadel](https://github.com/gabrieldonadel))
|
|
42
|
+
|
|
43
|
+
## 5.1.16 - 2025-07-03
|
|
44
|
+
|
|
45
|
+
_This version does not introduce any user-facing changes._
|
|
46
|
+
|
|
47
|
+
## 5.1.15 - 2025-07-02
|
|
48
|
+
|
|
49
|
+
_This version does not introduce any user-facing changes._
|
|
50
|
+
|
|
51
|
+
## 5.1.14 - 2025-06-26
|
|
52
|
+
|
|
53
|
+
### 🐛 Bug fixes
|
|
54
|
+
|
|
55
|
+
- [Android] Fix missing launch args from pending intent extras. ([#37172](https://github.com/expo/expo/pull/37172) by [@coolsoftwaretyler](https://github.com/coolsoftwaretyler))
|
|
56
|
+
- [Android] Fix missing intent extras when handling external intents. ([#37307](https://github.com/expo/expo/pull/37307) by [@coolsoftwaretyler](https://github.com/coolsoftwaretyler))
|
|
57
|
+
|
|
58
|
+
## 5.1.13 - 2025-06-18
|
|
59
|
+
|
|
60
|
+
_This version does not introduce any user-facing changes._
|
|
61
|
+
|
|
62
|
+
## 5.1.12 - 2025-06-04
|
|
63
|
+
|
|
64
|
+
### 🐛 Bug fixes
|
|
65
|
+
|
|
66
|
+
- [Android] Remove `testDebug` variant from npm package. ([#36845](https://github.com/expo/expo/pull/36845) by [@lukmccall](https://github.com/lukmccall))
|
|
67
|
+
|
|
68
|
+
## 5.1.11 — 2025-05-01
|
|
69
|
+
|
|
70
|
+
_This version does not introduce any user-facing changes._
|
|
71
|
+
|
|
72
|
+
## 5.1.10 — 2025-04-30
|
|
73
|
+
|
|
74
|
+
_This version does not introduce any user-facing changes._
|
|
75
|
+
|
|
76
|
+
## 5.1.9 — 2025-04-30
|
|
77
|
+
|
|
78
|
+
### 🐛 Bug fixes
|
|
79
|
+
|
|
80
|
+
- Fixed Property "require" doesn't exist error. ([#36484](https://github.com/expo/expo/pull/36484) by [@kudo](https://github.com/kudo))
|
|
81
|
+
|
|
82
|
+
## 5.1.8 — 2025-04-28
|
|
83
|
+
|
|
84
|
+
_This version does not introduce any user-facing changes._
|
|
85
|
+
|
|
86
|
+
## 5.1.7 — 2025-04-28
|
|
87
|
+
|
|
88
|
+
_This version does not introduce any user-facing changes._
|
|
89
|
+
|
|
90
|
+
## 5.1.6 — 2025-04-25
|
|
91
|
+
|
|
92
|
+
### 💡 Others
|
|
93
|
+
|
|
94
|
+
- [iOS] Remove usage of deprecated `SFAuthenticationSession` for user login. ([#36395](https://github.com/expo/expo/pull/36395) by [@alanjhughes](https://github.com/alanjhughes))
|
|
95
|
+
- [Android] Enable edge-to-edge. ([#36363](https://github.com/expo/expo/pull/36363) by [@behenate](https://github.com/behenate))
|
|
96
|
+
|
|
97
|
+
## 5.1.5 — 2025-04-23
|
|
98
|
+
|
|
99
|
+
### 🐛 Bug fixes
|
|
100
|
+
|
|
101
|
+
- Fix duplicated modals ([#36326](https://github.com/expo/expo/pull/36326) by [@jakex7](https://github.com/jakex7))
|
|
102
|
+
|
|
103
|
+
## 5.1.4 — 2025-04-21
|
|
104
|
+
|
|
105
|
+
_This version does not introduce any user-facing changes._
|
|
106
|
+
|
|
107
|
+
## 5.1.3 — 2025-04-14
|
|
108
|
+
|
|
109
|
+
_This version does not introduce any user-facing changes._
|
|
110
|
+
|
|
111
|
+
## 5.1.2 — 2025-04-09
|
|
112
|
+
|
|
113
|
+
_This version does not introduce any user-facing changes._
|
|
114
|
+
|
|
115
|
+
## 5.1.1 — 2025-04-08
|
|
116
|
+
|
|
117
|
+
_This version does not introduce any user-facing changes._
|
|
118
|
+
|
|
119
|
+
## 5.1.0 — 2025-04-04
|
|
120
|
+
|
|
121
|
+
### 🛠 Breaking changes
|
|
122
|
+
|
|
7
123
|
- upgrade RN to 0.78 ([#35050](https://github.com/expo/expo/pull/35050) by [@vonovak](https://github.com/vonovak))
|
|
8
124
|
|
|
9
125
|
### 🎉 New features
|
|
@@ -11,8 +127,6 @@
|
|
|
11
127
|
- support react-native 0.77 ([#33379](https://github.com/expo/expo/pull/33379) by [@vonovak](https://github.com/vonovak))
|
|
12
128
|
- Bump version of React Navigation ([#35595](https://github.com/expo/expo/pull/35595) by [@marklawlor](https://github.com/marklawlor))
|
|
13
129
|
|
|
14
|
-
### 🐛 Bug fixes
|
|
15
|
-
|
|
16
130
|
### 💡 Others
|
|
17
131
|
|
|
18
132
|
- use custom iOS dependencyProvider ([#35321](https://github.com/expo/expo/pull/35321) by [@vonovak](https://github.com/vonovak))
|
package/android/build.gradle
CHANGED
|
@@ -1,20 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
buildscript {
|
|
2
|
+
repositories {
|
|
3
|
+
mavenCentral()
|
|
4
|
+
}
|
|
5
|
+
dependencies {
|
|
6
|
+
classpath("org.jetbrains.kotlin.plugin.compose:org.jetbrains.kotlin.plugin.compose.gradle.plugin:${kotlinVersion}")
|
|
7
|
+
classpath("org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin:${kotlinVersion}")
|
|
8
|
+
classpath("com.apollographql.apollo:apollo-gradle-plugin:4.3.1")
|
|
9
|
+
}
|
|
4
10
|
}
|
|
5
11
|
|
|
12
|
+
apply plugin: 'com.android.library'
|
|
13
|
+
apply plugin: 'expo-module-gradle-plugin'
|
|
14
|
+
apply plugin: 'org.jetbrains.kotlin.plugin.compose'
|
|
15
|
+
apply plugin: 'org.jetbrains.kotlin.plugin.serialization'
|
|
16
|
+
apply plugin: 'com.apollographql.apollo'
|
|
17
|
+
|
|
6
18
|
expoModule {
|
|
7
19
|
canBePublished false
|
|
8
20
|
}
|
|
9
21
|
|
|
10
22
|
group = "host.exp.exponent"
|
|
11
|
-
version = "
|
|
23
|
+
version = "6.0.1"
|
|
12
24
|
|
|
13
25
|
android {
|
|
14
26
|
namespace "expo.modules.devlauncher"
|
|
15
27
|
defaultConfig {
|
|
16
28
|
versionCode 9
|
|
17
|
-
versionName "
|
|
29
|
+
versionName "6.0.1"
|
|
18
30
|
}
|
|
19
31
|
|
|
20
32
|
buildTypes {
|
|
@@ -29,6 +41,15 @@ android {
|
|
|
29
41
|
}
|
|
30
42
|
}
|
|
31
43
|
|
|
44
|
+
apollo {
|
|
45
|
+
service("service") {
|
|
46
|
+
packageName.set("expo.modules.devlauncher")
|
|
47
|
+
introspection {
|
|
48
|
+
endpointUrl.set("https://api.expo.dev/graphql")
|
|
49
|
+
schemaFile.set(file("src/main/graphql/schema.graphqls"))
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
32
53
|
repositories {
|
|
33
54
|
// ref: https://www.baeldung.com/maven-local-repository
|
|
34
55
|
mavenLocal()
|
|
@@ -70,6 +91,21 @@ dependencies {
|
|
|
70
91
|
api project.dependencies.platform("io.insert-koin:koin-bom:3.5.6")
|
|
71
92
|
api "io.insert-koin:koin-core"
|
|
72
93
|
|
|
94
|
+
def composeVersion = "1.9.0"
|
|
95
|
+
|
|
96
|
+
implementation "androidx.compose.foundation:foundation-android:$composeVersion"
|
|
97
|
+
implementation "androidx.compose.ui:ui:$composeVersion"
|
|
98
|
+
implementation "androidx.compose.ui:ui-tooling:$composeVersion"
|
|
99
|
+
implementation "androidx.navigation:navigation-compose:2.9.0"
|
|
100
|
+
implementation "com.google.android.gms:play-services-code-scanner:16.1.0"
|
|
101
|
+
implementation "com.google.mlkit:barcode-scanning:17.3.0"
|
|
102
|
+
|
|
103
|
+
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.7.1")
|
|
104
|
+
|
|
105
|
+
implementation("com.apollographql.apollo:apollo-runtime:4.3.1")
|
|
106
|
+
|
|
107
|
+
implementation("com.composables:core:1.37.0")
|
|
108
|
+
|
|
73
109
|
testImplementation 'androidx.test:core:1.4.0'
|
|
74
110
|
testImplementation 'androidx.test:core-ktx:1.4.0'
|
|
75
111
|
testImplementation "com.google.truth:truth:1.1.2"
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
|
2
|
+
|
|
2
3
|
<application>
|
|
3
4
|
<activity
|
|
4
5
|
android:name="expo.modules.devlauncher.launcher.DevLauncherActivity"
|
|
5
6
|
android:exported="true"
|
|
6
7
|
android:launchMode="singleTask"
|
|
7
|
-
android:theme="@style/Theme.
|
|
8
|
+
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar" />
|
|
9
|
+
|
|
10
|
+
<activity
|
|
11
|
+
android:name="expo.modules.devlauncher.compose.AuthActivity"
|
|
12
|
+
android:exported="true"
|
|
13
|
+
android:launchMode="singleTask"
|
|
14
|
+
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
|
|
8
15
|
<intent-filter>
|
|
9
16
|
<action android:name="android.intent.action.VIEW" />
|
|
10
17
|
|
|
@@ -4,7 +4,10 @@ import android.app.Application
|
|
|
4
4
|
import android.content.Context
|
|
5
5
|
import android.content.Intent
|
|
6
6
|
import android.net.Uri
|
|
7
|
+
import android.os.Bundle
|
|
8
|
+
import android.util.Log
|
|
7
9
|
import androidx.annotation.UiThread
|
|
10
|
+
import androidx.core.net.toUri
|
|
8
11
|
import com.facebook.react.ReactActivity
|
|
9
12
|
import com.facebook.react.ReactActivityDelegate
|
|
10
13
|
import com.facebook.react.ReactApplication
|
|
@@ -29,8 +32,6 @@ import expo.modules.devlauncher.launcher.DevLauncherIntentRegistryInterface
|
|
|
29
32
|
import expo.modules.devlauncher.launcher.DevLauncherLifecycle
|
|
30
33
|
import expo.modules.devlauncher.launcher.DevLauncherNetworkInterceptor
|
|
31
34
|
import expo.modules.devlauncher.launcher.DevLauncherReactActivityDelegateSupplier
|
|
32
|
-
import expo.modules.devlauncher.launcher.DevLauncherReactHost
|
|
33
|
-
import expo.modules.devlauncher.launcher.DevLauncherReactNativeHost
|
|
34
35
|
import expo.modules.devlauncher.launcher.DevLauncherRecentlyOpenedAppsRegistry
|
|
35
36
|
import expo.modules.devlauncher.launcher.errors.DevLauncherAppError
|
|
36
37
|
import expo.modules.devlauncher.launcher.errors.DevLauncherErrorActivity
|
|
@@ -39,6 +40,7 @@ import expo.modules.devlauncher.launcher.loaders.DevLauncherAppLoaderFactoryInte
|
|
|
39
40
|
import expo.modules.devlauncher.launcher.manifest.DevLauncherManifestParser
|
|
40
41
|
import expo.modules.devlauncher.react.activitydelegates.DevLauncherReactActivityNOPDelegate
|
|
41
42
|
import expo.modules.devlauncher.react.activitydelegates.DevLauncherReactActivityRedirectDelegate
|
|
43
|
+
import expo.modules.devlauncher.services.DependencyInjection
|
|
42
44
|
import expo.modules.devlauncher.tests.DevLauncherTestInterceptor
|
|
43
45
|
import expo.modules.devmenu.DevMenuManager
|
|
44
46
|
import expo.modules.manifests.core.Manifest
|
|
@@ -51,10 +53,6 @@ import org.koin.core.component.get
|
|
|
51
53
|
import org.koin.core.component.inject
|
|
52
54
|
import org.koin.dsl.module
|
|
53
55
|
|
|
54
|
-
// Use this to load from a development server for the development client launcher UI
|
|
55
|
-
// private val DEV_LAUNCHER_HOST = "10.0.0.175:8090";
|
|
56
|
-
private val DEV_LAUNCHER_HOST: String? = null
|
|
57
|
-
|
|
58
56
|
private const val NEW_ACTIVITY_FLAGS = Intent.FLAG_ACTIVITY_NEW_TASK or
|
|
59
57
|
Intent.FLAG_ACTIVITY_CLEAR_TASK or
|
|
60
58
|
Intent.FLAG_ACTIVITY_NO_ANIMATION
|
|
@@ -73,27 +71,29 @@ class DevLauncherController private constructor() :
|
|
|
73
71
|
var devMenuManager: DevMenuManager = DevMenuManager
|
|
74
72
|
override var updatesInterface: UpdatesInterface?
|
|
75
73
|
get() = internalUpdatesInterface
|
|
76
|
-
set(value) =
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
set(value) = run {
|
|
75
|
+
if (value != null) {
|
|
76
|
+
DependencyInjection.appService.setUpUpdateInterface(value, context)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
DevLauncherKoinContext.app.koin.loadModules(
|
|
80
|
+
listOf(
|
|
81
|
+
module {
|
|
82
|
+
single { value }
|
|
83
|
+
}
|
|
84
|
+
)
|
|
81
85
|
)
|
|
82
|
-
|
|
83
|
-
override val coroutineScope = CoroutineScope(Dispatchers.Default)
|
|
86
|
+
}
|
|
84
87
|
|
|
85
|
-
override val
|
|
86
|
-
ReactHostWrapper(
|
|
87
|
-
reactNativeHost = DevLauncherReactNativeHost(context as Application, DEV_LAUNCHER_HOST),
|
|
88
|
-
reactHostProvider = { DevLauncherReactHost.create(context as Application, DEV_LAUNCHER_HOST) }
|
|
89
|
-
)
|
|
90
|
-
}
|
|
88
|
+
override val coroutineScope = CoroutineScope(Dispatchers.Default)
|
|
91
89
|
|
|
92
90
|
private val recentlyOpedAppsRegistry = DevLauncherRecentlyOpenedAppsRegistry(context)
|
|
93
91
|
override var manifest: Manifest? = null
|
|
94
92
|
private set
|
|
93
|
+
|
|
95
94
|
override var manifestURL: Uri? = null
|
|
96
95
|
private set
|
|
96
|
+
|
|
97
97
|
override var latestLoadedApp: Uri? = null
|
|
98
98
|
override var useDeveloperSupport = true
|
|
99
99
|
var canLaunchDevMenuOnStart = false
|
|
@@ -108,6 +108,7 @@ class DevLauncherController private constructor() :
|
|
|
108
108
|
private var appIsLoading = false
|
|
109
109
|
|
|
110
110
|
private var networkInterceptor: DevLauncherNetworkInterceptor? = null
|
|
111
|
+
private var pendingIntentExtras: Bundle? = null
|
|
111
112
|
|
|
112
113
|
private fun isEASUpdateURL(url: Uri): Boolean {
|
|
113
114
|
return url.host.equals("u.expo.dev") || url.host.equals("staging-u.expo.dev")
|
|
@@ -142,7 +143,7 @@ class DevLauncherController private constructor() :
|
|
|
142
143
|
// default to the EXPO_UPDATE_URL value configured in AndroidManifest.xml when project url is unspecified for an EAS update
|
|
143
144
|
if (isEASUpdate && projectUrl == null) {
|
|
144
145
|
val projectUrlString = getMetadataValue(context, "expo.modules.updates.EXPO_UPDATE_URL")
|
|
145
|
-
parsedProjectUrl =
|
|
146
|
+
parsedProjectUrl = projectUrlString.toUri()
|
|
146
147
|
}
|
|
147
148
|
|
|
148
149
|
val manifestParser = DevLauncherManifestParser(httpClient, parsedUrl, installationIDHelper.getOrCreateInstallationID(context))
|
|
@@ -204,7 +205,8 @@ class DevLauncherController private constructor() :
|
|
|
204
205
|
}
|
|
205
206
|
}
|
|
206
207
|
|
|
207
|
-
override fun getRecentlyOpenedApps(): List<DevLauncherAppEntry> =
|
|
208
|
+
override fun getRecentlyOpenedApps(): List<DevLauncherAppEntry> =
|
|
209
|
+
recentlyOpedAppsRegistry.getRecentlyOpenedApps()
|
|
208
210
|
|
|
209
211
|
override fun clearRecentlyOpenedApps() {
|
|
210
212
|
recentlyOpedAppsRegistry.clearRegistry()
|
|
@@ -248,6 +250,7 @@ class DevLauncherController private constructor() :
|
|
|
248
250
|
|
|
249
251
|
coroutineScope.launch {
|
|
250
252
|
try {
|
|
253
|
+
pendingIntentRegistry.intent = intent
|
|
251
254
|
loadApp(uri, activityToBeInvalidated)
|
|
252
255
|
} catch (e: Throwable) {
|
|
253
256
|
DevLauncherErrorActivity.showFatalError(context, DevLauncherAppError(e.message, e))
|
|
@@ -267,8 +270,8 @@ class DevLauncherController private constructor() :
|
|
|
267
270
|
if (shouldTryToLaunchLastOpenedBundle && lastOpenedApp != null) {
|
|
268
271
|
coroutineScope.launch {
|
|
269
272
|
try {
|
|
270
|
-
loadApp(
|
|
271
|
-
} catch (
|
|
273
|
+
loadApp(lastOpenedApp.url.toUri(), activityToBeInvalidated)
|
|
274
|
+
} catch (_: Throwable) {
|
|
272
275
|
navigateToLauncher()
|
|
273
276
|
}
|
|
274
277
|
}
|
|
@@ -281,6 +284,8 @@ class DevLauncherController private constructor() :
|
|
|
281
284
|
}
|
|
282
285
|
|
|
283
286
|
private fun handleExternalIntent(intent: Intent): Boolean {
|
|
287
|
+
// Always store the intent extras even if we don't set the pending intent.
|
|
288
|
+
pendingIntentExtras = intent.extras
|
|
284
289
|
if (mode != Mode.APP && intent.action != Intent.ACTION_MAIN) {
|
|
285
290
|
pendingIntentRegistry.intent = intent
|
|
286
291
|
}
|
|
@@ -299,6 +304,9 @@ class DevLauncherController private constructor() :
|
|
|
299
304
|
}
|
|
300
305
|
|
|
301
306
|
private fun setupDevMenu(launchUrl: String) {
|
|
307
|
+
devMenuManager.setGoToHomeAction {
|
|
308
|
+
navigateToLauncher()
|
|
309
|
+
}
|
|
302
310
|
devMenuManager.currentManifest = manifest
|
|
303
311
|
devMenuManager.currentManifestURL = manifestURL.toString()
|
|
304
312
|
devMenuManager.launchUrl = launchUrl
|
|
@@ -362,7 +370,15 @@ class DevLauncherController private constructor() :
|
|
|
362
370
|
intent.categories?.let {
|
|
363
371
|
categories.addAll(it)
|
|
364
372
|
}
|
|
373
|
+
} ?: run {
|
|
374
|
+
// If no pending intent is available, use the extras from the intent that was used to launch the app.
|
|
375
|
+
pendingIntentExtras?.let {
|
|
376
|
+
putExtras(it)
|
|
365
377
|
}
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
// Clear the pending intent extras after using them.
|
|
381
|
+
pendingIntentExtras = null
|
|
366
382
|
}
|
|
367
383
|
|
|
368
384
|
private fun createBasicAppIntent() =
|
|
@@ -399,6 +415,17 @@ class DevLauncherController private constructor() :
|
|
|
399
415
|
|
|
400
416
|
@JvmStatic
|
|
401
417
|
internal fun initialize(context: Context, reactHost: ReactHostWrapper) {
|
|
418
|
+
try {
|
|
419
|
+
val splashScreenManagerClass = Class.forName("expo.modules.splashscreen.SplashScreenManager")
|
|
420
|
+
val splashScreenManager = splashScreenManagerClass
|
|
421
|
+
.kotlin
|
|
422
|
+
.objectInstance
|
|
423
|
+
splashScreenManagerClass.getMethod("hide")
|
|
424
|
+
.invoke(splashScreenManager)
|
|
425
|
+
} catch (e: Throwable) {
|
|
426
|
+
Log.e("DevLauncherController", "Failed to hide splash screen", e)
|
|
427
|
+
}
|
|
428
|
+
|
|
402
429
|
val testInterceptor = DevLauncherKoinContext.app.koin.get<DevLauncherTestInterceptor>()
|
|
403
430
|
if (!testInterceptor.allowReinitialization()) {
|
|
404
431
|
check(!wasInitialized()) { "DevelopmentClientController was initialized." }
|
|
@@ -13,7 +13,6 @@ import expo.modules.core.interfaces.ReactActivityHandler
|
|
|
13
13
|
import expo.modules.core.interfaces.ReactActivityLifecycleListener
|
|
14
14
|
import expo.modules.devlauncher.launcher.DevLauncherReactActivityDelegateSupplier
|
|
15
15
|
import expo.modules.devlauncher.modules.DevLauncherModule
|
|
16
|
-
import expo.modules.devlauncher.modules.DevLauncherAuth
|
|
17
16
|
import expo.modules.core.interfaces.ReactNativeHostHandler
|
|
18
17
|
import expo.modules.devlauncher.modules.DevLauncherDevMenuExtension
|
|
19
18
|
import expo.modules.devlauncher.react.DevLauncherReactNativeHostHandler
|
|
@@ -22,8 +21,7 @@ object DevLauncherPackageDelegate {
|
|
|
22
21
|
fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> =
|
|
23
22
|
listOf(
|
|
24
23
|
DevLauncherModule(reactContext),
|
|
25
|
-
DevLauncherDevMenuExtension(reactContext)
|
|
26
|
-
DevLauncherAuth(reactContext)
|
|
24
|
+
DevLauncherDevMenuExtension(reactContext)
|
|
27
25
|
)
|
|
28
26
|
|
|
29
27
|
fun createApplicationLifecycleListeners(context: Context?): List<ApplicationLifecycleListener> =
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
package expo.modules.devlauncher.compose
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.content.Intent
|
|
5
|
+
import android.content.Intent.ACTION_VIEW
|
|
6
|
+
import android.os.Bundle
|
|
7
|
+
import androidx.activity.result.contract.ActivityResultContract
|
|
8
|
+
import androidx.appcompat.app.AppCompatActivity
|
|
9
|
+
import androidx.browser.customtabs.CustomTabsIntent
|
|
10
|
+
import androidx.core.net.toUri
|
|
11
|
+
import java.net.URLEncoder
|
|
12
|
+
|
|
13
|
+
enum class AuthRequestType(val type: String) {
|
|
14
|
+
LOGIN("login"),
|
|
15
|
+
SIGNUP("signup");
|
|
16
|
+
|
|
17
|
+
companion object {
|
|
18
|
+
fun fromString(type: String): AuthRequestType {
|
|
19
|
+
return entries.firstOrNull { it.type == type } ?: LOGIN
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
private const val SESSION_KEY = "session"
|
|
25
|
+
private const val USERNAME_KEY = "username"
|
|
26
|
+
private const val AUTH_REQUEST_TYPE_KEY = "auth_request_type"
|
|
27
|
+
|
|
28
|
+
private const val WEBSITE_ORIGIN = "https://expo.dev"
|
|
29
|
+
private const val REDIRECT_BASE = "expo-dev-launcher://auth"
|
|
30
|
+
|
|
31
|
+
sealed interface AuthResult {
|
|
32
|
+
data class Success(val sessionSecret: String, val username: String) : AuthResult
|
|
33
|
+
object Canceled : AuthResult
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
class AuthActivity : AppCompatActivity() {
|
|
37
|
+
class Contract : ActivityResultContract<AuthRequestType, AuthResult>() {
|
|
38
|
+
override fun createIntent(context: Context, input: AuthRequestType): Intent {
|
|
39
|
+
return Intent(context, AuthActivity::class.java).apply {
|
|
40
|
+
action = ACTION_VIEW
|
|
41
|
+
putExtra(AUTH_REQUEST_TYPE_KEY, input.type)
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
override fun parseResult(resultCode: Int, intent: Intent?): AuthResult {
|
|
46
|
+
if (resultCode == RESULT_CANCELED || intent == null) {
|
|
47
|
+
return AuthResult.Canceled
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
val sessionSecret = intent.getStringExtra(SESSION_KEY) ?: return AuthResult.Canceled
|
|
51
|
+
val username = intent.getStringExtra(USERNAME_KEY) ?: return AuthResult.Canceled
|
|
52
|
+
|
|
53
|
+
return AuthResult.Success(
|
|
54
|
+
sessionSecret = sessionSecret,
|
|
55
|
+
username = username
|
|
56
|
+
)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
var wasStarted = false
|
|
61
|
+
|
|
62
|
+
override fun onCreate(savedInstanceState: Bundle?) {
|
|
63
|
+
super.onCreate(savedInstanceState)
|
|
64
|
+
|
|
65
|
+
val extraType = intent.getStringExtra(AUTH_REQUEST_TYPE_KEY)
|
|
66
|
+
if (extraType != null) {
|
|
67
|
+
wasStarted = true
|
|
68
|
+
openWebBrowserAsync(startUrl = createAuthUrl(type = AuthRequestType.fromString(extraType)))
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
override fun onResume() {
|
|
73
|
+
super.onResume()
|
|
74
|
+
// onNewIntent will handle the response from the web browser
|
|
75
|
+
if (intent?.data?.host == "expo-dev-launcher") {
|
|
76
|
+
return
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// We just open the browser
|
|
80
|
+
if (wasStarted) {
|
|
81
|
+
wasStarted = false
|
|
82
|
+
return
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
val resultIntent = Intent()
|
|
86
|
+
setResult(RESULT_CANCELED, resultIntent)
|
|
87
|
+
finish()
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
override fun onNewIntent(intent: Intent) {
|
|
91
|
+
super.onNewIntent(intent)
|
|
92
|
+
|
|
93
|
+
if (intent.action == ACTION_VIEW && intent.data?.scheme == "expo-dev-launcher" && intent.data?.host == "auth") {
|
|
94
|
+
val sessionSecret = intent.data?.getQueryParameter("session_secret")
|
|
95
|
+
val userNameOrEmail = intent.data?.getQueryParameter("username_or_email")
|
|
96
|
+
|
|
97
|
+
if (sessionSecret.isNullOrEmpty() || userNameOrEmail.isNullOrEmpty()) {
|
|
98
|
+
setResult(RESULT_CANCELED)
|
|
99
|
+
finish()
|
|
100
|
+
return
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
val resultIntent = Intent().apply {
|
|
104
|
+
putExtra(SESSION_KEY, sessionSecret)
|
|
105
|
+
putExtra(USERNAME_KEY, userNameOrEmail)
|
|
106
|
+
}
|
|
107
|
+
setResult(RESULT_OK, resultIntent)
|
|
108
|
+
finish()
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
private fun openWebBrowserAsync(startUrl: String) {
|
|
113
|
+
requireNotNull(startUrl)
|
|
114
|
+
|
|
115
|
+
val intent = createCustomTabsIntent()
|
|
116
|
+
intent.data = startUrl.toUri()
|
|
117
|
+
|
|
118
|
+
startActivity(intent)
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
private fun createCustomTabsIntent(): Intent {
|
|
122
|
+
val builder = CustomTabsIntent.Builder()
|
|
123
|
+
builder.setShowTitle(false)
|
|
124
|
+
|
|
125
|
+
val intent = builder.build().intent
|
|
126
|
+
|
|
127
|
+
// We cannot use builder's method enableUrlBarHiding, because there is no corresponding disable method and some browsers enables it by default.
|
|
128
|
+
intent.putExtra(CustomTabsIntent.EXTRA_ENABLE_URLBAR_HIDING, false)
|
|
129
|
+
|
|
130
|
+
return intent
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
private fun createAuthUrl(type: AuthRequestType): String {
|
|
134
|
+
return "${WEBSITE_ORIGIN}/${type.type}?confirm_account=1&app_redirect_uri=${URLEncoder.encode(REDIRECT_BASE, "UTF-8")}"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
package expo.modules.devlauncher.compose
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.widget.LinearLayout
|
|
5
|
+
import androidx.compose.ui.platform.ComposeView
|
|
6
|
+
import expo.modules.devmenu.compose.theme.AppTheme
|
|
7
|
+
|
|
8
|
+
class BindingView(context: Context) : LinearLayout(context) {
|
|
9
|
+
init {
|
|
10
|
+
addView(
|
|
11
|
+
ComposeView(context).apply {
|
|
12
|
+
setContent {
|
|
13
|
+
expo.modules.devmenu.compose.newtheme.AppTheme {
|
|
14
|
+
AppTheme {
|
|
15
|
+
DevLauncherBottomTabsNavigator()
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
}
|