diff options
author | Ansh <anshnanda10@gmail.com> | 2023-04-09 18:02:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-09 18:02:44 -0700 |
commit | 14c84732106e1db52e6818ac3814c54845ec1226 (patch) | |
tree | c55e07e0e569a2c41ca73fb3420a2c6b08621c4d | |
parent | 362ea7240d44f130419191e7f726535a77763238 (diff) | |
download | voidsky-14c84732106e1db52e6818ac3814c54845ec1226.tar.zst |
[DRAFT] Android (#424)
* add android & ios folders to .gitignore * delete android and ios dirs * fix android build errors * fix status bar color * fix top cutoff on composer in android * fix weird whitespace issue in post * fix greyed out header android * fix main feed getting cut off android * fix swiping on main feed * fix profile tabs switching on android * A few app.json config items for iOS * Update app.json for bgfetch * make swiping work on android * make splash screen cover * add eas.json * fix image container on android * fix android status bar color * use expo-splash-screen instead of react-native-splash-screen --------- Co-authored-by: Paul Frazee <pfrazee@gmail.com>
82 files changed, 180 insertions, 3395 deletions
diff --git a/.gitignore b/.gitignore index c6aafc848..96a43e93a 100644 --- a/.gitignore +++ b/.gitignore @@ -85,3 +85,8 @@ web-build/ # gitignore and github actions !.gitignore !.github + + +# Android & iOS folders +android/ +ios/ \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle deleted file mode 100644 index cbf0b1e75..000000000 --- a/android/app/build.gradle +++ /dev/null @@ -1,236 +0,0 @@ -apply plugin: "com.android.application" -apply plugin: "com.facebook.react" - -import com.android.build.OutputFile - -def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath() -def expoDebuggableVariants = ['debug'] -// Override `debuggableVariants` for expo-updates debugging -if (System.getenv('EX_UPDATES_NATIVE_DEBUG') == "1") { - react { - expoDebuggableVariants = [] - } -} - - -/** - * This is the configuration block to customize your React Native Android app. - * By default you don't need to apply any configuration, just uncomment the lines you need. - */ -react { - entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim()) - reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() - hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc" - debuggableVariants = expoDebuggableVariants - - /* Folders */ - // The root of your project, i.e. where "package.json" lives. Default is '..' - // root = file("../") - // The folder where the react-native NPM package is. Default is ../node_modules/react-native - // reactNativeDir = file("../node_modules/react-native") - // The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen - // codegenDir = file("../node_modules/react-native-codegen") - // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js - // cliFile = file("../node_modules/react-native/cli.js") - - /* Variants */ - // The list of variants to that are debuggable. For those we're going to - // skip the bundling of the JS bundle and the assets. By default is just 'debug'. - // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants. - // debuggableVariants = ["liteDebug", "prodDebug"] - - /* Bundling */ - // A list containing the node command and its flags. Default is just 'node'. - // nodeExecutableAndArgs = ["node"] - // - // The command to run when bundling. By default is 'bundle' - // bundleCommand = "ram-bundle" - // - // The path to the CLI configuration file. Default is empty. - // bundleConfig = file(../rn-cli.config.js) - // - // The name of the generated asset file containing your JS bundle - // bundleAssetName = "MyApplication.android.bundle" - // - // The entry file for bundle generation. Default is 'index.android.js' or 'index.js' - // entryFile = file("../js/MyApplication.android.js") - // - // A list of extra flags to pass to the 'bundle' commands. - // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle - // extraPackagerArgs = [] - - /* Hermes Commands */ - // The hermes compiler command to run. By default it is 'hermesc' - // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc" - // - // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map" - // hermesFlags = ["-O", "-output-source-map"] -} - -// Override `hermesEnabled` by `expo.jsEngine` -ext { - hermesEnabled = (findProperty('expo.jsEngine') ?: "hermes") == "hermes" -} - -/** - * Set this to true to create four separate APKs instead of one, - * one for each native architecture. This is useful if you don't - * use App Bundles (https://developer.android.com/guide/app-bundle/) - * and want to have separate APKs to upload to the Play Store. - */ -def enableSeparateBuildPerCPUArchitecture = false - -/** - * Set this to true to Run Proguard on Release builds to minify the Java bytecode. - */ -def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean() - -/** - * The preferred build flavor of JavaScriptCore (JSC) - * - * For example, to use the international variant, you can use: - * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` - * - * The international variant includes ICU i18n library and necessary data - * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that - * give correct results when using with locales other than en-US. Note that - * this variant is about 6MiB larger per architecture than default. - */ -def jscFlavor = 'org.webkit:android-jsc:+' - -/** - * Private function to get the list of Native Architectures you want to build. - * This reads the value from reactNativeArchitectures in your gradle.properties - * file and works together with the --active-arch-only flag of react-native run-android. - */ -def reactNativeArchitectures() { - def value = project.getProperties().get("reactNativeArchitectures") - return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] -} - -android { - ndkVersion rootProject.ext.ndkVersion - - compileSdkVersion rootProject.ext.compileSdkVersion - - namespace 'xyz.blueskyweb.app' - defaultConfig { - applicationId 'xyz.blueskyweb.app' - minSdkVersion rootProject.ext.minSdkVersion - targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName "1.0.0" - } - - splits { - abi { - reset() - enable enableSeparateBuildPerCPUArchitecture - universalApk false // If true, also generate a universal APK - include (*reactNativeArchitectures()) - } - } - signingConfigs { - debug { - storeFile file('debug.keystore') - storePassword 'android' - keyAlias 'androiddebugkey' - keyPassword 'android' - } - } - buildTypes { - debug { - signingConfig signingConfigs.debug - } - release { - // Caution! In production, you need to generate your own keystore file. - // see https://reactnative.dev/docs/signed-apk-android. - signingConfig signingConfigs.debug - minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } - - // applicationVariants are e.g. debug, release - applicationVariants.all { variant -> - variant.outputs.each { output -> - // For each separate APK per architecture, set a unique version code as described here: - // https://developer.android.com/studio/build/configure-apk-splits.html - // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. - def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] - def abi = output.getFilter(OutputFile.ABI) - if (abi != null) { // null for the universal-debug, universal-release variants - output.versionCodeOverride = - defaultConfig.versionCode * 1000 + versionCodes.get(abi) - } - - } - } -} - -// Apply static values from `gradle.properties` to the `android.packagingOptions` -// Accepts values in comma delimited lists, example: -// android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini -["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop -> - // Split option: 'foo,bar' -> ['foo', 'bar'] - def options = (findProperty("android.packagingOptions.$prop") ?: "").split(","); - // Trim all elements in place. - for (i in 0..<options.size()) options[i] = options[i].trim(); - // `[] - ""` is essentially `[""].filter(Boolean)` removing all empty strings. - options -= "" - - if (options.length > 0) { - println "android.packagingOptions.$prop += $options ($options.length)" - // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**' - options.each { - android.packagingOptions[prop] += it - } - } -} - -dependencies { - // The version of react-native is set by the React Native Gradle Plugin - implementation("com.facebook.react:react-android") - - def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; - def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; - def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; - def frescoVersion = rootProject.ext.frescoVersion - - // If your app supports Android versions before Ice Cream Sandwich (API level 14) - if (isGifEnabled || isWebpEnabled) { - implementation("com.facebook.fresco:fresco:${frescoVersion}") - implementation("com.facebook.fresco:imagepipeline-okhttp3:${frescoVersion}") - } - - if (isGifEnabled) { - // For animated gif support - implementation("com.facebook.fresco:animated-gif:${frescoVersion}") - } - - if (isWebpEnabled) { - // For webp support - implementation("com.facebook.fresco:webpsupport:${frescoVersion}") - if (isWebpAnimatedEnabled) { - // Animated webp support - implementation("com.facebook.fresco:animated-webp:${frescoVersion}") - } - } - - implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0") - - debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") - debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { - exclude group:'com.squareup.okhttp3', module:'okhttp' - } - debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") - - if (hermesEnabled.toBoolean()) { - implementation("com.facebook.react:hermes-android") - } else { - implementation jscFlavor - } -} - -apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); -applyNativeModulesAppBuildGradle(project) diff --git a/android/app/debug.keystore b/android/app/debug.keystore deleted file mode 100644 index 364e105ed..000000000 --- a/android/app/debug.keystore +++ /dev/null Binary files differdiff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro deleted file mode 100644 index 4f2907661..000000000 --- a/android/app/proguard-rules.pro +++ /dev/null @@ -1,14 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# react-native-reanimated --keep class com.swmansion.reanimated.** { *; } --keep class com.facebook.react.turbomodule.** { *; } \ No newline at end of file diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml deleted file mode 100644 index 99e38fc5f..000000000 --- a/android/app/src/debug/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools"> - - <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> - - <application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" /> -</manifest> diff --git a/android/app/src/debug/java/xyz/blueskyweb/app/ReactNativeFlipper.java b/android/app/src/debug/java/xyz/blueskyweb/app/ReactNativeFlipper.java deleted file mode 100644 index 82fa1c1d4..000000000 --- a/android/app/src/debug/java/xyz/blueskyweb/app/ReactNativeFlipper.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * <p>This source code is licensed under the MIT license found in the LICENSE file in the root - * directory of this source tree. - */ -package xyz.blueskyweb.app; - -import android.content.Context; -import com.facebook.flipper.android.AndroidFlipperClient; -import com.facebook.flipper.android.utils.FlipperUtils; -import com.facebook.flipper.core.FlipperClient; -import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin; -import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; -import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin; -import com.facebook.flipper.plugins.inspector.DescriptorMapping; -import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; -import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor; -import com.facebook.flipper.plugins.network.NetworkFlipperPlugin; -import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; -import com.facebook.react.ReactInstanceEventListener; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.bridge.ReactContext; -import com.facebook.react.modules.network.NetworkingModule; -import okhttp3.OkHttpClient; - -/** - * Class responsible of loading Flipper inside your React Native application. This is the debug - * flavor of it. Here you can add your own plugins and customize the Flipper setup. - */ -public class ReactNativeFlipper { - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { - if (FlipperUtils.shouldEnableFlipper(context)) { - final FlipperClient client = AndroidFlipperClient.getInstance(context); - - client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults())); - client.addPlugin(new DatabasesFlipperPlugin(context)); - client.addPlugin(new SharedPreferencesFlipperPlugin(context)); - client.addPlugin(CrashReporterPlugin.getInstance()); - - NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin(); - NetworkingModule.setCustomClientBuilder( - new NetworkingModule.CustomClientBuilder() { - @Override - public void apply(OkHttpClient.Builder builder) { - builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin)); - } - }); - client.addPlugin(networkFlipperPlugin); - client.start(); - - // Fresco Plugin needs to ensure that ImagePipelineFactory is initialized - // Hence we run if after all native modules have been initialized - ReactContext reactContext = reactInstanceManager.getCurrentReactContext(); - if (reactContext == null) { - reactInstanceManager.addReactInstanceEventListener( - new ReactInstanceEventListener() { - @Override - public void onReactContextInitialized(ReactContext reactContext) { - reactInstanceManager.removeReactInstanceEventListener(this); - reactContext.runOnNativeModulesQueueThread( - new Runnable() { - @Override - public void run() { - client.addPlugin(new FrescoFlipperPlugin()); - } - }); - } - }); - } else { - client.addPlugin(new FrescoFlipperPlugin()); - } - } - } -} diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index 2582a5338..000000000 --- a/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,35 +0,0 @@ -<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="xyz.blueskyweb.app"> - <uses-permission android:name="android.permission.INTERNET"/> - <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> - <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> - <uses-permission android:name="android.permission.VIBRATE"/> - <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> - <queries> - <intent> - <action android:name="android.intent.action.VIEW"/> - <category android:name="android.intent.category.BROWSABLE"/> - <data android:scheme="https"/> - </intent> - </queries> - <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="true" android:theme="@style/AppTheme" android:usesCleartextTraffic="true"> - <meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/> - <meta-data android:name="expo.modules.updates.EXPO_SDK_VERSION" android:value="48.0.0"/> - <meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/> - <meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/> - <meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://exp.host/@arrygoo/bluesky"/> <!-- TODO --> - <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen" android:exported="true" android:screenOrientation="portrait"> - <intent-filter> - <action android:name="android.intent.action.MAIN"/> - <category android:name="android.intent.category.LAUNCHER"/> - </intent-filter> - <intent-filter> - <action android:name="android.intent.action.VIEW"/> - <category android:name="android.intent.category.DEFAULT"/> - <category android:name="android.intent.category.BROWSABLE"/> - <data android:scheme="xyz.blueskyweb.app"/> - <data android:scheme="exp+bluesky"/> - </intent-filter> - </activity> - <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" android:exported="false"/> - </application> -</manifest> \ No newline at end of file diff --git a/android/app/src/main/java/xyz/blueskyweb/app/MainActivity.java b/android/app/src/main/java/xyz/blueskyweb/app/MainActivity.java deleted file mode 100644 index 0833f982d..000000000 --- a/android/app/src/main/java/xyz/blueskyweb/app/MainActivity.java +++ /dev/null @@ -1,68 +0,0 @@ -package xyz.blueskyweb.app; - -import android.os.Build; -import android.os.Bundle; - -import com.facebook.react.ReactActivity; -import com.facebook.react.ReactActivityDelegate; -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; -import com.facebook.react.defaults.DefaultReactActivityDelegate; - -import expo.modules.ReactActivityDelegateWrapper; - -public class MainActivity extends ReactActivity { - @Override - protected void onCreate(Bundle savedInstanceState) { - // Set the theme to AppTheme BEFORE onCreate to support - // coloring the background, status bar, and navigation bar. - // This is required for expo-splash-screen. - setTheme(R.style.AppTheme); - super.onCreate(null); - } - - /** - * Returns the name of the main component registered from JavaScript. - * This is used to schedule rendering of the component. - */ - @Override - protected String getMainComponentName() { - return "main"; - } - - /** - * Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link - * DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React - * (aka React 18) with two boolean flags. - */ - @Override - protected ReactActivityDelegate createReactActivityDelegate() { - return new ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, new DefaultReactActivityDelegate( - this, - getMainComponentName(), - // If you opted-in for the New Architecture, we enable the Fabric Renderer. - DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled - // If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18). - DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled - )); - } - - /** - * Align the back button behavior with Android S - * where moving root activities to background instead of finishing activities. - * @see <a href="https://developer.android.com/reference/android/app/Activity#onBackPressed()">onBackPressed</a> - */ - @Override - public void invokeDefaultOnBackPressed() { - if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) { - if (!moveTaskToBack(false)) { - // For non-root activities, use the default implementation to finish them. - super.invokeDefaultOnBackPressed(); - } - return; - } - - // Use the default back button implementation on Android S - // because it's doing more than {@link Activity#moveTaskToBack} in fact. - super.invokeDefaultOnBackPressed(); - } -} diff --git a/android/app/src/main/java/xyz/blueskyweb/app/MainApplication.java b/android/app/src/main/java/xyz/blueskyweb/app/MainApplication.java deleted file mode 100644 index 38de2503d..000000000 --- a/android/app/src/main/java/xyz/blueskyweb/app/MainApplication.java +++ /dev/null @@ -1,76 +0,0 @@ -package xyz.blueskyweb.app; - -import android.app.Application; -import android.content.res.Configuration; -import androidx.annotation.NonNull; - -import com.facebook.react.PackageList; -import com.facebook.react.ReactApplication; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint; -import com.facebook.react.defaults.DefaultReactNativeHost; -import com.facebook.soloader.SoLoader; - -import expo.modules.ApplicationLifecycleDispatcher; -import expo.modules.ReactNativeHostWrapper; - -import java.util.List; - -public class MainApplication extends Application implements ReactApplication { - - private final ReactNativeHost mReactNativeHost = - new ReactNativeHostWrapper(this, new DefaultReactNativeHost(this) { - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List<ReactPackage> getPackages() { - @SuppressWarnings("UnnecessaryLocalVariable") - List<ReactPackage> packages = new PackageList(this).getPackages(); - // Packages that cannot be autolinked yet can be added manually here, for example: - // packages.add(new MyReactNativePackage()); - return packages; - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - - @Override - protected boolean isNewArchEnabled() { - return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED; - } - - @Override - protected Boolean isHermesEnabled() { - return BuildConfig.IS_HERMES_ENABLED; - } - }); - - @Override - public ReactNativeHost getReactNativeHost() { - return mReactNativeHost; - } - - @Override - public void onCreate() { - super.onCreate(); - SoLoader.init(this, /* native exopackage */ false); - if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { - // If you opted-in for the New Architecture, we load the native entry point for this app. - DefaultNewArchitectureEntryPoint.load(); - } - ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); - ApplicationLifecycleDispatcher.onApplicationCreate(this); - } - - @Override - public void onConfigurationChanged(@NonNull Configuration newConfig) { - super.onConfigurationChanged(newConfig); - ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig); - } -} diff --git a/android/app/src/main/res/drawable/rn_edit_text_material.xml b/android/app/src/main/res/drawable/rn_edit_text_material.xml deleted file mode 100644 index f35d99620..000000000 --- a/android/app/src/main/res/drawable/rn_edit_text_material.xml +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Copyright (C) 2014 The Android Open Source Project - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<inset xmlns:android="http://schemas.android.com/apk/res/android" - android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material" - android:insetRight="@dimen/abc_edit_text_inset_horizontal_material" - android:insetTop="@dimen/abc_edit_text_inset_top_material" - android:insetBottom="@dimen/abc_edit_text_inset_bottom_material"> - - <selector> - <!-- - This file is a copy of abc_edit_text_material (https://bit.ly/3k8fX7I). - The item below with state_pressed="false" and state_focused="false" causes a NullPointerException. - NullPointerException:tempt to invoke virtual method 'android.graphics.drawable.Drawable android.graphics.drawable.Drawable$ConstantState.newDrawable(android.content.res.Resources)' - - <item android:state_pressed="false" android:state_focused="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> - - For more info, see https://bit.ly/3CdLStv (react-native/pull/29452) and https://bit.ly/3nxOMoR. - --> - <item android:state_enabled="false" android:drawable="@drawable/abc_textfield_default_mtrl_alpha"/> - <item android:drawable="@drawable/abc_textfield_activated_mtrl_alpha"/> - </selector> - -</inset> diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 65dd9de36..000000000 --- a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +++ /dev/null Binary files differdiff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 2d4ed5510..000000000 --- a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +++ /dev/null Binary files differdiff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 9248ec7de..000000000 --- a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +++ /dev/null Binary files differdiff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 7c8290e49..000000000 --- a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +++ /dev/null Binary files differdiff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index f1658a93a..000000000 --- a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +++ /dev/null Binary files differdiff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml deleted file mode 100644 index 84bacdca5..000000000 --- a/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ -<resources> - <string name="app_name">bsky</string> -</resources> diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml deleted file mode 100644 index 7ba83a2ad..000000000 --- a/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,9 +0,0 @@ -<resources> - - <!-- Base application theme. --> - <style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> - <!-- Customize your theme here. --> - <item name="android:editTextBackground">@drawable/rn_edit_text_material</item> - </style> - -</resources> diff --git a/android/app/src/release/java/xyz/blueskyweb/app/ReactNativeFlipper.java b/android/app/src/release/java/xyz/blueskyweb/app/ReactNativeFlipper.java deleted file mode 100644 index 2c66eae53..000000000 --- a/android/app/src/release/java/xyz/blueskyweb/app/ReactNativeFlipper.java +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * <p>This source code is licensed under the MIT license found in the LICENSE file in the root - * directory of this source tree. - */ -package xyz.blueskyweb.app; -import android.content.Context; -import com.facebook.react.ReactInstanceManager; -/** - * Class responsible of loading Flipper inside your React Native application. This is the release - * flavor of it so it's empty as we don't want to load Flipper. - */ -public class ReactNativeFlipper { - public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) { - // Do nothing as we don't want to initialize Flipper on Release. - } -} \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle deleted file mode 100644 index 778287733..000000000 --- a/android/build.gradle +++ /dev/null @@ -1,42 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - ext { - buildToolsVersion = findProperty('android.buildToolsVersion') ?: '33.0.0' - minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '21') - compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '33') - targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '33') - if (findProperty('android.kotlinVersion')) { - kotlinVersion = findProperty('android.kotlinVersion') - } - frescoVersion = findProperty('expo.frescoVersion') ?: '2.5.0' - - // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP. - ndkVersion = "23.1.7779620" - } - repositories { - google() - mavenCentral() - } - dependencies { - classpath('com.android.tools.build:gradle:7.3.1') - classpath('com.facebook.react:react-native-gradle-plugin') - } -} - -allprojects { - repositories { - maven { - // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm - url(new File(['node', '--print', "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), '../android')) - } - maven { - // Android JSC is installed from npm - url(new File(['node', '--print', "require.resolve('jsc-android/package.json')"].execute(null, rootDir).text.trim(), '../dist')) - } - - google() - mavenCentral() - maven { url 'https://www.jitpack.io' } - } -} diff --git a/android/gradle.properties b/android/gradle.properties deleted file mode 100644 index 9911ac4af..000000000 --- a/android/gradle.properties +++ /dev/null @@ -1,53 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx512m -XX:MaxMetaspaceSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true - -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=true - -# Version of flipper SDK to use with React Native -FLIPPER_VERSION=0.125.0 - -# Use this property to specify which architecture you want to build. -# You can also override it from the CLI using -# ./gradlew <task> -PreactNativeArchitectures=x86_64 -reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64 - -# Use this property to enable support to the new architecture. -# This will allow you to use TurboModules and the Fabric render in -# your application. You should enable this flag either if you want -# to write custom TurboModules/Fabric components OR use libraries that -# are providing them. -newArchEnabled=false - -# The hosted JavaScript engine -# Supported values: expo.jsEngine = "hermes" | "jsc" -expo.jsEngine=hermes - -# Enable GIF support in React Native images (~200 B increase) -expo.gif.enabled=true -# Enable webp support in React Native images (~85 KB increase) -expo.webp.enabled=true -# Enable animated webp support (~3.4 MB increase) -# Disabled by default because iOS doesn't support animated webp -expo.webp.animated=false diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 7454180f2..000000000 --- a/android/gradle/wrapper/gradle-wrapper.jar +++ /dev/null Binary files differdiff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 8fad3f5a9..000000000 --- a/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists diff --git a/android/gradlew b/android/gradlew deleted file mode 100755 index a69d9cb6c..000000000 --- a/android/gradlew +++ /dev/null @@ -1,240 +0,0 @@ -#!/bin/sh - -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# -############################################################################## - -# Attempt to set APP_HOME - -# Resolve links: $0 may be a link -app_path=$0 - -# Need this for daisy-chained symlinks. -while - APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path - [ -h "$app_path" ] -do - ls=$( ls -ld "$app_path" ) - link=${ls#*' -> '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac -done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum - -warn () { - echo "$*" -} >&2 - -die () { - echo - echo "$*" - echo - exit 1 -} >&2 - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java - else - JAVACMD=$JAVA_HOME/bin/java - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac -fi - -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) - - # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) - fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg - done -fi - -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi - -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' - -exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat deleted file mode 100644 index 53a6b238d..000000000 --- a/android/gradlew.bat +++ /dev/null @@ -1,91 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/android/settings.gradle b/android/settings.gradle deleted file mode 100644 index 24f72d0d6..000000000 --- a/android/settings.gradle +++ /dev/null @@ -1,10 +0,0 @@ -rootProject.name = 'bluesky' - -apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); -useExpoModules() - -apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); -applyNativeModulesSettingsGradle(settings) - -include ':app' -includeBuild(new File(["node", "--print", "require.resolve('react-native-gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile()) diff --git a/app.json b/app.json index d12123c95..df12a5454 100644 --- a/app.json +++ b/app.json @@ -1,19 +1,36 @@ { "expo": { - "name": "bluesky", + "name": "Bluesky", "slug": "bluesky", + "owner": "blueskysocial", "version": "1.15.0", "orientation": "portrait", "icon": "./assets/icon.png", "userInterfaceStyle": "light", "splash": { "image": "./assets/cloud-splash.png", - "resizeMode": "contain", + "resizeMode": "cover", "backgroundColor": "#ffffff" }, "ios": { "supportsTablet": false, - "bundleIdentifier": "xyz.blueskyweb.app" + "bundleIdentifier": "xyz.blueskyweb.app", + "config": { + "usesNonExemptEncryption": false + }, + "infoPlist": { + "UIBackgroundModes": [ + "fetch", + "processing" + ], + "BGTaskSchedulerPermittedIdentifiers": [ + "com.transistorsoft.fetch" + ] + } + }, + "androidStatusBar": { + "barStyle": "dark-content", + "backgroundColor": "#ffffff" }, "android": { "adaptiveIcon": { @@ -26,7 +43,21 @@ "favicon": "./assets/favicon.png" }, "plugins": [ - "expo-localization" - ] + "expo-localization", + "react-native-background-fetch", + [ + "expo-build-properties", + { + "android": { + "kotlinVersion": "1.8.0" + } + } + ] + ], + "extra": { + "eas": { + "projectId": "55bd077a-d905-4184-9c7f-94789ba0f302" + } + } } } diff --git a/eas.json b/eas.json new file mode 100644 index 000000000..8301da1c4 --- /dev/null +++ b/eas.json @@ -0,0 +1,28 @@ +{ + "cli": { + "version": ">= 3.8.1" + }, + "build": { + "development": { + "developmentClient": true, + "distribution": "internal", + "ios": { + "resourceClass": "m-medium" + } + }, + "preview": { + "distribution": "internal", + "ios": { + "resourceClass": "m-medium" + } + }, + "production": { + "ios": { + "resourceClass": "m-medium" + } + } + }, + "submit": { + "production": {} + } +} diff --git a/ios/.xcode.env b/ios/.xcode.env deleted file mode 100644 index 9d643e97a..000000000 --- a/ios/.xcode.env +++ /dev/null @@ -1,10 +0,0 @@ -# This `.xcode.env` file is versioned and is used to source the environment -# used when running script phases inside Xcode. -# To customize your local environment, you can create an `.xcode.env.local` -# file that is not versioned. -# NODE_BINARY variable contains the PATH to the node executable. -# -# Customize the NODE_BINARY variable here. -# For example, to use nvm with brew, add the following line -# . "$(brew --prefix nvm)/nvm.sh" --no-use -export NODE_BINARY=$(command -v node) \ No newline at end of file diff --git a/ios/.xcode.env.local b/ios/.xcode.env.local deleted file mode 100644 index 02cdf9420..000000000 --- a/ios/.xcode.env.local +++ /dev/null @@ -1 +0,0 @@ -export NODE_BINARY="/Users/paulfrazee/.nvm/versions/node/v18.8.0/bin/node" diff --git a/ios/Podfile b/ios/Podfile deleted file mode 100644 index 855e74fe5..000000000 --- a/ios/Podfile +++ /dev/null @@ -1,100 +0,0 @@ -require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking") -require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods") -require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules") - -require 'json' -podfile_properties = JSON.parse(File.read(File.join(__dir__, 'Podfile.properties.json'))) rescue {} - -ENV['RCT_NEW_ARCH_ENABLED'] = podfile_properties['newArchEnabled'] == 'true' ? '1' : '0' - -platform :ios, podfile_properties['ios.deploymentTarget'] || '13.0' -install! 'cocoapods', - :deterministic_uuids => false - -prepare_react_native_project! - -# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set. -# because `react-native-flipper` depends on (FlipperKit,...), which will be excluded. To fix this, -# you can also exclude `react-native-flipper` in `react-native.config.js` -# -# ```js -# module.exports = { -# dependencies: { -# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}), -# } -# } -# ``` -flipper_config = FlipperConfiguration.disabled -if ENV['NO_FLIPPER'] == "1" || ENV['CI'] then - # Explicitly disabled through environment variables - flipper_config = FlipperConfiguration.disabled -elsif podfile_properties.key?('ios.flipper') then - # Configure Flipper in Podfile.properties.json - if podfile_properties['ios.flipper'] == 'true' then - flipper_config = FlipperConfiguration.enabled(["Debug", "Release"]) - elsif ppodfile_properties['ios.flipper'] != 'false' then - flipper_config = FlipperConfiguration.enabled(["Debug", "Release"], { 'Flipper' => podfile_properties['ios.flipper'] }) - end -end - - - -target 'bluesky' do - use_expo_modules! - config = use_native_modules! - - use_frameworks! :linkage => podfile_properties['ios.useFrameworks'].to_sym if podfile_properties['ios.useFrameworks'] - use_frameworks! :linkage => ENV['USE_FRAMEWORKS'].to_sym if ENV['USE_FRAMEWORKS'] - - # Flags change depending on the env values. - flags = get_default_flags() - - use_react_native!( - :path => config[:reactNativePath], - :hermes_enabled => podfile_properties['expo.jsEngine'] == nil || podfile_properties['expo.jsEngine'] == 'hermes', - :fabric_enabled => flags[:fabric_enabled], - # An absolute path to your application root. - :app_path => "#{Pod::Config.instance.installation_root}/..", - # Note that if you have use_frameworks! enabled, Flipper will not work if enabled - :flipper_configuration => flipper_config - ) - - post_install do |installer| - react_native_post_install( - installer, - config[:reactNativePath], - # Set `mac_catalyst_enabled` to `true` in order to apply patches - # necessary for Mac Catalyst builds - :mac_catalyst_enabled => false - ) - __apply_Xcode_12_5_M1_post_install_workaround(installer) - - # Required to force the pods to use the correct deploy version - # See https://github.com/facebook/react-native/issues/34106 - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['SWIFT_VERSION'] = '5.0' - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' - end - end - - # This is necessary for Xcode 14, because it signs resource bundles by default - # when building for devices. - installer.target_installation_results.pod_target_installation_results - .each do |pod_name, target_installation_result| - target_installation_result.resource_bundle_targets.each do |resource_bundle_target| - resource_bundle_target.build_configurations.each do |config| - config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO' - end - end - end - end - - post_integrate do |installer| - begin - expo_patch_react_imports!(installer) - rescue => e - Pod::UI.warn e - end - end -end \ No newline at end of file diff --git a/ios/Podfile.lock b/ios/Podfile.lock deleted file mode 100644 index 42c26a1f3..000000000 --- a/ios/Podfile.lock +++ /dev/null @@ -1,922 +0,0 @@ -PODS: - - boost (1.76.0) - - BVLinearGradient (2.6.2): - - React-Core - - DoubleConversion (1.1.6) - - EXApplication (5.1.1): - - ExpoModulesCore - - EXCamera (13.2.1): - - ExpoModulesCore - - EXConstants (14.2.1): - - ExpoModulesCore - - EXFileSystem (15.2.2): - - ExpoModulesCore - - EXFont (11.1.1): - - ExpoModulesCore - - EXImageLoader (4.1.1): - - ExpoModulesCore - - React-Core - - EXJSONUtils (0.5.1) - - EXManifests (0.5.2): - - EXJSONUtils - - EXMediaLibrary (15.2.3): - - ExpoModulesCore - - React-Core - - Expo (48.0.9): - - ExpoModulesCore - - expo-dev-client (2.1.5): - - EXManifests - - expo-dev-launcher - - expo-dev-menu - - expo-dev-menu-interface - - EXUpdatesInterface - - expo-dev-launcher (2.1.5): - - EXManifests - - expo-dev-launcher/Main (= 2.1.5) - - expo-dev-menu - - expo-dev-menu-interface - - ExpoModulesCore - - EXUpdatesInterface - - React-Core - - expo-dev-launcher/Main (2.1.5): - - EXManifests - - expo-dev-launcher/Unsafe - - expo-dev-menu - - expo-dev-menu-interface - - ExpoModulesCore - - EXUpdatesInterface - - React-Core - - expo-dev-launcher/Unsafe (2.1.5): - - EXManifests - - expo-dev-menu - - expo-dev-menu-interface - - ExpoModulesCore - - EXUpdatesInterface - - React-Core - - expo-dev-menu (2.1.3): - - expo-dev-menu/Main (= 2.1.3) - - expo-dev-menu-interface (1.1.1) - - expo-dev-menu/GestureHandler (2.1.3) - - expo-dev-menu/Main (2.1.3): - - EXManifests - - expo-dev-menu-interface - - expo-dev-menu/Vendored - - ExpoModulesCore - - React-Core - - expo-dev-menu/Reanimated (2.1.3): - - DoubleConversion - - FBLazyVector - - FBReactNativeSpec - - glog - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React-callinvoker - - React-Core - - React-Core/DevSupport - - React-Core/RCTWebSocket - - React-CoreModules - - React-cxxreact - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-RCTActionSheet - - React-RCTAnimation - - React-RCTBlob - - React-RCTImage - - React-RCTLinking - - React-RCTNetwork - - React-RCTSettings - - React-RCTText - - React-RCTVibration - - ReactCommon/turbomodule/core - - Yoga - - expo-dev-menu/SafeAreaView (2.1.3) - - expo-dev-menu/Vendored (2.1.3): - - expo-dev-menu/GestureHandler - - expo-dev-menu/Reanimated - - expo-dev-menu/SafeAreaView - - ExpoImagePicker (14.1.1): - - ExpoModulesCore - - ExpoKeepAwake (12.0.1): - - ExpoModulesCore - - ExpoLocalization (14.1.1): - - ExpoModulesCore - - ExpoModulesCore (1.2.6): - - React-Core - - React-RCTAppDelegate - - ReactCommon/turbomodule/core - - EXSplashScreen (0.18.1): - - ExpoModulesCore - - React-Core - - EXUpdatesInterface (0.9.1) - - FBLazyVector (0.71.4) - - FBReactNativeSpec (0.71.4): - - RCT-Folly (= 2021.07.22.00) - - RCTRequired (= 0.71.4) - - RCTTypeSafety (= 0.71.4) - - React-Core (= 0.71.4) - - React-jsi (= 0.71.4) - - ReactCommon/turbomodule/core (= 0.71.4) - - fmt (6.2.1) - - glog (0.3.5) - - hermes-engine (0.71.4): - - hermes-engine/Pre-built (= 0.71.4) - - hermes-engine/Pre-built (0.71.4) - - libevent (2.1.12) - - libwebp (1.2.4): - - libwebp/demux (= 1.2.4) - - libwebp/mux (= 1.2.4) - - libwebp/webp (= 1.2.4) - - libwebp/demux (1.2.4): - - libwebp/webp - - libwebp/mux (1.2.4): - - libwebp/demux - - libwebp/webp (1.2.4) - - RCT-Folly (2021.07.22.00): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - RCT-Folly/Default (= 2021.07.22.00) - - RCT-Folly/Default (2021.07.22.00): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - RCT-Folly/Futures (2021.07.22.00): - - boost - - DoubleConversion - - fmt (~> 6.2.1) - - glog - - libevent - - RCTRequired (0.71.4) - - RCTTypeSafety (0.71.4): - - FBLazyVector (= 0.71.4) - - RCTRequired (= 0.71.4) - - React-Core (= 0.71.4) - - React (0.71.4): - - React-Core (= 0.71.4) - - React-Core/DevSupport (= 0.71.4) - - React-Core/RCTWebSocket (= 0.71.4) - - React-RCTActionSheet (= 0.71.4) - - React-RCTAnimation (= 0.71.4) - - React-RCTBlob (= 0.71.4) - - React-RCTImage (= 0.71.4) - - React-RCTLinking (= 0.71.4) - - React-RCTNetwork (= 0.71.4) - - React-RCTSettings (= 0.71.4) - - React-RCTText (= 0.71.4) - - React-RCTVibration (= 0.71.4) - - React-callinvoker (0.71.4) - - React-Codegen (0.71.4): - - FBReactNativeSpec - - hermes-engine - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React-Core - - React-jsi - - React-jsiexecutor - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - React-Core (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.71.4) - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/CoreModulesHeaders (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/Default (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/DevSupport (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.71.4) - - React-Core/RCTWebSocket (= 0.71.4) - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-jsinspector (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/RCTActionSheetHeaders (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/RCTAnimationHeaders (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/RCTBlobHeaders (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/RCTImageHeaders (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/RCTLinkingHeaders (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/RCTNetworkHeaders (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/RCTSettingsHeaders (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/RCTTextHeaders (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/RCTVibrationHeaders (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-Core/RCTWebSocket (0.71.4): - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Core/Default (= 0.71.4) - - React-cxxreact (= 0.71.4) - - React-hermes - - React-jsi (= 0.71.4) - - React-jsiexecutor (= 0.71.4) - - React-perflogger (= 0.71.4) - - Yoga - - React-CoreModules (0.71.4): - - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.4) - - React-Codegen (= 0.71.4) - - React-Core/CoreModulesHeaders (= 0.71.4) - - React-jsi (= 0.71.4) - - React-RCTBlob - - React-RCTImage (= 0.71.4) - - ReactCommon/turbomodule/core (= 0.71.4) - - React-cxxreact (0.71.4): - - boost (= 1.76.0) - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.71.4) - - React-jsi (= 0.71.4) - - React-jsinspector (= 0.71.4) - - React-logger (= 0.71.4) - - React-perflogger (= 0.71.4) - - React-runtimeexecutor (= 0.71.4) - - React-hermes (0.71.4): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - RCT-Folly/Futures (= 2021.07.22.00) - - React-cxxreact (= 0.71.4) - - React-jsi - - React-jsiexecutor (= 0.71.4) - - React-jsinspector (= 0.71.4) - - React-perflogger (= 0.71.4) - - React-jsi (0.71.4): - - boost (= 1.76.0) - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-jsiexecutor (0.71.4): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-cxxreact (= 0.71.4) - - React-jsi (= 0.71.4) - - React-perflogger (= 0.71.4) - - React-jsinspector (0.71.4) - - React-logger (0.71.4): - - glog - - react-native-blur (4.3.0): - - React-Core - - react-native-cameraroll (5.3.1): - - React-Core - - react-native-get-random-values (1.8.0): - - React-Core - - react-native-image-resizer (3.0.5): - - React-Core - - react-native-pager-view (6.1.2): - - React-Core - - react-native-paste-input (0.6.2): - - React-Core - - Swime (= 3.0.6) - - react-native-safe-area-context (4.5.0): - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React-Core - - ReactCommon/turbomodule/core - - react-native-splash-screen (3.3.0): - - React-Core - - react-native-version-number (0.3.6): - - React - - React-perflogger (0.71.4) - - React-RCTActionSheet (0.71.4): - - React-Core/RCTActionSheetHeaders (= 0.71.4) - - React-RCTAnimation (0.71.4): - - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.4) - - React-Codegen (= 0.71.4) - - React-Core/RCTAnimationHeaders (= 0.71.4) - - React-jsi (= 0.71.4) - - ReactCommon/turbomodule/core (= 0.71.4) - - React-RCTAppDelegate (0.71.4): - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React-Core - - ReactCommon/turbomodule/core - - React-RCTBlob (0.71.4): - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.71.4) - - React-Core/RCTBlobHeaders (= 0.71.4) - - React-Core/RCTWebSocket (= 0.71.4) - - React-jsi (= 0.71.4) - - React-RCTNetwork (= 0.71.4) - - ReactCommon/turbomodule/core (= 0.71.4) - - React-RCTImage (0.71.4): - - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.4) - - React-Codegen (= 0.71.4) - - React-Core/RCTImageHeaders (= 0.71.4) - - React-jsi (= 0.71.4) - - React-RCTNetwork (= 0.71.4) - - ReactCommon/turbomodule/core (= 0.71.4) - - React-RCTLinking (0.71.4): - - React-Codegen (= 0.71.4) - - React-Core/RCTLinkingHeaders (= 0.71.4) - - React-jsi (= 0.71.4) - - ReactCommon/turbomodule/core (= 0.71.4) - - React-RCTNetwork (0.71.4): - - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.4) - - React-Codegen (= 0.71.4) - - React-Core/RCTNetworkHeaders (= 0.71.4) - - React-jsi (= 0.71.4) - - ReactCommon/turbomodule/core (= 0.71.4) - - React-RCTSettings (0.71.4): - - RCT-Folly (= 2021.07.22.00) - - RCTTypeSafety (= 0.71.4) - - React-Codegen (= 0.71.4) - - React-Core/RCTSettingsHeaders (= 0.71.4) - - React-jsi (= 0.71.4) - - ReactCommon/turbomodule/core (= 0.71.4) - - React-RCTText (0.71.4): - - React-Core/RCTTextHeaders (= 0.71.4) - - React-RCTVibration (0.71.4): - - RCT-Folly (= 2021.07.22.00) - - React-Codegen (= 0.71.4) - - React-Core/RCTVibrationHeaders (= 0.71.4) - - React-jsi (= 0.71.4) - - ReactCommon/turbomodule/core (= 0.71.4) - - React-runtimeexecutor (0.71.4): - - React-jsi (= 0.71.4) - - ReactCommon/turbomodule/bridging (0.71.4): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.71.4) - - React-Core (= 0.71.4) - - React-cxxreact (= 0.71.4) - - React-jsi (= 0.71.4) - - React-logger (= 0.71.4) - - React-perflogger (= 0.71.4) - - ReactCommon/turbomodule/core (0.71.4): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2021.07.22.00) - - React-callinvoker (= 0.71.4) - - React-Core (= 0.71.4) - - React-cxxreact (= 0.71.4) - - React-jsi (= 0.71.4) - - React-logger (= 0.71.4) - - React-perflogger (= 0.71.4) - - rn-fetch-blob (0.12.0): - - React-Core - - RNBackgroundFetch (4.1.9): - - React-Core - - RNCAsyncStorage (1.17.12): - - React-Core - - RNCClipboard (1.11.2): - - React-Core - - RNFastImage (8.6.3): - - React-Core - - SDWebImage (~> 5.11.1) - - SDWebImageWebPCoder (~> 0.8.4) - - RNFS (2.20.0): - - React-Core - - RNGestureHandler (2.9.0): - - React-Core - - RNImageCropPicker (0.38.1): - - React-Core - - React-RCTImage - - RNImageCropPicker/QBImagePickerController (= 0.38.1) - - TOCropViewController - - RNImageCropPicker/QBImagePickerController (0.38.1): - - React-Core - - React-RCTImage - - TOCropViewController - - RNInAppBrowser (3.7.0): - - React-Core - - RNNotifee (7.6.1): - - React-Core - - RNNotifee/NotifeeCore (= 7.6.1) - - RNNotifee/NotifeeCore (7.6.1): - - React-Core - - RNReactNativeHapticFeedback (1.14.0): - - React-Core - - RNReanimated (2.14.4): - - DoubleConversion - - FBLazyVector - - FBReactNativeSpec - - glog - - RCT-Folly - - RCTRequired - - RCTTypeSafety - - React-callinvoker - - React-Core - - React-Core/DevSupport - - React-Core/RCTWebSocket - - React-CoreModules - - React-cxxreact - - React-jsi - - React-jsiexecutor - - React-jsinspector - - React-RCTActionSheet - - React-RCTAnimation - - React-RCTBlob - - React-RCTImage - - React-RCTLinking - - React-RCTNetwork - - React-RCTSettings - - React-RCTText - - ReactCommon/turbomodule/core - - Yoga - - RNScreens (3.20.0): - - React-Core - - React-RCTImage - - RNSVG (13.4.0): - - React-Core - - SDWebImage (5.11.1): - - SDWebImage/Core (= 5.11.1) - - SDWebImage/Core (5.11.1) - - SDWebImageWebPCoder (0.8.5): - - libwebp (~> 1.0) - - SDWebImage/Core (~> 5.10) - - segment-analytics-react-native (2.13.4): - - React-Core - - sovran-react-native - - sovran-react-native (0.4.5): - - React-Core - - Swime (3.0.6) - - TOCropViewController (2.6.1) - - Yoga (1.14.0) - -DEPENDENCIES: - - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - - BVLinearGradient (from `../node_modules/react-native-linear-gradient`) - - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - - EXApplication (from `../node_modules/expo-application/ios`) - - EXCamera (from `../node_modules/expo-camera/ios`) - - EXConstants (from `../node_modules/expo-constants/ios`) - - EXFileSystem (from `../node_modules/expo-file-system/ios`) - - EXFont (from `../node_modules/expo-font/ios`) - - EXImageLoader (from `../node_modules/expo-image-loader/ios`) - - EXJSONUtils (from `../node_modules/expo-json-utils/ios`) - - EXManifests (from `../node_modules/expo-manifests/ios`) - - EXMediaLibrary (from `../node_modules/expo-media-library/ios`) - - Expo (from `../node_modules/expo`) - - expo-dev-client (from `../node_modules/expo-dev-client/ios`) - - expo-dev-launcher (from `../node_modules/expo-dev-launcher`) - - expo-dev-menu (from `../node_modules/expo-dev-menu`) - - expo-dev-menu-interface (from `../node_modules/expo-dev-menu-interface/ios`) - - ExpoImagePicker (from `../node_modules/expo-image-picker/ios`) - - ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`) - - ExpoLocalization (from `../node_modules/expo-localization/ios`) - - ExpoModulesCore (from `../node_modules/expo-modules-core`) - - EXSplashScreen (from `../node_modules/expo-splash-screen/ios`) - - EXUpdatesInterface (from `../node_modules/expo-updates-interface/ios`) - - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`) - - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`) - - libevent (~> 2.1.12) - - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`) - - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`) - - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`) - - React (from `../node_modules/react-native/`) - - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`) - - React-Codegen (from `build/generated/ios`) - - React-Core (from `../node_modules/react-native/`) - - React-Core/RCTWebSocket (from `../node_modules/react-native/`) - - React-CoreModules (from `../node_modules/react-native/React/CoreModules`) - - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`) - - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) - - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`) - - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) - - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - - "react-native-blur (from `../node_modules/@react-native-community/blur`)" - - "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)" - - react-native-get-random-values (from `../node_modules/react-native-get-random-values`) - - "react-native-image-resizer (from `../node_modules/@bam.tech/react-native-image-resizer`)" - - react-native-pager-view (from `../node_modules/react-native-pager-view`) - - "react-native-paste-input (from `../node_modules/@mattermost/react-native-paste-input`)" - - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) - - react-native-splash-screen (from `../node_modules/react-native-splash-screen`) - - react-native-version-number (from `../node_modules/react-native-version-number`) - - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`) - - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`) - - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`) - - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`) - - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`) - - React-RCTImage (from `../node_modules/react-native/Libraries/Image`) - - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`) - - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`) - - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`) - - React-RCTText (from `../node_modules/react-native/Libraries/Text`) - - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`) - - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) - - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) - - rn-fetch-blob (from `../node_modules/rn-fetch-blob`) - - RNBackgroundFetch (from `../node_modules/react-native-background-fetch`) - - "RNCAsyncStorage (from `../node_modules/@react-native-async-storage/async-storage`)" - - "RNCClipboard (from `../node_modules/@react-native-clipboard/clipboard`)" - - RNFastImage (from `../node_modules/react-native-fast-image`) - - RNFS (from `../node_modules/react-native-fs`) - - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - - RNImageCropPicker (from `../node_modules/react-native-image-crop-picker`) - - RNInAppBrowser (from `../node_modules/react-native-inappbrowser-reborn`) - - "RNNotifee (from `../node_modules/@notifee/react-native`)" - - RNReactNativeHapticFeedback (from `../node_modules/react-native-haptic-feedback`) - - RNReanimated (from `../node_modules/react-native-reanimated`) - - RNScreens (from `../node_modules/react-native-screens`) - - RNSVG (from `../node_modules/react-native-svg`) - - "segment-analytics-react-native (from `../node_modules/@segment/analytics-react-native`)" - - "sovran-react-native (from `../node_modules/@segment/sovran-react-native`)" - - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) - -SPEC REPOS: - trunk: - - fmt - - libevent - - libwebp - - SDWebImage - - SDWebImageWebPCoder - - Swime - - TOCropViewController - -EXTERNAL SOURCES: - boost: - :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" - BVLinearGradient: - :path: "../node_modules/react-native-linear-gradient" - DoubleConversion: - :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" - EXApplication: - :path: "../node_modules/expo-application/ios" - EXCamera: - :path: "../node_modules/expo-camera/ios" - EXConstants: - :path: "../node_modules/expo-constants/ios" - EXFileSystem: - :path: "../node_modules/expo-file-system/ios" - EXFont: - :path: "../node_modules/expo-font/ios" - EXImageLoader: - :path: "../node_modules/expo-image-loader/ios" - EXJSONUtils: - :path: "../node_modules/expo-json-utils/ios" - EXManifests: - :path: "../node_modules/expo-manifests/ios" - EXMediaLibrary: - :path: "../node_modules/expo-media-library/ios" - Expo: - :path: "../node_modules/expo" - expo-dev-client: - :path: "../node_modules/expo-dev-client/ios" - expo-dev-launcher: - :path: "../node_modules/expo-dev-launcher" - expo-dev-menu: - :path: "../node_modules/expo-dev-menu" - expo-dev-menu-interface: - :path: "../node_modules/expo-dev-menu-interface/ios" - ExpoImagePicker: - :path: "../node_modules/expo-image-picker/ios" - ExpoKeepAwake: - :path: "../node_modules/expo-keep-awake/ios" - ExpoLocalization: - :path: "../node_modules/expo-localization/ios" - ExpoModulesCore: - :path: "../node_modules/expo-modules-core" - EXSplashScreen: - :path: "../node_modules/expo-splash-screen/ios" - EXUpdatesInterface: - :path: "../node_modules/expo-updates-interface/ios" - FBLazyVector: - :path: "../node_modules/react-native/Libraries/FBLazyVector" - FBReactNativeSpec: - :path: "../node_modules/react-native/React/FBReactNativeSpec" - glog: - :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" - hermes-engine: - :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" - RCT-Folly: - :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec" - RCTRequired: - :path: "../node_modules/react-native/Libraries/RCTRequired" - RCTTypeSafety: - :path: "../node_modules/react-native/Libraries/TypeSafety" - React: - :path: "../node_modules/react-native/" - React-callinvoker: - :path: "../node_modules/react-native/ReactCommon/callinvoker" - React-Codegen: - :path: build/generated/ios - React-Core: - :path: "../node_modules/react-native/" - React-CoreModules: - :path: "../node_modules/react-native/React/CoreModules" - React-cxxreact: - :path: "../node_modules/react-native/ReactCommon/cxxreact" - React-hermes: - :path: "../node_modules/react-native/ReactCommon/hermes" - React-jsi: - :path: "../node_modules/react-native/ReactCommon/jsi" - React-jsiexecutor: - :path: "../node_modules/react-native/ReactCommon/jsiexecutor" - React-jsinspector: - :path: "../node_modules/react-native/ReactCommon/jsinspector" - React-logger: - :path: "../node_modules/react-native/ReactCommon/logger" - react-native-blur: - :path: "../node_modules/@react-native-community/blur" - react-native-cameraroll: - :path: "../node_modules/@react-native-camera-roll/camera-roll" - react-native-get-random-values: - :path: "../node_modules/react-native-get-random-values" - react-native-image-resizer: - :path: "../node_modules/@bam.tech/react-native-image-resizer" - react-native-pager-view: - :path: "../node_modules/react-native-pager-view" - react-native-paste-input: - :path: "../node_modules/@mattermost/react-native-paste-input" - react-native-safe-area-context: - :path: "../node_modules/react-native-safe-area-context" - react-native-splash-screen: - :path: "../node_modules/react-native-splash-screen" - react-native-version-number: - :path: "../node_modules/react-native-version-number" - React-perflogger: - :path: "../node_modules/react-native/ReactCommon/reactperflogger" - React-RCTActionSheet: - :path: "../node_modules/react-native/Libraries/ActionSheetIOS" - React-RCTAnimation: - :path: "../node_modules/react-native/Libraries/NativeAnimation" - React-RCTAppDelegate: - :path: "../node_modules/react-native/Libraries/AppDelegate" - React-RCTBlob: - :path: "../node_modules/react-native/Libraries/Blob" - React-RCTImage: - :path: "../node_modules/react-native/Libraries/Image" - React-RCTLinking: - :path: "../node_modules/react-native/Libraries/LinkingIOS" - React-RCTNetwork: - :path: "../node_modules/react-native/Libraries/Network" - React-RCTSettings: - :path: "../node_modules/react-native/Libraries/Settings" - React-RCTText: - :path: "../node_modules/react-native/Libraries/Text" - React-RCTVibration: - :path: "../node_modules/react-native/Libraries/Vibration" - React-runtimeexecutor: - :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" - ReactCommon: - :path: "../node_modules/react-native/ReactCommon" - rn-fetch-blob: - :path: "../node_modules/rn-fetch-blob" - RNBackgroundFetch: - :path: "../node_modules/react-native-background-fetch" - RNCAsyncStorage: - :path: "../node_modules/@react-native-async-storage/async-storage" - RNCClipboard: - :path: "../node_modules/@react-native-clipboard/clipboard" - RNFastImage: - :path: "../node_modules/react-native-fast-image" - RNFS: - :path: "../node_modules/react-native-fs" - RNGestureHandler: - :path: "../node_modules/react-native-gesture-handler" - RNImageCropPicker: - :path: "../node_modules/react-native-image-crop-picker" - RNInAppBrowser: - :path: "../node_modules/react-native-inappbrowser-reborn" - RNNotifee: - :path: "../node_modules/@notifee/react-native" - RNReactNativeHapticFeedback: - :path: "../node_modules/react-native-haptic-feedback" - RNReanimated: - :path: "../node_modules/react-native-reanimated" - RNScreens: - :path: "../node_modules/react-native-screens" - RNSVG: - :path: "../node_modules/react-native-svg" - segment-analytics-react-native: - :path: "../node_modules/@segment/analytics-react-native" - sovran-react-native: - :path: "../node_modules/@segment/sovran-react-native" - Yoga: - :path: "../node_modules/react-native/ReactCommon/yoga" - -SPEC CHECKSUMS: - boost: 57d2868c099736d80fcd648bf211b4431e51a558 - BVLinearGradient: 34a999fda29036898a09c6a6b728b0b4189e1a44 - DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54 - EXApplication: d8f53a7eee90a870a75656280e8d4b85726ea903 - EXCamera: a323a5942b5e7fc8349e17d728e91c18840ad561 - EXConstants: f348da07e21b23d2b085e270d7b74f282df1a7d9 - EXFileSystem: 844e86ca9b5375486ecc4ef06d3838d5597d895d - EXFont: 6ea3800df746be7233208d80fe379b8ed74f4272 - EXImageLoader: fd053169a8ee932dd83bf1fe5487a50c26d27c2b - EXJSONUtils: 48b1e764ac35160e6f54d21ab60d7d9501f3e473 - EXManifests: 500666d48e8dd7ca5a482c9e729e4a7a6c34081b - EXMediaLibrary: 587cd8aad27a6fc8d7c38b950bc75bc1845a7480 - Expo: 863488a600a4565698a79577117c70b170054d08 - expo-dev-client: 7c1ef51516853465f4d448c14ddf365167d20361 - expo-dev-launcher: 90de99d9e5d1a883d81355ca10e87c2f3c81d46e - expo-dev-menu: 4f54ef98df59d9d625677cb18ad4582de92b4a7d - expo-dev-menu-interface: 6c82ae323c4b8724dead4763ce3ff24a2108bdb1 - ExpoImagePicker: 270dea232b3a072d981dd564e2cafc63a864edb1 - ExpoKeepAwake: 69f5f627670d62318410392d03e0b5db0f85759a - ExpoLocalization: f26cd431ad9ea3533c5b08c4fabd879176a794bb - ExpoModulesCore: 6e0259511f4c4341b6b8357db393624df2280828 - EXSplashScreen: cd7fb052dff5ba8311d5c2455ecbebffe1b7a8ca - EXUpdatesInterface: dd699d1930e28639dcbd70a402caea98e86364ca - FBLazyVector: 446e84642979fff0ba57f3c804c2228a473aeac2 - FBReactNativeSpec: 241709e132e3bf1526c1c4f00bc5384dd39dfba9 - fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 - glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b - hermes-engine: a1f157c49ea579c28b0296bda8530e980c45bdb3 - libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 - libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef - RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1 - RCTRequired: 5a024fdf458fa8c0d82fc262e76f982d4dcdecdd - RCTTypeSafety: b6c253064466411c6810b45f66bc1e43ce0c54ba - React: 715292db5bd46989419445a5547954b25d2090f0 - React-callinvoker: 105392d1179058585b564d35b4592fe1c46d6fba - React-Codegen: b75333b93d835afce84b73472927cccaef2c9f8c - React-Core: 88838ed1724c64905fc6c0811d752828a92e395b - React-CoreModules: cd238b4bb8dc8529ccc8b34ceae7267b04ce1882 - React-cxxreact: 291bfab79d8098dc5ebab98f62e6bdfe81b3955a - React-hermes: b1e67e9a81c71745704950516f40ee804349641c - React-jsi: c9d5b563a6af6bb57034a82c2b0d39d0a7483bdc - React-jsiexecutor: d6b7fa9260aa3cb40afee0507e3bc1d17ecaa6f2 - React-jsinspector: 1f51e775819199d3fe9410e69ee8d4c4161c7b06 - React-logger: 0d58569ec51d30d1792c5e86a8e3b78d24b582c6 - react-native-blur: 50c9feabacbc5f49b61337ebc32192c6be7ec3c3 - react-native-cameraroll: f3050460fe1708378698c16686bfaa5f34099be2 - react-native-get-random-values: a6ea6a8a65dc93e96e24a11105b1a9c8cfe1d72a - react-native-image-resizer: 00ceb0e05586c7aadf061eea676957a6c2ec60fa - react-native-pager-view: 54bed894cecebe28cede54c01038d9d1e122de43 - react-native-paste-input: 3392800944a47c00dddbff23c31c281482209679 - react-native-safe-area-context: 39c2d8be3328df5d437ac1700f4f3a4f75716acc - react-native-splash-screen: 4312f786b13a81b5169ef346d76d33bc0c6dc457 - react-native-version-number: b415bbec6a13f2df62bf978e85bc0d699462f37f - React-perflogger: 0bb0522a12e058f6eb69d888bc16f40c16c4b907 - React-RCTActionSheet: bfd675a10f06a18728ea15d82082d48f228a213a - React-RCTAnimation: 2fa220b2052ec75b733112aca39143d34546a941 - React-RCTAppDelegate: 8564f93c1d9274e95e3b0c746d08a87ff5a621b2 - React-RCTBlob: d0336111f46301ae8aba2e161817e451aad72dd6 - React-RCTImage: fec592c46edb7c12a9cde08780bdb4a688416c62 - React-RCTLinking: 14eccac5d2a3b34b89dbfa29e8ef6219a153fe2d - React-RCTNetwork: 1fbce92e772e39ca3687a2ebb854501ff6226dd7 - React-RCTSettings: 1abea36c9bb16d9979df6c4b42e2ea281b4bbcc5 - React-RCTText: 15355c41561a9f43dfd23616d0a0dd40ba05ed61 - React-RCTVibration: ad17efcfb2fa8f6bfd8ac0cf48d96668b8b28e0b - React-runtimeexecutor: 8fa50b38df6b992c76537993a2b0553d3b088004 - ReactCommon: b49a4b00ca6d181ff74b17c12b2d59ac4add0bde - rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba - RNBackgroundFetch: 642777e4e76435773c149d565a043d66f1781237 - RNCAsyncStorage: 09fc8595e6d6f6d5abf16b23a56b257d9c6b7c5b - RNCClipboard: 3f0451a8100393908bea5c5c5b16f96d45f30bfc - RNFastImage: 5c9c9fed9c076e521b3f509fe79e790418a544e8 - RNFS: 4ac0f0ea233904cb798630b3c077808c06931688 - RNGestureHandler: 071d7a9ad81e8b83fe7663b303d132406a7d8f39 - RNImageCropPicker: 648356d68fbf9911a1016b3e3723885d28373eda - RNInAppBrowser: e36d6935517101ccba0e875bac8ad7b0cb655364 - RNNotifee: bdc064c29f4d558046f51f0c3ae02bab4fd3cd85 - RNReactNativeHapticFeedback: 1e3efeca9628ff9876ee7cdd9edec1b336913f8c - RNReanimated: cc5e3aa479cb9170bcccf8204291a6950a3be128 - RNScreens: 218801c16a2782546d30bd2026bb625c0302d70f - RNSVG: 07dbd870b0dcdecc99b3a202fa37c8ca163caec2 - SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d - SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d - segment-analytics-react-native: cc12d9422f7ce863ee57c1b650ab48eec4b6d5bd - sovran-react-native: fd3dc8f1a4b14acdc4ad25fc6b4ac4f52a2a2a15 - Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b - TOCropViewController: edfd4f25713d56905ad1e0b9f5be3fbe0f59c863 - Yoga: 79dd7410de6f8ad73a77c868d3d368843f0c93e0 - -PODFILE CHECKSUM: a70ccad2941a86bea1bc3ed0f6cb08a564cf7910 - -COCOAPODS: 1.11.3 diff --git a/ios/Podfile.properties.json b/ios/Podfile.properties.json deleted file mode 100644 index cb338dda8..000000000 --- a/ios/Podfile.properties.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "expo.jsEngine": "hermes" -} \ No newline at end of file diff --git a/ios/appTests/Info.plist b/ios/appTests/Info.plist deleted file mode 100644 index ba72822e8..000000000 --- a/ios/appTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>en</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>BNDL</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleVersion</key> - <string>1</string> -</dict> -</plist> diff --git a/ios/appTests/appTests.m b/ios/appTests/appTests.m deleted file mode 100644 index bc0d3a085..000000000 --- a/ios/appTests/appTests.m +++ /dev/null @@ -1,66 +0,0 @@ -#import <UIKit/UIKit.h> -#import <XCTest/XCTest.h> - -#import <React/RCTLog.h> -#import <React/RCTRootView.h> - -#define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React" - -@interface appTests : XCTestCase - -@end - -@implementation appTests - -- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test -{ - if (test(view)) { - return YES; - } - for (UIView *subview in [view subviews]) { - if ([self findSubviewInView:subview matching:test]) { - return YES; - } - } - return NO; -} - -- (void)testRendersWelcomeScreen -{ - UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; - BOOL foundElement = NO; - - __block NSString *redboxError = nil; -#ifdef DEBUG - RCTSetLogFunction( - ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); -#endif - - while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - - foundElement = [self findSubviewInView:vc.view - matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; - } - -#ifdef DEBUG - RCTSetLogFunction(RCTDefaultLogFunction); -#endif - - XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); - XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); -} - -@end diff --git a/ios/bluesky.xcodeproj/project.pbxproj b/ios/bluesky.xcodeproj/project.pbxproj deleted file mode 100644 index 6109f018d..000000000 --- a/ios/bluesky.xcodeproj/project.pbxproj +++ /dev/null @@ -1,543 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 53; - objects = { - -/* Begin PBXBuildFile section */ - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; }; - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 14F1D8D19D7FBF5995C9B32D /* libPods-bluesky.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B74BD82B16D3B7F19E5ADDA /* libPods-bluesky.a */; }; - 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; - B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */; }; - B6BE37E812824A869C1E16F6 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FECE0FEBF1E4D88B437323C /* noop-file.swift */; }; - BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; }; - 11FD9D89D32941D7ECE26520 /* Pods-bluesky.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-bluesky.debug.xcconfig"; path = "Target Support Files/Pods-bluesky/Pods-bluesky.debug.xcconfig"; sourceTree = "<group>"; }; - 13B07F961A680F5B00A75B9A /* bluesky.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = bluesky.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = bluesky/AppDelegate.h; sourceTree = "<group>"; }; - 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = bluesky/AppDelegate.mm; sourceTree = "<group>"; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = bluesky/Images.xcassets; sourceTree = "<group>"; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = bluesky/Info.plist; sourceTree = "<group>"; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = bluesky/main.m; sourceTree = "<group>"; }; - 4FECE0FEBF1E4D88B437323C /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "bluesky/noop-file.swift"; sourceTree = "<group>"; }; - 5B74BD82B16D3B7F19E5ADDA /* libPods-bluesky.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-bluesky.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = bluesky/SplashScreen.storyboard; sourceTree = "<group>"; }; - BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = "<group>"; }; - C92ECE114C152498B9DF0C14 /* Pods-bluesky.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-bluesky.release.xcconfig"; path = "Target Support Files/Pods-bluesky/Pods-bluesky.release.xcconfig"; sourceTree = "<group>"; }; - ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-bluesky/ExpoModulesProvider.swift"; sourceTree = "<group>"; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 14F1D8D19D7FBF5995C9B32D /* libPods-bluesky.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 13B07FAE1A68108700A75B9A /* bluesky */ = { - isa = PBXGroup; - children = ( - BB2F792B24A3F905000567C9 /* Supporting */, - 008F07F21AC5B25A0029DE68 /* main.jsbundle */, - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.mm */, - 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB71A68108700A75B9A /* main.m */, - AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, - 4FECE0FEBF1E4D88B437323C /* noop-file.swift */, - ); - name = bluesky; - sourceTree = "<group>"; - }; - 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { - isa = PBXGroup; - children = ( - ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - 5B74BD82B16D3B7F19E5ADDA /* libPods-bluesky.a */, - ); - name = Frameworks; - sourceTree = "<group>"; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - ); - name = Libraries; - sourceTree = "<group>"; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - 13B07FAE1A68108700A75B9A /* bluesky */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 83CBBA001A601CBA00E9B192 /* Products */, - 2D16E6871FA4F8E400B85C8A /* Frameworks */, - D65327D7A22EEC0BE12398D9 /* Pods */, - D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */, - ); - indentWidth = 2; - sourceTree = "<group>"; - tabWidth = 2; - usesTabs = 0; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* bluesky.app */, - ); - name = Products; - sourceTree = "<group>"; - }; - 92DBD88DE9BF7D494EA9DA96 /* bluesky */ = { - isa = PBXGroup; - children = ( - FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */, - ); - name = bluesky; - sourceTree = "<group>"; - }; - BB2F792B24A3F905000567C9 /* Supporting */ = { - isa = PBXGroup; - children = ( - BB2F792C24A3F905000567C9 /* Expo.plist */, - ); - name = Supporting; - path = bluesky/Supporting; - sourceTree = "<group>"; - }; - D65327D7A22EEC0BE12398D9 /* Pods */ = { - isa = PBXGroup; - children = ( - 11FD9D89D32941D7ECE26520 /* Pods-bluesky.debug.xcconfig */, - C92ECE114C152498B9DF0C14 /* Pods-bluesky.release.xcconfig */, - ); - path = Pods; - sourceTree = "<group>"; - }; - D7E4C46ADA2E9064B798F356 /* ExpoModulesProviders */ = { - isa = PBXGroup; - children = ( - 92DBD88DE9BF7D494EA9DA96 /* bluesky */, - ); - name = ExpoModulesProviders; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 13B07F861A680F5B00A75B9A /* bluesky */ = { - isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "bluesky" */; - buildPhases = ( - AA58FC21F429DA1C08D4849A /* [CP] Check Pods Manifest.lock */, - FD10A7F022414F080027D42C /* Start Packager */, - 13B07F871A680F5B00A75B9A /* Sources */, - 13B07F8C1A680F5B00A75B9A /* Frameworks */, - 13B07F8E1A680F5B00A75B9A /* Resources */, - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 5555462490F6788D569DDAFD /* [CP] Embed Pods Frameworks */, - D9DEAD65B781F987C1B90893 /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = bluesky; - productName = bluesky; - productReference = 13B07F961A680F5B00A75B9A /* bluesky.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - LastUpgradeCheck = 1430; - TargetAttributes = { - 13B07F861A680F5B00A75B9A = { - DevelopmentTeam = B3LX46C5HS; - LastSwiftMigration = 1250; - }; - }; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "bluesky" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* bluesky */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\n# The project root by default is one level up from the ios directory\nexport PROJECT_ROOT=\"$PROJECT_DIR\"/..\n\nif [[ \"$CONFIGURATION\" = *Debug* ]]; then\n export SKIP_BUNDLING=1\nfi\nif [[ -z \"$ENTRY_FILE\" ]]; then\n # Set the entry JS file using the bundler's entry resolution.\n export ENTRY_FILE=\"$(\"$NODE_BINARY\" -e \"require('expo/scripts/resolveAppEntry')\" $PROJECT_ROOT ios relative | tail -n 1)\"\nfi\n\n`\"$NODE_BINARY\" --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/react-native-xcode.sh'\"`\n\n"; - }; - 5555462490F6788D569DDAFD /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-bluesky/Pods-bluesky-frameworks.sh", - "${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-bluesky/Pods-bluesky-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - AA58FC21F429DA1C08D4849A /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-bluesky-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - D9DEAD65B781F987C1B90893 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-bluesky/Pods-bluesky-resources.sh", - "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/React-Core/AccessibilityResources.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/expo-dev-launcher/EXDevLauncher.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/expo-dev-menu/EXDevMenu.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/QBImagePicker.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AccessibilityResources.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXDevLauncher.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXDevMenu.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-bluesky/Pods-bluesky-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - FD10A7F022414F080027D42C /* Start Packager */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Start Packager"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "if [[ -f \"$PODS_ROOT/../.xcode.env\" ]]; then\n source \"$PODS_ROOT/../.xcode.env\"\nfi\nif [[ -f \"$PODS_ROOT/../.xcode.env.local\" ]]; then\n source \"$PODS_ROOT/../.xcode.env.local\"\nfi\n\nexport RCT_METRO_PORT=\"${RCT_METRO_PORT:=8081}\"\necho \"export RCT_METRO_PORT=${RCT_METRO_PORT}\" > `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/.packager.env'\"`\nif [ -z \"${RCT_NO_LAUNCH_PACKAGER+xxx}\" ] ; then\n if nc -w 5 -z localhost ${RCT_METRO_PORT} ; then\n if ! curl -s \"http://localhost:${RCT_METRO_PORT}/status\" | grep -q \"packager-status:running\" ; then\n echo \"Port ${RCT_METRO_PORT} already in use, packager is either not running or not running correctly\"\n exit 2\n fi\n else\n open `$NODE_BINARY --print \"require('path').dirname(require.resolve('react-native/package.json')) + '/scripts/launchPackager.command'\"` || echo \"Can't start packager automatically\"\n fi\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */, - B6BE37E812824A869C1E16F6 /* noop-file.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 13B07F941A680F5B00A75B9A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 11FD9D89D32941D7ECE26520 /* Pods-bluesky.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = bluesky/bluesky.entitlements; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = B3LX46C5HS; - ENABLE_BITCODE = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "FB_SONARKIT_ENABLED=1", - ); - INFOPLIST_FILE = bluesky/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; - PRODUCT_BUNDLE_IDENTIFIER = xyz.blueskyweb.app; - PRODUCT_NAME = bluesky; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 13B07F951A680F5B00A75B9A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C92ECE114C152498B9DF0C14 /* Pods-bluesky.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_ENTITLEMENTS = bluesky/bluesky.entitlements; - CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = B3LX46C5HS; - INFOPLIST_FILE = bluesky/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - MARKETING_VERSION = 1.0; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; - PRODUCT_BUNDLE_IDENTIFIER = xyz.blueskyweb.app; - PRODUCT_NAME = bluesky; - SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; - SUPPORTS_MACCATALYST = NO; - SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = 1; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - 83CBBA201A601CBA00E9B192 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 83CBBA211A601CBA00E9B192 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_CXX_LANGUAGE_STANDARD = "c++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - LD_RUNPATH_SEARCH_PATHS = ( - /usr/lib/swift, - "$(inherited)", - ); - LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\""; - MTL_ENABLE_DEBUG_INFO = NO; - REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; - SDKROOT = iphoneos; - SWIFT_COMPILATION_MODE = wholemodule; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "bluesky" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "bluesky" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} diff --git a/ios/bluesky.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/bluesky.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a62..000000000 --- a/ios/bluesky.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Workspace - version = "1.0"> - <FileRef - location = "self:"> - </FileRef> -</Workspace> diff --git a/ios/bluesky.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/bluesky.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/ios/bluesky.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>IDEDidComputeMac32BitWarning</key> - <true/> -</dict> -</plist> diff --git a/ios/bluesky.xcodeproj/xcshareddata/xcschemes/bluesky.xcscheme b/ios/bluesky.xcodeproj/xcshareddata/xcschemes/bluesky.xcscheme deleted file mode 100644 index 31f34f495..000000000 --- a/ios/bluesky.xcodeproj/xcshareddata/xcschemes/bluesky.xcscheme +++ /dev/null @@ -1,88 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "1430" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "13B07F861A680F5B00A75B9A" - BuildableName = "bluesky.app" - BlueprintName = "bluesky" - ReferencedContainer = "container:bluesky.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - <TestableReference - skipped = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "00E356ED1AD99517003FC87E" - BuildableName = "blueskyTests.xctest" - BlueprintName = "blueskyTests" - ReferencedContainer = "container:bluesky.xcodeproj"> - </BuildableReference> - </TestableReference> - </Testables> - </TestAction> - <LaunchAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "13B07F861A680F5B00A75B9A" - BuildableName = "bluesky.app" - BlueprintName = "bluesky" - ReferencedContainer = "container:bluesky.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "13B07F861A680F5B00A75B9A" - BuildableName = "bluesky.app" - BlueprintName = "bluesky" - ReferencedContainer = "container:bluesky.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/ios/bluesky.xcworkspace/contents.xcworkspacedata b/ios/bluesky.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 402cef170..000000000 --- a/ios/bluesky.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Workspace - version = "1.0"> - <FileRef - location = "group:bluesky.xcodeproj"> - </FileRef> - <FileRef - location = "group:Pods/Pods.xcodeproj"> - </FileRef> -</Workspace> diff --git a/ios/bluesky.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/bluesky.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/ios/bluesky.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>IDEDidComputeMac32BitWarning</key> - <true/> -</dict> -</plist> diff --git a/ios/bluesky/AppDelegate.h b/ios/bluesky/AppDelegate.h deleted file mode 100644 index eaba2fa40..000000000 --- a/ios/bluesky/AppDelegate.h +++ /dev/null @@ -1,7 +0,0 @@ -#import <RCTAppDelegate.h> -#import <UIKit/UIKit.h> -#import <Expo/Expo.h> - -@interface AppDelegate : EXAppDelegateWrapper - -@end \ No newline at end of file diff --git a/ios/bluesky/AppDelegate.mm b/ios/bluesky/AppDelegate.mm deleted file mode 100644 index a358131c0..000000000 --- a/ios/bluesky/AppDelegate.mm +++ /dev/null @@ -1,72 +0,0 @@ -#import "AppDelegate.h" - -#import <React/RCTBundleURLProvider.h> -#import <React/RCTLinkingManager.h> - -#import <TSBackgroundFetch/TSBackgroundFetch.h> - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - self.moduleName = @"main"; - - // You can add your custom initial props in the dictionary below. - // They will be passed down to the ViewController used by React Native. - self.initialProps = @{}; - - // Register BackgroundFetch - [[TSBackgroundFetch sharedInstance] didFinishLaunching]; - - return [super application:application didFinishLaunchingWithOptions:launchOptions]; -} - -- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge -{ -#if DEBUG - return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; -#else - return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; -#endif -} - -/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. -/// -/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html -/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). -/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`. -- (BOOL)concurrentRootEnabled -{ - return true; -} - -// Linking API -- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options { - return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options]; -} - -// Universal Links -- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler { - BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler]; - return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result; -} - -// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries -- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken -{ - return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; -} - -// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries -- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error -{ - return [super application:application didFailToRegisterForRemoteNotificationsWithError:error]; -} - -// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries -- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler -{ - return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler]; -} - -@end \ No newline at end of file diff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png deleted file mode 100644 index fea9a3533..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@1x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png deleted file mode 100644 index 299b8c100..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@2x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png deleted file mode 100644 index 30fe7e1f0..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-20x20@3x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png deleted file mode 100644 index ba88e1111..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@1x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png deleted file mode 100644 index 093b2f931..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@2x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png deleted file mode 100644 index f391f3662..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-29x29@3x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png deleted file mode 100644 index 299b8c100..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@1x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png deleted file mode 100644 index 140a420ab..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@2x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png deleted file mode 100644 index f8e459304..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-40x40@3x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png deleted file mode 100644 index f8e459304..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@2x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png deleted file mode 100644 index 0a2ce9f15..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-60x60@3x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png deleted file mode 100644 index cb5bd1988..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@1x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png deleted file mode 100644 index a416fe21a..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-76x76@2x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png deleted file mode 100644 index 4263af789..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/App-Icon-83.5x83.5@2x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/bluesky/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index f920cb0ec..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,122 +0,0 @@ -{ - "images": [ - { - "idiom": "iphone", - "size": "20x20", - "scale": "2x", - "filename": "App-Icon-20x20@2x.png" - }, - { - "idiom": "iphone", - "size": "20x20", - "scale": "3x", - "filename": "App-Icon-20x20@3x.png" - }, - { - "idiom": "iphone", - "size": "29x29", - "scale": "1x", - "filename": "App-Icon-29x29@1x.png" - }, - { - "idiom": "iphone", - "size": "29x29", - "scale": "2x", - "filename": "App-Icon-29x29@2x.png" - }, - { - "idiom": "iphone", - "size": "29x29", - "scale": "3x", - "filename": "App-Icon-29x29@3x.png" - }, - { - "idiom": "iphone", - "size": "40x40", - "scale": "2x", - "filename": "App-Icon-40x40@2x.png" - }, - { - "idiom": "iphone", - "size": "40x40", - "scale": "3x", - "filename": "App-Icon-40x40@3x.png" - }, - { - "idiom": "iphone", - "size": "60x60", - "scale": "2x", - "filename": "App-Icon-60x60@2x.png" - }, - { - "idiom": "iphone", - "size": "60x60", - "scale": "3x", - "filename": "App-Icon-60x60@3x.png" - }, - { - "idiom": "ipad", - "size": "20x20", - "scale": "1x", - "filename": "App-Icon-20x20@1x.png" - }, - { - "idiom": "ipad", - "size": "20x20", - "scale": "2x", - "filename": "App-Icon-20x20@2x.png" - }, - { - "idiom": "ipad", - "size": "29x29", - "scale": "1x", - "filename": "App-Icon-29x29@1x.png" - }, - { - "idiom": "ipad", - "size": "29x29", - "scale": "2x", - "filename": "App-Icon-29x29@2x.png" - }, - { - "idiom": "ipad", - "size": "40x40", - "scale": "1x", - "filename": "App-Icon-40x40@1x.png" - }, - { - "idiom": "ipad", - "size": "40x40", - "scale": "2x", - "filename": "App-Icon-40x40@2x.png" - }, - { - "idiom": "ipad", - "size": "76x76", - "scale": "1x", - "filename": "App-Icon-76x76@1x.png" - }, - { - "idiom": "ipad", - "size": "76x76", - "scale": "2x", - "filename": "App-Icon-76x76@2x.png" - }, - { - "idiom": "ipad", - "size": "83.5x83.5", - "scale": "2x", - "filename": "App-Icon-83.5x83.5@2x.png" - }, - { - "idiom": "ios-marketing", - "size": "1024x1024", - "scale": "1x", - "filename": "ItunesArtwork@2x.png" - } - ], - "info": { - "version": 1, - "author": "expo" - } -} \ No newline at end of file diff --git a/ios/bluesky/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png b/ios/bluesky/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png deleted file mode 100644 index 35e5b79b2..000000000 --- a/ios/bluesky/Images.xcassets/AppIcon.appiconset/ItunesArtwork@2x.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/Contents.json b/ios/bluesky/Images.xcassets/Contents.json deleted file mode 100644 index ed285c2e5..000000000 --- a/ios/bluesky/Images.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "expo" - } -} diff --git a/ios/bluesky/Images.xcassets/SplashScreen.imageset/Contents.json b/ios/bluesky/Images.xcassets/SplashScreen.imageset/Contents.json deleted file mode 100644 index 3cf848977..000000000 --- a/ios/bluesky/Images.xcassets/SplashScreen.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images": [ - { - "idiom": "universal", - "filename": "image.png", - "scale": "1x" - }, - { - "idiom": "universal", - "scale": "2x" - }, - { - "idiom": "universal", - "scale": "3x" - } - ], - "info": { - "version": 1, - "author": "expo" - } -} \ No newline at end of file diff --git a/ios/bluesky/Images.xcassets/SplashScreen.imageset/image.png b/ios/bluesky/Images.xcassets/SplashScreen.imageset/image.png deleted file mode 100644 index e0e67b90a..000000000 --- a/ios/bluesky/Images.xcassets/SplashScreen.imageset/image.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/Contents.json b/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/Contents.json deleted file mode 100644 index ded1a4df0..000000000 --- a/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "filename" : "icon 2.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "filename" : "icon.png", - "idiom" : "universal", - "scale" : "2x" - }, - { - "filename" : "icon 1.png", - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon 1.png b/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon 1.png deleted file mode 100644 index 1dda9a342..000000000 --- a/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon 1.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon 2.png b/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon 2.png deleted file mode 100644 index 1dda9a342..000000000 --- a/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon 2.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon.png b/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon.png deleted file mode 100644 index 1dda9a342..000000000 --- a/ios/bluesky/Images.xcassets/SplashScreenBackground.imageset/icon.png +++ /dev/null Binary files differdiff --git a/ios/bluesky/Info.plist b/ios/bluesky/Info.plist deleted file mode 100644 index 06fff9ac4..000000000 --- a/ios/bluesky/Info.plist +++ /dev/null @@ -1,92 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>BGTaskSchedulerPermittedIdentifiers</key> - <array> - <string>com.transistorsoft.fetch</string> - </array> - <key>CFBundleDevelopmentRegion</key> - <string>$(DEVELOPMENT_LANGUAGE)</string> - <key>CFBundleDisplayName</key> - <string>Bluesky</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> - <key>CFBundleShortVersionString</key> - <string>1.15</string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleURLTypes</key> - <array> - <dict> - <key>CFBundleURLSchemes</key> - <array> - <string>xyz.blueskyweb.app</string> - </array> - </dict> - <dict> - <key>CFBundleURLSchemes</key> - <array> - <string>exp+bluesky</string> - </array> - </dict> - </array> - <key>CFBundleVersion</key> - <string>1</string> - <key>ITSAppUsesNonExemptEncryption</key> - <false/> - <key>LSRequiresIPhoneOS</key> - <true/> - <key>NSAppTransportSecurity</key> - <dict> - <key>NSAllowsArbitraryLoads</key> - <true/> - <key>NSExceptionDomains</key> - <dict> - <key>localhost</key> - <dict> - <key>NSExceptionAllowsInsecureHTTPLoads</key> - <true/> - </dict> - </dict> - </dict> - <key>NSCameraUsageDescription</key> - <string>Used to take pictures and videos when composing posts, choosing avatars, and so on.</string> - <key>NSLocationWhenInUseUsageDescription</key> - <string></string> - <key>NSMicrophoneUsageDescription</key> - <string>Used to take videos when composing posts.</string> - <key>NSPhotoLibraryUsageDescription</key> - <string>Used to upload pictures and videos when composing posts, choosing avatars, and so on.</string> - <key>UIBackgroundModes</key> - <array> - <string>fetch</string> - </array> - <key>UILaunchStoryboardName</key> - <string>SplashScreen</string> - <key>UIRequiredDeviceCapabilities</key> - <array> - <string>armv7</string> - </array> - <key>UIRequiresFullScreen</key> - <true/> - <key>UIStatusBarStyle</key> - <string>UIStatusBarStyleDefault</string> - <key>UISupportedInterfaceOrientations</key> - <array> - <string>UIInterfaceOrientationPortrait</string> - </array> - <key>UIUserInterfaceStyle</key> - <string>Light</string> - <key>UIViewControllerBasedStatusBarAppearance</key> - <false/> -</dict> -</plist> diff --git a/ios/bluesky/SplashScreen.storyboard b/ios/bluesky/SplashScreen.storyboard deleted file mode 100644 index 36ea46d75..000000000 --- a/ios/bluesky/SplashScreen.storyboard +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21507" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="EXPO-VIEWCONTROLLER-1"> - <device id="retina5_5" orientation="portrait" appearance="light"/> - <dependencies> - <deployment identifier="iOS"/> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21505"/> - <capability name="Safe area layout guides" minToolsVersion="9.0"/> - <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> - </dependencies> - <scenes> - <!--View Controller--> - <scene sceneID="EXPO-SCENE-1"> - <objects> - <viewController storyboardIdentifier="SplashScreenViewController" id="EXPO-VIEWCONTROLLER-1" sceneMemberID="viewController"> - <view key="view" userInteractionEnabled="NO" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="EXPO-ContainerView" userLabel="ContainerView"> - <rect key="frame" x="0.0" y="0.0" width="414" height="736"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> - <subviews> - <imageView userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" insetsLayoutMarginsFromSafeArea="NO" image="SplashScreenBackground" translatesAutoresizingMaskIntoConstraints="NO" id="EXPO-SplashScreenBackground" userLabel="SplashScreenBackground"> - <rect key="frame" x="0.0" y="0.0" width="414" height="736"/> - </imageView> - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="SplashScreen" translatesAutoresizingMaskIntoConstraints="NO" id="EXPO-SplashScreen" userLabel="SplashScreen"> - <rect key="frame" x="0.0" y="0.0" width="414" height="736"/> - </imageView> - </subviews> - <viewLayoutGuide key="safeArea" id="Rmq-lb-GrQ"/> - <constraints> - <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="top" secondItem="EXPO-ContainerView" secondAttribute="top" id="1gX-mQ-vu6"/> - <constraint firstItem="EXPO-SplashScreen" firstAttribute="top" secondItem="EXPO-ContainerView" secondAttribute="top" id="2VS-Uz-0LU"/> - <constraint firstItem="EXPO-SplashScreen" firstAttribute="leading" secondItem="EXPO-ContainerView" secondAttribute="leading" id="61d16215e44b98e39d0a2c74fdbfaaa22601b12c"/> - <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="leading" secondItem="EXPO-ContainerView" secondAttribute="leading" id="6tX-OG-Sck"/> - <constraint firstItem="EXPO-SplashScreen" firstAttribute="top" secondItem="EXPO-ContainerView" secondAttribute="top" id="83fcb9b545b870ba44c24f0feeb116490c499c52"/> - <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="trailing" secondItem="EXPO-ContainerView" secondAttribute="trailing" id="ABX-8g-7v4"/> - <constraint firstItem="EXPO-SplashScreen" firstAttribute="trailing" secondItem="EXPO-ContainerView" secondAttribute="trailing" id="I6l-TP-6fn"/> - <constraint firstItem="EXPO-SplashScreen" firstAttribute="leading" secondItem="EXPO-ContainerView" secondAttribute="leading" id="LhH-Ei-DKo"/> - <constraint firstItem="EXPO-SplashScreen" firstAttribute="bottom" secondItem="EXPO-ContainerView" secondAttribute="bottom" id="d6a0be88096b36fb132659aa90203d39139deda9"/> - <constraint firstItem="EXPO-SplashScreen" firstAttribute="trailing" secondItem="EXPO-ContainerView" secondAttribute="trailing" id="f934da460e9ab5acae3ad9987d5b676a108796c1"/> - <constraint firstItem="EXPO-SplashScreenBackground" firstAttribute="bottom" secondItem="EXPO-ContainerView" secondAttribute="bottom" id="jkI-2V-eW5"/> - <constraint firstItem="EXPO-SplashScreen" firstAttribute="bottom" secondItem="EXPO-ContainerView" secondAttribute="bottom" id="nbp-HC-eaG"/> - </constraints> - </view> - </viewController> - <placeholder placeholderIdentifier="IBFirstResponder" id="EXPO-PLACEHOLDER-1" userLabel="First Responder" sceneMemberID="firstResponder"/> - </objects> - <point key="canvasLocation" x="140.625" y="129.4921875"/> - </scene> - </scenes> - <resources> - <image name="SplashScreen" width="600" height="900"/> - <image name="SplashScreenBackground" width="1" height="1"/> - </resources> -</document> diff --git a/ios/bluesky/Supporting/Expo.plist b/ios/bluesky/Supporting/Expo.plist deleted file mode 100644 index 44b3d2428..000000000 --- a/ios/bluesky/Supporting/Expo.plist +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> - <dict> - <key>EXUpdatesCheckOnLaunch</key> - <string>ALWAYS</string> - <key>EXUpdatesEnabled</key> - <true/> - <key>EXUpdatesLaunchWaitMs</key> - <integer>0</integer> - <key>EXUpdatesSDKVersion</key> - <string>48.0.0</string> - <key>EXUpdatesURL</key> - <string>https://exp.host/@arrygoo/bluesky</string> - </dict> -</plist> \ No newline at end of file diff --git a/ios/bluesky/bluesky.entitlements b/ios/bluesky/bluesky.entitlements deleted file mode 100644 index 6fdb0bfdf..000000000 --- a/ios/bluesky/bluesky.entitlements +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> - <dict> - <key>aps-environment</key> - <string>development</string> - <key>com.apple.developer.associated-domains</key> - <array> - <string>applinks:bsky.app</string> - </array> - </dict> -</plist> \ No newline at end of file diff --git a/ios/bluesky/main.m b/ios/bluesky/main.m deleted file mode 100644 index b1df44b95..000000000 --- a/ios/bluesky/main.m +++ /dev/null @@ -1,9 +0,0 @@ -#import <UIKit/UIKit.h> - -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/ios/bluesky/noop-file.swift b/ios/bluesky/noop-file.swift deleted file mode 100644 index 9835ba300..000000000 --- a/ios/bluesky/noop-file.swift +++ /dev/null @@ -1,4 +0,0 @@ -// -// @generated -// A blank Swift file must be created for native modules with Swift files to work correctly. -// \ No newline at end of file diff --git a/package.json b/package.json index 087be6686..a9e0b4758 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,8 @@ "await-lock": "^2.2.2", "base64-js": "^1.5.1", "email-validator": "^2.0.4", - "expo": "~48.0.9", + "expo": "~48.0.10", + "expo-build-properties": "~0.5.1", "expo-camera": "~13.2.1", "expo-dev-client": "~2.1.1", "expo-image-picker": "~14.1.1", @@ -66,6 +67,7 @@ "expo-media-library": "~15.2.3", "expo-splash-screen": "~0.18.1", "expo-status-bar": "~1.4.4", + "expo-system-ui": "~2.2.1", "fast-text-encoding": "^1.0.6", "graphemer": "^1.4.0", "he": "^1.2.0", @@ -89,7 +91,7 @@ "react-avatar-editor": "^13.0.0", "react-circular-progressbar": "^2.1.0", "react-dom": "^18.2.0", - "react-native": "0.71.4", + "react-native": "0.71.6", "react-native-appstate-hook": "^1.0.6", "react-native-background-fetch": "^4.1.8", "react-native-drawer-layout": "^3.2.0", @@ -101,7 +103,7 @@ "react-native-image-crop-picker": "^0.38.1", "react-native-inappbrowser-reborn": "^3.6.3", "react-native-linear-gradient": "^2.6.2", - "react-native-pager-view": "6.1.2", + "react-native-pager-view": "6.1.4", "react-native-progress": "bluesky-social/react-native-progress", "react-native-reanimated": "~2.14.4", "react-native-root-siblings": "^4.1.1", diff --git a/src/App.native.tsx b/src/App.native.tsx index 0adbae606..e0e030cbc 100644 --- a/src/App.native.tsx +++ b/src/App.native.tsx @@ -2,7 +2,7 @@ import 'react-native-url-polyfill/auto' import React, {useState, useEffect} from 'react' import {Linking} from 'react-native' import {RootSiblingParent} from 'react-native-root-siblings' -import SplashScreen from 'react-native-splash-screen' +import * as SplashScreen from 'expo-splash-screen' import {SafeAreaProvider} from 'react-native-safe-area-context' import {GestureHandlerRootView} from 'react-native-gesture-handler' import {observer} from 'mobx-react-lite' @@ -28,7 +28,7 @@ const App = observer(() => { setRootStore(store) analytics.init(store) notifee.init(store) - SplashScreen.hide() + SplashScreen.hideAsync() Linking.getInitialURL().then((url: string | null) => { if (url) { handleLink(url) diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index 7dcd6b2c1..99bcf91cf 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -4,13 +4,13 @@ import { ActivityIndicator, KeyboardAvoidingView, Platform, - SafeAreaView, ScrollView, StyleSheet, TouchableOpacity, TouchableWithoutFeedback, View, } from 'react-native' +import {SafeAreaView} from 'react-native-safe-area-context' import LinearGradient from 'react-native-linear-gradient' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {RichText} from '@atproto/api' @@ -209,7 +209,7 @@ export const ComposePost = observer(function ComposePost({ behavior={Platform.OS === 'ios' ? 'padding' : 'height'} style={styles.outer}> <TouchableWithoutFeedback onPressIn={onPressContainer}> - <SafeAreaView style={s.flex1}> + <SafeAreaView style={[s.flex1]}> <View style={styles.topbar}> <TouchableOpacity testID="composerCancelButton" diff --git a/src/view/com/lightbox/ImageViewing/index.tsx b/src/view/com/lightbox/ImageViewing/index.tsx index 722540a58..8aee9ebbd 100644 --- a/src/view/com/lightbox/ImageViewing/index.tsx +++ b/src/view/com/lightbox/ImageViewing/index.tsx @@ -26,6 +26,7 @@ import useAnimatedComponents from './hooks/useAnimatedComponents' import useImageIndexChange from './hooks/useImageIndexChange' import useRequestClose from './hooks/useRequestClose' import {ImageSource} from './@types' +import {SafeAreaView} from 'react-native-safe-area-context' type Props = { images: ImageSource[] @@ -97,7 +98,7 @@ function ImageViewing({ } return ( - <View style={styles.screen} onLayout={onLayout}> + <SafeAreaView style={styles.screen} onLayout={onLayout}> <ModalsContainer /> <View style={[styles.container, {opacity, backgroundColor}]}> <Animated.View style={[styles.header, {transform: headerTransform}]}> @@ -152,7 +153,7 @@ function ImageViewing({ </Animated.View> )} </View> - </View> + </SafeAreaView> ) } diff --git a/src/view/com/pager/TabBar.tsx b/src/view/com/pager/TabBar.tsx index 2070898bf..8f3951e7b 100644 --- a/src/view/com/pager/TabBar.tsx +++ b/src/view/com/pager/TabBar.tsx @@ -1,4 +1,4 @@ -import React, {createRef, useState, useMemo} from 'react' +import React, {createRef, useState, useMemo, useRef} from 'react' import { Animated, StyleSheet, @@ -46,6 +46,7 @@ export function TabBar({ [items.length], ) const panX = Animated.add(position, offset) + const containerRef = useRef<View>(null) const indicatorStyle = { backgroundColor: indicatorColor || pal.colors.link, @@ -73,7 +74,12 @@ export function TabBar({ for (let i = 0; i < items.length; i++) { promises.push( new Promise<Layout>(resolve => { - itemRefs[i].current?.measure( + if (!containerRef.current || !itemRefs[i].current) { + return resolve({x: 0, width: 0}) + } + + itemRefs[i].current?.measureLayout( + containerRef.current, (x: number, _y: number, width: number) => { resolve({x, width}) }, @@ -94,7 +100,11 @@ export function TabBar({ } return ( - <View testID={testID} style={[pal.view, styles.outer]} onLayout={onLayout}> + <View + testID={testID} + style={[pal.view, styles.outer]} + onLayout={onLayout} + ref={containerRef}> <Animated.View style={[styles.indicator, indicatorStyle]} /> {items.map((item, i) => { const selected = i === selectedPage diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index 9f6c1f49f..bd07f9b11 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -173,11 +173,11 @@ export const Feed = observer(function Feed({ /> } contentContainerStyle={s.contentContainer} + style={{paddingTop: headerOffset}} onScroll={onScroll} onEndReached={onEndReached} onEndReachedThreshold={0.6} removeClippedSubviews={true} - contentInset={{top: headerOffset}} contentOffset={{x: 0, y: headerOffset * -1}} /> )} diff --git a/src/view/com/profile/ProfileHeader.tsx b/src/view/com/profile/ProfileHeader.tsx index 47281c450..1326d3ec3 100644 --- a/src/view/com/profile/ProfileHeader.tsx +++ b/src/view/com/profile/ProfileHeader.tsx @@ -366,6 +366,8 @@ const styles = StyleSheet.create({ left: 10, width: 30, height: 30, + overflow: 'hidden', + borderRadius: 15, }, backBtn: { width: 30, diff --git a/src/view/com/util/PostMeta.tsx b/src/view/com/util/PostMeta.tsx index 5202b81a5..c46c16da0 100644 --- a/src/view/com/util/PostMeta.tsx +++ b/src/view/com/util/PostMeta.tsx @@ -105,8 +105,12 @@ export const PostMeta = observer(function (opts: PostMetaOpts) { text={ <> {sanitizeDisplayName(displayName)} - <Text type="md" style={[pal.textLight]}> - {handle} + <Text + type="md" + style={[pal.textLight]} + numberOfLines={1} + lineHeight={1.2}> + @{handle} </Text> </> } @@ -130,7 +134,6 @@ export const PostMeta = observer(function (opts: PostMetaOpts) { const styles = StyleSheet.create({ meta: { flexDirection: 'row', - alignItems: 'baseline', paddingBottom: 2, }, metaTwoLine: { diff --git a/src/view/com/util/Selector.tsx b/src/view/com/util/Selector.tsx index 5b331dc8d..03db13bd1 100644 --- a/src/view/com/util/Selector.tsx +++ b/src/view/com/util/Selector.tsx @@ -1,4 +1,4 @@ -import React, {createRef, useState, useMemo} from 'react' +import React, {createRef, useState, useMemo, useRef} from 'react' import { Animated, StyleSheet, @@ -24,6 +24,7 @@ export function Selector({ panX: Animated.Value onSelect?: (index: number) => void }) { + const containerRef = useRef<View>(null) const pal = usePalette('default') const [itemLayouts, setItemLayouts] = useState<undefined | Layout[]>( undefined, @@ -68,7 +69,11 @@ export function Selector({ for (let i = 0; i < items.length; i++) { promises.push( new Promise<Layout>(resolve => { - itemRefs[i].current?.measure( + if (!containerRef.current || !itemRefs[i].current) { + return resolve({x: 0, width: 0}) + } + itemRefs[i].current?.measureLayout( + containerRef.current, (x: number, _y: number, width: number) => { resolve({x, width}) }, @@ -86,7 +91,10 @@ export function Selector({ } return ( - <View style={[pal.view, styles.outer]} onLayout={onLayout}> + <View + style={[pal.view, styles.outer]} + onLayout={onLayout} + ref={containerRef}> <Animated.View style={[styles.underline, underlineStyle]} /> {items.map((item, i) => { const selected = i === selectedIndex diff --git a/src/view/shell/index.tsx b/src/view/shell/index.tsx index 84242c283..eab050fd0 100644 --- a/src/view/shell/index.tsx +++ b/src/view/shell/index.tsx @@ -1,6 +1,7 @@ import React from 'react' import {observer} from 'mobx-react-lite' -import {StatusBar, StyleSheet, useWindowDimensions, View} from 'react-native' +import {StatusBar} from 'expo-status-bar' +import {StyleSheet, useWindowDimensions, View} from 'react-native' import {useSafeAreaInsets} from 'react-native-safe-area-context' import {Drawer} from 'react-native-drawer-layout' import {useNavigationState} from '@react-navigation/native' @@ -43,7 +44,7 @@ const ShellInner = observer(() => { open={store.shell.isDrawerOpen} onOpen={onOpenDrawer} onClose={onCloseDrawer} - swipeEdgeWidth={winDim.width} + swipeEdgeWidth={winDim.width / 2} swipeEnabled={ !canGoBack && store.session.hasSession && @@ -72,11 +73,7 @@ export const Shell: React.FC = observer(() => { const pal = usePalette('default') return ( <View testID="mobileShellView" style={[styles.outerContainer, pal.view]}> - <StatusBar - barStyle={ - theme.colorScheme === 'dark' ? 'light-content' : 'dark-content' - } - /> + <StatusBar style={theme.colorScheme === 'dark' ? 'light' : 'dark'} /> <RoutesContainer> <ShellInner /> </RoutesContainer> diff --git a/yarn.lock b/yarn.lock index 9f138a148..a130ce254 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2709,7 +2709,7 @@ dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@^10.2.0": +"@react-native-community/cli-doctor@^10.2.2": version "10.2.2" resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-10.2.2.tgz#b1893604fa9fc8971064e7c00042350f96868bfe" integrity sha512-49Ep2aQOF0PkbAR/TcyMjOm9XwBa8VQr+/Zzf4SJeYwiYLCT1NZRAVAVjYRXl0xqvq5S5mAGZZShS4AQl4WsZw== @@ -2753,19 +2753,7 @@ glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-ios@10.2.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.0.tgz#be21c0e3bbf17358d540cc23e5556bf679f6322e" - integrity sha512-hIPK3iL/mL+0ChXmQ9uqqzNOKA48H+TAzg+hrxQLll/6dNMxDeK9/wZpktcsh8w+CyhqzKqVernGcQs7tPeKGw== - dependencies: - "@react-native-community/cli-tools" "^10.1.1" - chalk "^4.1.2" - execa "^1.0.0" - fast-xml-parser "^4.0.12" - glob "^7.1.3" - ora "^5.4.1" - -"@react-native-community/cli-platform-ios@^10.2.1": +"@react-native-community/cli-platform-ios@10.2.1", "@react-native-community/cli-platform-ios@^10.2.1": version "10.2.1" resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.1.tgz#2e6bd2cb6d48cbb8720d7b7265bb1bab80745f72" integrity sha512-hz4zu4Y6eyj7D0lnZx8Mf2c2si8y+zh/zUTgCTaPPLzQD8jSZNNBtUUiA1cARm2razpe8marCZ1QbTMAGbf3mg== @@ -2777,7 +2765,7 @@ glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@^10.2.0": +"@react-native-community/cli-plugin-metro@^10.2.2": version "10.2.2" resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.2.tgz#766914e3c8007dfe52b253544c4f6cd8549919ac" integrity sha512-sTGjZlD3OGqbF9v1ajwUIXhGmjw9NyJ/14Lo0sg7xH8Pv4qUd5ZvQ6+DWYrQn3IKFUMfGFWYyL81ovLuPylrpw== @@ -2831,17 +2819,17 @@ dependencies: joi "^17.2.1" -"@react-native-community/cli@10.2.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-10.2.0.tgz#bcb65bb3dcb03b0fc4e49619d51e12d23396b301" - integrity sha512-QH7AFBz5FX2zTZRH/o3XehHrZ0aZZEL5Sh+23nSEFgSj3bLFfvjjZhuoiRSAo7iiBdvAoXrfxQ8TXgg4Xf/7fw== +"@react-native-community/cli@10.2.2": + version "10.2.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-10.2.2.tgz#3fa438ba7f19f83e07bc337765fc1cabdcf2cac2" + integrity sha512-aZVcVIqj+OG6CrliR/Yn8wHxrvyzbFBY9cj7n0MvRw/P54QUru2nNqUTSSbqv0Qaa297yHJbe6kFDojDMSTM8Q== dependencies: "@react-native-community/cli-clean" "^10.1.1" "@react-native-community/cli-config" "^10.1.1" "@react-native-community/cli-debugger-ui" "^10.0.0" - "@react-native-community/cli-doctor" "^10.2.0" + "@react-native-community/cli-doctor" "^10.2.2" "@react-native-community/cli-hermes" "^10.2.0" - "@react-native-community/cli-plugin-metro" "^10.2.0" + "@react-native-community/cli-plugin-metro" "^10.2.2" "@react-native-community/cli-server-api" "^10.1.1" "@react-native-community/cli-tools" "^10.1.1" "@react-native-community/cli-types" "^10.0.0" @@ -5158,7 +5146,7 @@ ajv@^6.10.0, ajv@^6.11.0, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.6.0, ajv@^8.6.3, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.11.0, ajv@^8.6.0, ajv@^8.6.3, ajv@^8.8.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -5691,10 +5679,10 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-expo@~9.3.1: - version "9.3.1" - resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-9.3.1.tgz#b31ddfce0d7ed1d848705e7178c1eb4ae4be9db0" - integrity sha512-1JL4T7q3uXu9FeJhLXDAKhFbWs75Qj2pixA60eR2ROzE9LnrKxm2g42OfcArS4vJcPj2NzcOdPpMI9/ZgF8i8Q== +babel-preset-expo@~9.3.2: + version "9.3.2" + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-9.3.2.tgz#0fe408d8d816a3e10fde2e1d1f7aa51b112baf3a" + integrity sha512-BjyvjwjJG0MaaDBLP/esbXRrAItM76po9L9zfnLxeqgFsHCIPmD+6ir45coDLGAXwR8m9It3G1yqYM9JPyemsQ== dependencies: "@babel/plugin-proposal-decorators" "^7.12.9" "@babel/plugin-proposal-object-rest-spread" "^7.12.13" @@ -5702,7 +5690,7 @@ babel-preset-expo@~9.3.1: "@babel/preset-env" "^7.20.0" babel-plugin-module-resolver "^4.1.0" babel-plugin-react-native-web "~0.18.10" - metro-react-native-babel-preset "0.73.8" + metro-react-native-babel-preset "0.73.9" babel-preset-fbjs@^3.4.0: version "3.4.0" @@ -8262,6 +8250,14 @@ expo-asset@~8.9.1: path-browserify "^1.0.0" url-parse "^1.5.9" +expo-build-properties@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/expo-build-properties/-/expo-build-properties-0.5.2.tgz#332bb033b9d1d76f4892d6a7862a7fe0b23da6f5" + integrity sha512-YLrXNzXLjcwgChO58j74CLexhsSUdY/voGYH8pA9tZ2rkOcjZuOI2IkIVZqYUtkwrO0H4n3QXYc5TyP/Y6ohmg== + dependencies: + ajv "^8.11.0" + semver "^7.3.5" + expo-camera@~13.2.1: version "13.2.1" resolved "https://registry.yarnpkg.com/expo-camera/-/expo-camera-13.2.1.tgz#bfd1e2248d10a5da43d43a4cc77e378e5acf25bb" @@ -8408,22 +8404,30 @@ expo-status-bar@~1.4.4: resolved "https://registry.yarnpkg.com/expo-status-bar/-/expo-status-bar-1.4.4.tgz#6874ccfda5a270d66f123a9f220735a76692d114" integrity sha512-5DV0hIEWgatSC3UgQuAZBoQeaS9CqeWRZ3vzBR9R/+IUD87Adbi4FGhU10nymRqFXOizGsureButGZIXPs7zEA== +expo-system-ui@~2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/expo-system-ui/-/expo-system-ui-2.2.1.tgz#d955d2fcb93e196e183ed79e5da1b4427f1d4896" + integrity sha512-a//8woMYFz5k4lSm8Mt84kueuQRv4TEU1ESwZQl0cEZcKlxw5e4t4Z/68KGVzCLWOMUFoCN67BgFwxpwHBbrMw== + dependencies: + "@react-native/normalize-color" "^2.0.0" + debug "^4.3.2" + expo-updates-interface@~0.9.0: version "0.9.1" resolved "https://registry.yarnpkg.com/expo-updates-interface/-/expo-updates-interface-0.9.1.tgz#e81308d551ed5a4c35c8770ac61434f6ca749610" integrity sha512-wk88LLhseQ7LJvxdN7BTKiryyqALxnrvr+lyHK3/prg76Yy0EGi2Q/oE/rtFyyZ1JmQDRbO/5pdX0EE6QqVQXQ== -expo@~48.0.9: - version "48.0.9" - resolved "https://registry.yarnpkg.com/expo/-/expo-48.0.9.tgz#7beaecc09e0c364a2c152a0b8bd71060b2d37186" - integrity sha512-RlYpJSny4g3G2sqAfx1taaT7QFEw2cIfYLlZWmguA6EQSCviaeaQU1m4tvVXU1jIXb/w8jqer18XIq56VuECfg== +expo@~48.0.10: + version "48.0.10" + resolved "https://registry.yarnpkg.com/expo/-/expo-48.0.10.tgz#c1218f6a0ca9ca8209d6f833dc6911743870dfaf" + integrity sha512-8YXG6um3ld36nu/ONEC0NNkMatdj4k/HwR7OUd3dKUt3PJSkZHsCeLXIu8za7WSWpgPAU/xAj35noPFEFnjO1w== dependencies: "@babel/runtime" "^7.20.0" "@expo/cli" "0.6.2" "@expo/config" "8.0.2" "@expo/config-plugins" "6.0.1" "@expo/vector-icons" "^13.0.0" - babel-preset-expo "~9.3.1" + babel-preset-expo "~9.3.2" cross-spawn "^6.0.5" expo-application "~5.1.1" expo-asset "~8.9.1" @@ -11953,16 +11957,6 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -metro-babel-transformer@0.73.8: - version "0.73.8" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.73.8.tgz#521374cb9234ba126f3f8d63588db5901308b4ed" - integrity sha512-GO6H/W2RjZ0/gm1pIvdO9EP34s3XN6kzoeyxqmfqKfYhJmYZf1SzXbyiIHyMbJNwJVrsKuHqu32+GopTlKscWw== - dependencies: - "@babel/core" "^7.20.0" - hermes-parser "0.8.0" - metro-source-map "0.73.8" - nullthrows "^1.1.1" - metro-babel-transformer@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.73.9.tgz#bec8aaaf1bbdc2e469fde586fde455f8b2a83073" @@ -12056,10 +12050,10 @@ metro-minify-uglify@0.73.9: dependencies: uglify-es "^3.1.9" -metro-react-native-babel-preset@0.73.8, metro-react-native-babel-preset@^0.73.7: - version "0.73.8" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.8.tgz#04908f264f5d99c944ae20b5b11f659431328431" - integrity sha512-spNrcQJTbQntEIqJnCA6yL4S+dzV9fXCk7U+Rm7yJasZ4o4Frn7jP23isu7FlZIp1Azx1+6SbP7SgQM+IP5JgQ== +metro-react-native-babel-preset@0.73.9: + version "0.73.9" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz#ef54637dd20f025197beb49e71309a9c539e73e2" + integrity sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" @@ -12100,10 +12094,10 @@ metro-react-native-babel-preset@0.73.8, metro-react-native-babel-preset@^0.73.7: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-preset@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz#ef54637dd20f025197beb49e71309a9c539e73e2" - integrity sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw== +metro-react-native-babel-preset@^0.73.7: + version "0.73.8" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.8.tgz#04908f264f5d99c944ae20b5b11f659431328431" + integrity sha512-spNrcQJTbQntEIqJnCA6yL4S+dzV9fXCk7U+Rm7yJasZ4o4Frn7jP23isu7FlZIp1Azx1+6SbP7SgQM+IP5JgQ== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" @@ -12144,19 +12138,6 @@ metro-react-native-babel-preset@0.73.9: "@babel/template" "^7.0.0" react-refresh "^0.4.0" -metro-react-native-babel-transformer@0.73.8: - version "0.73.8" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.8.tgz#cbcd4b243216878431dc4311ce46f02a928e3991" - integrity sha512-oH/LCCJPauteAE28c0KJAiSrkV+1VJbU0PwA9UwaWnle+qevs/clpKQ8LrIr33YbBj4CiI1kFoVRuNRt5h4NFg== - dependencies: - "@babel/core" "^7.20.0" - babel-preset-fbjs "^3.4.0" - hermes-parser "0.8.0" - metro-babel-transformer "0.73.8" - metro-react-native-babel-preset "0.73.8" - metro-source-map "0.73.8" - nullthrows "^1.1.1" - metro-react-native-babel-transformer@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.9.tgz#4f4f0cfa5119bab8b53e722fabaf90687d0cbff0" @@ -12177,14 +12158,6 @@ metro-resolver@0.73.9: dependencies: absolute-path "^0.0.0" -metro-runtime@0.73.8: - version "0.73.8" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.73.8.tgz#dadae7c154fbbde24390cf7f7e7d934a2768cd18" - integrity sha512-M+Bg9M4EN5AEpJ8NkiUsawD75ifYvYfHi05w6QzHXaqOrsTeaRbbeLuOGCYxU2f/tPg17wQV97/rqUQzs9qEtA== - dependencies: - "@babel/runtime" "^7.0.0" - react-refresh "^0.4.0" - metro-runtime@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.73.9.tgz#0b24c0b066b8629ee855a6e5035b65061fef60d5" @@ -12193,20 +12166,6 @@ metro-runtime@0.73.9: "@babel/runtime" "^7.0.0" react-refresh "^0.4.0" -metro-source-map@0.73.8: - version "0.73.8" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.73.8.tgz#5134174e3d43de26ad331b95f637944c6547d441" - integrity sha512-wozFXuBYMAy7b8BCYwC+qoXsvayVJBHWtSTlSLva99t+CoUSG9JO9kg1umzbOz28YYPxKmvb/wbnLMkHdas2cA== - dependencies: - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - invariant "^2.2.4" - metro-symbolicate "0.73.8" - nullthrows "^1.1.1" - ob1 "0.73.8" - source-map "^0.5.6" - vlq "^1.0.0" - metro-source-map@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.73.9.tgz#89ca41f6346aeb12f7f23496fa363e520adafebe" @@ -12221,18 +12180,6 @@ metro-source-map@0.73.9: source-map "^0.5.6" vlq "^1.0.0" -metro-symbolicate@0.73.8: - version "0.73.8" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.73.8.tgz#96920f607bce484283d822ee5fe18d932f69c03d" - integrity sha512-xkBAcceYYp0GGdCCuMzkCF1ejHsd0lYlbKBkjSRgM0Nlj80VapPaSwumYoAvSaDxcbkvS7/sCjURGp5DsSFgRQ== - dependencies: - invariant "^2.2.4" - metro-source-map "0.73.8" - nullthrows "^1.1.1" - source-map "^0.5.6" - through2 "^2.0.1" - vlq "^1.0.0" - metro-symbolicate@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.73.9.tgz#cb452299a36e5b86b2826e7426d51221635c48bf" @@ -12825,11 +12772,6 @@ nwsapi@^2.2.0, nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== -ob1@0.73.8: - version "0.73.8" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.73.8.tgz#c569f1a15ce2d04da6fd70293ad44b5a93b11978" - integrity sha512-1F7j+jzD+edS6ohQP7Vg5f3yiIk5i3x1uLrNIHOmLHWzWK1t3zrDpjnoXghccdVlsU+UjbyURnDynm4p0GgXeA== - ob1@0.73.9: version "0.73.9" resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.73.9.tgz#d5677a0dd3e2f16ad84231278d79424436c38c59" @@ -14731,10 +14673,10 @@ react-native-get-random-values@^1.8.0: dependencies: fast-base64-decode "^1.0.0" -react-native-gradle-plugin@^0.71.16: - version "0.71.16" - resolved "https://registry.yarnpkg.com/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.16.tgz#822bb0c680e03b5df5aa65f2e5ffc2bc2930854a" - integrity sha512-H2BjG2zk7B7Wii9sXvd9qhCVRQYDAHSWdMw9tscmZBqSP62DkIWEQSk4/B2GhQ4aK9ydVXgtqR6tBeg3yy8TSA== +react-native-gradle-plugin@^0.71.17: + version "0.71.17" + resolved "https://registry.yarnpkg.com/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.17.tgz#cf780a27270f0a32dca8184eff91555d7627dd00" + integrity sha512-OXXYgpISEqERwjSlaCiaQY6cTY5CH6j73gdkWpK0hedxtiWMWgH+i5TOi4hIGYitm9kQBeyDu+wim9fA8ROFJA== react-native-haptic-feedback@^1.14.0: version "1.14.0" @@ -14759,10 +14701,10 @@ react-native-linear-gradient@^2.6.2: resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-2.6.2.tgz#56598a76832724b2afa7889747635b5c80948f38" integrity sha512-Z8Xxvupsex+9BBFoSYS87bilNPWcRfRsGC0cpJk72Nxb5p2nEkGSBv73xZbEHnW2mUFvP+huYxrVvjZkr/gRjQ== -react-native-pager-view@6.1.2: - version "6.1.2" - resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.1.2.tgz#3522079b9a9d6634ca5e8d153bc0b4d660254552" - integrity sha512-qs2KSFc+7N7B+UZ6SG2sTvCkppagm5fVyRclv1KFKc7lDtrhXLzN59tXJw575LDP/dRJoXsNwqUAhZJdws6ABQ== +react-native-pager-view@6.1.4: + version "6.1.4" + resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.1.4.tgz#3a63ebd1b72f81991157ea552bb9c887e529bc8c" + integrity sha512-fmTwgGwPxGCBusKAq7gHzm+s1Yp0qh5rKPoQszaCuxrb+76KgK4Qe82jJNPUp2xTZOKSw+FbJU2QahF8ncTl+w== react-native-progress@bluesky-social/react-native-progress: version "5.0.0" @@ -14849,15 +14791,15 @@ react-native-web@^0.18.11: postcss-value-parser "^4.2.0" styleq "^0.1.2" -react-native@0.71.4: - version "0.71.4" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.71.4.tgz#f03f600efe68f745d19454ab17f9c1a9ef304790" - integrity sha512-3hSYqvWrOdKhpV3HpEKp1/CkWx8Sr/N/miCrmUIAsVTSJUR7JW0VvIsrV9urDhUj/s6v2WF4n7qIEEJsmTCrPw== +react-native@0.71.6: + version "0.71.6" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.71.6.tgz#e8f07baf55abd1015eaa7040ceaa4aa632c2c04f" + integrity sha512-gHrDj7qaAaiE41JwaFCh3AtvOqOLuRgZtHKzNiwxakG/wvPAYmG73ECfWHGxjxIx/QT17Hp37Da3ipCei/CayQ== dependencies: "@jest/create-cache-key-function" "^29.2.1" - "@react-native-community/cli" "10.2.0" + "@react-native-community/cli" "10.2.2" "@react-native-community/cli-platform-android" "10.2.0" - "@react-native-community/cli-platform-ios" "10.2.0" + "@react-native-community/cli-platform-ios" "10.2.1" "@react-native/assets" "1.0.0" "@react-native/normalize-color" "2.1.0" "@react-native/polyfills" "2.0.0" @@ -14870,16 +14812,16 @@ react-native@0.71.4: jest-environment-node "^29.2.1" jsc-android "^250231.0.0" memoize-one "^5.0.0" - metro-react-native-babel-transformer "0.73.8" - metro-runtime "0.73.8" - metro-source-map "0.73.8" + metro-react-native-babel-transformer "0.73.9" + metro-runtime "0.73.9" + metro-source-map "0.73.9" mkdirp "^0.5.1" nullthrows "^1.1.1" pretty-format "^26.5.2" promise "^8.3.0" react-devtools-core "^4.26.1" react-native-codegen "^0.71.5" - react-native-gradle-plugin "^0.71.16" + react-native-gradle-plugin "^0.71.17" react-refresh "^0.4.0" react-shallow-renderer "^16.15.0" regenerator-runtime "^0.13.2" |