diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 000000000..187894b6a --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: '@react-native', +}; diff --git a/.gitignore b/.gitignore index 788c95a32..0d4d031a5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,81 @@ -.DS_Store Mammoth.xcodeproj/project.xcworkspace/xcuserdata/ Mammoth.xcodeproj/project.xcworkspace/xcshareddata/ Mammoth.xcodeproj/xcuserdata/ + +Mammoth.xcworkspace + ArkanaKeys .env +node_modules + +.yarn/* +!.yarn/releases/* +!.yarn/plugins/* + +# OSX +# +.DS_Store +Pods + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +ios/.xcode.env.local + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml +*.hprof +.cxx/ +*.keystore +!debug.keystore + +# node.js +# +node_modules/ +npm-debug.log +yarn-error.log + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/ + +**/fastlane/report.xml +**/fastlane/Preview.html +**/fastlane/screenshots +**/fastlane/test_output + +# Bundle artifact +*.jsbundle + +# Ruby / CocoaPods +/ios/Pods/ +/vendor/bundle/ + +# Temporary files created by Metro to check the health of the file watcher +.metro-health-check* + +# testing +/coverage diff --git a/.prettierrc.js b/.prettierrc.js new file mode 100644 index 000000000..2b540746a --- /dev/null +++ b/.prettierrc.js @@ -0,0 +1,7 @@ +module.exports = { + arrowParens: 'avoid', + bracketSameLine: true, + bracketSpacing: false, + singleQuote: true, + trailingComma: 'all', +}; diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000..97be60e05 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,12 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations. + // Extension identifier format: ${publisher}.${name}. Example: vscode.csharp + + // List of extensions which should be recommended for users of this workspace. + "recommendations": [ + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode", + ], + // List of extensions recommended by VS Code that should not be recommended for users of this workspace. + "unwantedRecommendations": [] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..9e9ed618f --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,71 @@ +{ + "search.exclude": { + "**/node_modules": false + }, + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.hg": true, + "**/CVS": true, + "**/.DS_Store": true, + "**/Thumbs.db": true, + "**/.classpath": true, + "**/.project": true, + "**/.settings": true, + "**/.factorypath": true, + "**/*.js": { + "when": "$(basename).ts" + }, + "**/*.js.map": true, + "**/node_modules": false + }, + "files.watcherExclude": { + "**/.git/objects/**": true, + "**/.git/subtree-cache/**": true, + "**/node_modules/*/**": true + }, + "debug.node.autoAttach": "off", + + "typescript.preferences.importModuleSpecifier": "relative", + "typescript.updateImportsOnFileMove.enabled": "always", + "editor.codeActionsOnSave": { + "source.organizeImports": "never" + }, + "[javascript]": { + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": "never" + } + }, + "[javascriptreact]": { + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": true + } + }, + "[typescript]": { + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": true + } + }, + "[typescriptreact]": { + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.organizeImports": true + } + }, + "javascript.format.enable": false, + "editor.tabSize": 2, + "editor.detectIndentation": false, + "git.ignoreLimitWarning": true, + "java.configuration.updateBuildConfiguration": "disabled", + "git.branchProtection": [ + "main", + ], + "[javascriptreact][typescript][typescriptreact]": { + "editor.codeActionsOnSave": { + "source.organizeImports": "explicit" + } + }, +} diff --git a/.watchmanconfig b/.watchmanconfig new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/.watchmanconfig @@ -0,0 +1 @@ +{} diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 000000000..8b757b29a --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index ca8987149..000000000 --- a/Gemfile.lock +++ /dev/null @@ -1,21 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - arkana (1.4.0) - dotenv (~> 2.7) - rainbow (~> 3.1.1) - yaml (~> 0.2) - dotenv (2.8.1) - rainbow (3.1.1) - yaml (0.2.1) - -PLATFORMS - arm64-darwin-22 - arm64-darwin-23 - x86_64-darwin-21 - -DEPENDENCIES - arkana - -BUNDLED WITH - 2.4.8 diff --git a/Mammoth/Mammoth-Bridging-Header.h b/Mammoth/Mammoth-Bridging-Header.h deleted file mode 100644 index 444feb599..000000000 --- a/Mammoth/Mammoth-Bridging-Header.h +++ /dev/null @@ -1,8 +0,0 @@ -// -// Mastodon-Bridging-Header.h -// Mastodon -// -// Created by Shihab Mehboob on 03/11/2022. -// - -#import "TOCropViewController.h" diff --git a/README.md b/README.md index 9ea59e1f3..2b1a288a4 100644 --- a/README.md +++ b/README.md @@ -12,18 +12,35 @@ The Mammoth Team **Requirements:** - Ruby 3.1+ -- Node.js 16+ +- Node.js 20.10.+ - Xcode 13+ - Swift 5+ +- Yarn 4.1.0+ 1. Clone the repo 1. Copy the `sample.env` to `.env` -1. Run `bundle install` to get the needed gems -1. From the root of the application still run `bin/arkana` This will generated +1. From the root directory run `yarn` to install dependencies +1. From the [ios](./ios) directory run `bundle install` to get the needed gems +1. From the [ios](./ios) directory run `bin/arkana` This will generated the needed 'ArkanaKeys' package that is a local swift package dependency. +1. From the [ios](./ios) directory install Cocoapods dependencies + - For Apple Silicon: `USE_FRAMEWORKS=static RCT_NEW_ARCH_ENABLED=1 arch -x86_64 bundle exec pod install` + - For Intel Mac: `USE_FRAMEWORKS=static RCT_NEW_ARCH_ENABLED=1 bundle exec pod install` + +**Run on iOS/iPadOS/MacOS** + +1. Start the Metro packager by running `yarn start` from the root directory +1. Open `Mammoth.xcworkspace` in the [ios](./ios) directory and run the `Mastodon` target + **Troubleshooting** +- If you're not running Node.js version 20.10.+ (`node --version`), use [nvm](https://github.com/nvm-sh/nvm) to install the correct Node.js version. + - Install [nvm](https://github.com/nvm-sh/nvm) using Homebrew: `brew install nvm ` + - Download Node.js v20.10.0: `nvm install 20.10.0` + - Use Node.js v20.10.0: `nvm use 20.10.0` + - Check if you're using the right Node.js version: `node --version` + - If you run `bin/arkana` and see the following, it can't find a valid `.env` file. Make sure you've copied the provided sample correctly and that it is in the root of the repo. @@ -34,7 +51,7 @@ The Mammoth Team the repo. ![XcodeArkanaBuildError](https://github.com/TheBLVD/mammoth-app/assets/76360/ec0fd8a9-285f-41dd-817d-60fc41d94e54) -- If you run `bin/arckan` and see the following: +- If you run `bin/arkana` and see the following: ```sh /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/universal-darwin22/rbconfig.rb:21: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777 diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 000000000..4e1987f9f --- /dev/null +++ b/babel.config.js @@ -0,0 +1,4 @@ +module.exports = { + presets: ['module:@react-native/babel-preset'], + }; + \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 000000000..0eac07a0b --- /dev/null +++ b/index.js @@ -0,0 +1,6 @@ +import {AppRegistry, LogBox} from 'react-native'; +import {Composer} from './src/components/_screens/Composer'; + +LogBox.ignoreAllLogs(); + +AppRegistry.registerComponent('Composer', () => Composer); diff --git a/.arkana.yml b/ios/.arkana.yml similarity index 100% rename from .arkana.yml rename to ios/.arkana.yml diff --git a/ios/.xcode.env b/ios/.xcode.env new file mode 100644 index 000000000..772b339b4 --- /dev/null +++ b/ios/.xcode.env @@ -0,0 +1 @@ +export NODE_BINARY=$(command -v node) diff --git a/Gemfile b/ios/Gemfile similarity index 72% rename from Gemfile rename to ios/Gemfile index 0157b2921..f7255366c 100644 --- a/Gemfile +++ b/ios/Gemfile @@ -3,3 +3,4 @@ source "https://rubygems.org" gem "arkana" +gem "cocoapods", "~>1.14.0" diff --git a/ios/Gemfile.lock b/ios/Gemfile.lock new file mode 100644 index 000000000..a5d4fa86c --- /dev/null +++ b/ios/Gemfile.lock @@ -0,0 +1,117 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.6) + rexml + activesupport (7.1.3) + base64 + bigdecimal + concurrent-ruby (~> 1.0, >= 1.0.2) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + minitest (>= 5.1) + mutex_m + tzinfo (~> 2.0) + addressable (2.8.6) + public_suffix (>= 2.0.2, < 6.0) + algoliasearch (1.27.5) + httpclient (~> 2.8, >= 2.8.3) + json (>= 1.5.1) + arkana (1.4.0) + dotenv (~> 2.7) + rainbow (~> 3.1.1) + yaml (~> 0.2) + atomos (0.1.3) + base64 (0.2.0) + bigdecimal (3.1.6) + claide (1.1.0) + cocoapods (1.14.3) + addressable (~> 2.8) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.14.3) + cocoapods-deintegrate (>= 1.0.3, < 2.0) + cocoapods-downloader (>= 2.1, < 3.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.6.0, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) + colored2 (~> 3.1) + escape (~> 0.0.4) + fourflusher (>= 2.3.0, < 3.0) + gh_inspector (~> 1.0) + molinillo (~> 0.8.0) + nap (~> 1.0) + ruby-macho (>= 2.3.0, < 3.0) + xcodeproj (>= 1.23.0, < 2.0) + cocoapods-core (1.14.3) + activesupport (>= 5.0, < 8) + addressable (~> 2.8) + algoliasearch (~> 1.0) + concurrent-ruby (~> 1.1) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + netrc (~> 0.11) + public_suffix (~> 4.0) + typhoeus (~> 1.0) + cocoapods-deintegrate (1.0.5) + cocoapods-downloader (2.1) + cocoapods-plugins (1.0.0) + nap + cocoapods-search (1.0.1) + cocoapods-trunk (1.6.0) + nap (>= 0.8, < 2.0) + netrc (~> 0.11) + cocoapods-try (1.2.0) + colored2 (3.1.2) + concurrent-ruby (1.2.3) + connection_pool (2.4.1) + dotenv (2.8.1) + drb (2.2.0) + ruby2_keywords + escape (0.0.4) + ethon (0.16.0) + ffi (>= 1.15.0) + ffi (1.16.3) + fourflusher (2.3.1) + fuzzy_match (2.0.4) + gh_inspector (1.1.3) + httpclient (2.8.3) + i18n (1.14.1) + concurrent-ruby (~> 1.0) + json (2.7.1) + minitest (5.21.2) + molinillo (0.8.0) + mutex_m (0.2.0) + nanaimo (0.3.0) + nap (1.1.0) + netrc (0.11.0) + public_suffix (4.0.7) + rainbow (3.1.1) + rexml (3.2.6) + ruby-macho (2.5.1) + ruby2_keywords (0.0.5) + typhoeus (1.4.1) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + xcodeproj (1.24.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.3.0) + rexml (~> 3.2.4) + yaml (0.2.1) + +PLATFORMS + arm64-darwin-22 + arm64-darwin-23 + x86_64-darwin-21 + +DEPENDENCIES + arkana + cocoapods (~> 1.14.0) + +BUNDLED WITH + 2.4.8 diff --git a/Mammoth Share Extension/Base.lproj/MainInterface.storyboard b/ios/Mammoth Share Extension/Base.lproj/MainInterface.storyboard similarity index 100% rename from Mammoth Share Extension/Base.lproj/MainInterface.storyboard rename to ios/Mammoth Share Extension/Base.lproj/MainInterface.storyboard diff --git a/Mammoth Share Extension/Info.plist b/ios/Mammoth Share Extension/Info.plist similarity index 100% rename from Mammoth Share Extension/Info.plist rename to ios/Mammoth Share Extension/Info.plist diff --git a/Mammoth Share Extension/Mammoth Share Extension.entitlements b/ios/Mammoth Share Extension/Mammoth Share Extension.entitlements similarity index 100% rename from Mammoth Share Extension/Mammoth Share Extension.entitlements rename to ios/Mammoth Share Extension/Mammoth Share Extension.entitlements diff --git a/Mammoth Share Extension/ShareViewController.swift b/ios/Mammoth Share Extension/ShareViewController.swift similarity index 100% rename from Mammoth Share Extension/ShareViewController.swift rename to ios/Mammoth Share Extension/ShareViewController.swift diff --git a/Mammoth.xcodeproj/project.pbxproj b/ios/Mammoth.xcodeproj/project.pbxproj similarity index 95% rename from Mammoth.xcodeproj/project.pbxproj rename to ios/Mammoth.xcodeproj/project.pbxproj index 172a52dfb..277531ffa 100644 --- a/Mammoth.xcodeproj/project.pbxproj +++ b/ios/Mammoth.xcodeproj/project.pbxproj @@ -27,6 +27,20 @@ 146C6A472B48113500A002D7 /* String+StripEmojis.swift in Sources */ = {isa = PBXBuildFile; fileRef = 146C6A462B48113500A002D7 /* String+StripEmojis.swift */; }; 14780F7B2AFBD6A700A7ECD9 /* RealtimeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14780F7A2AFBD6A700A7ECD9 /* RealtimeManager.swift */; }; 14780F812AFCEA7000A7ECD9 /* Reachability in Frameworks */ = {isa = PBXBuildFile; productRef = 14780F802AFCEA7000A7ECD9 /* Reachability */; }; + 1493DE6F2B6D4F8B00CB1611 /* ReactBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE5F2B6D4F8B00CB1611 /* ReactBridge.swift */; }; + 1493DE702B6D4F8B00CB1611 /* UIColor+Hex.m in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE612B6D4F8B00CB1611 /* UIColor+Hex.m */; }; + 1493DE712B6D4F8B00CB1611 /* NavigatorRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE622B6D4F8B00CB1611 /* NavigatorRegistry.swift */; }; + 1493DE722B6D4F8B00CB1611 /* NavigatorModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE632B6D4F8B00CB1611 /* NavigatorModule.m */; }; + 1493DE732B6D4F8B00CB1611 /* RCCCustomTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE662B6D4F8B00CB1611 /* RCCCustomTitleView.m */; }; + 1493DE742B6D4F8B00CB1611 /* NavigationEventEmitter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE672B6D4F8B00CB1611 /* NavigationEventEmitter.m */; }; + 1493DE752B6D4F8B00CB1611 /* ReactViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE682B6D4F8B00CB1611 /* ReactViewController.swift */; }; + 1493DE762B6D4F8B00CB1611 /* PostCardManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE6A2B6D4F8B00CB1611 /* PostCardManager.m */; }; + 1493DE772B6D4F8B00CB1611 /* MetaTextManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE6C2B6D4F8B00CB1611 /* MetaTextManager.m */; }; + 1493DE782B6D4F8B00CB1611 /* MetaTextProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE6D2B6D4F8B00CB1611 /* MetaTextProvider.swift */; }; + 1493DE7B2B6D501100CB1611 /* PostCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE7A2B6D501100CB1611 /* PostCardView.swift */; }; + 1493DE7E2B70FBD400CB1611 /* EventEmitter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE7D2B70FBD400CB1611 /* EventEmitter.swift */; }; + 1493DE812B70FC1400CB1611 /* ReactNativeEventEmitter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE802B70FC1400CB1611 /* ReactNativeEventEmitter.m */; }; + 1493DE832B70FC2E00CB1611 /* ReactNativeEventEmitter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1493DE822B70FC2E00CB1611 /* ReactNativeEventEmitter.swift */; }; 149A682D2AD6A4E200E72A83 /* Mute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 149A68282AD6A4E200E72A83 /* Mute.swift */; }; 149A682F2AD6A4E200E72A83 /* mute.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 149A682B2AD6A4E200E72A83 /* mute.aiff */; }; 149A68312AD6CE3700E72A83 /* AVManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 149A68302AD6CE3700E72A83 /* AVManager.swift */; }; @@ -146,6 +160,7 @@ 14E08C6A2B20BF9C00EF5A55 /* DeviceHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14E08C692B20BF9C00EF5A55 /* DeviceHelpers.swift */; }; 14F47F452B517DAB008F45CE /* PostCardMediaStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14F47F442B517DAB008F45CE /* PostCardMediaStack.swift */; }; 14F47F472B57F48B008F45CE /* PostCardMediaGallery.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14F47F462B57F48B008F45CE /* PostCardMediaGallery.swift */; }; + 1B52AF951E5FB791FD57F3AC /* Pods_Mammoth_MammothTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64E9A130D40BBED65DAA76EF /* Pods_Mammoth_MammothTests.framework */; }; 532567AC2971C512004E7636 /* Timelines.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53399A2B291526B900560F83 /* Timelines.swift */; }; 532567F32971D250004E7636 /* OtherStruct.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532567F22971D250004E7636 /* OtherStruct.swift */; }; 532567FF2976FA3A004E7636 /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532567FE2976FA3A004E7636 /* ShareViewController.swift */; }; @@ -545,6 +560,7 @@ 66D091F22A5362E900291B8D /* SignInPasswordVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66D091F02A5362E900291B8D /* SignInPasswordVC.swift */; }; 66D091F42A53653800291B8D /* UIViewController+Alert.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66D091F32A53653800291B8D /* UIViewController+Alert.swift */; }; 66D091F62A53692F00291B8D /* RoundedTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66D091F52A53692F00291B8D /* RoundedTextField.swift */; }; + 817492D017C074F09A095068 /* Pods_Mammoth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6626975A34945EDC4DC1AF73 /* Pods_Mammoth.framework */; }; 88330AC429F09BA40019AA62 /* MAMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88330AC329F09BA40019AA62 /* MAMenu.swift */; }; 88722D9629FC5A7200988277 /* PostActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88722D9529FC5A7200988277 /* PostActions.swift */; }; 887B32962A0AC72A00EE7EE3 /* ArkanaKeys in Frameworks */ = {isa = PBXBuildFile; productRef = 887B32952A0AC72A00EE7EE3 /* ArkanaKeys */; }; @@ -718,7 +734,7 @@ C382D2CA2AA617ED00688A83 /* BlurredBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = C382D2C92AA617ED00688A83 /* BlurredBackground.swift */; }; C382D2CC2AA6398F00688A83 /* ProfileBackButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C382D2CB2AA6398F00688A83 /* ProfileBackButton.swift */; }; C38B11142AAF1ED60077E053 /* ScrollUpIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C38B11132AAF1ED60077E053 /* ScrollUpIndicator.swift */; }; - C3A3DAC52A37592F00D275B6 /* (null) in Sources */ = {isa = PBXBuildFile; }; + C3A3DAC52A37592F00D275B6 /* BuildFile in Sources */ = {isa = PBXBuildFile; }; C3A521F129FFCCD5008AA5D1 /* VideoProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3A521F029FFCCD5008AA5D1 /* VideoProcessor.swift */; }; C3A834C52AB30BFF007E4A12 /* FeedEditorCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3A834C42AB30BFF007E4A12 /* FeedEditorCell.swift */; }; C3B5A5D82A30B9AD00427C73 /* PostCardQuotePost.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3B5A5D72A30B9AD00427C73 /* PostCardQuotePost.swift */; }; @@ -821,6 +837,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 0DF876826742A65E99D0BE4B /* Pods-Mammoth.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mammoth.release.xcconfig"; path = "Target Support Files/Pods-Mammoth/Pods-Mammoth.release.xcconfig"; sourceTree = ""; }; 144173562B21E0480058AFCC /* TutorialOverlay.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TutorialOverlay.swift; sourceTree = ""; }; 144173592B21E4490058AFCC /* TextBubbleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextBubbleView.swift; sourceTree = ""; }; 1441736C2B2B1FDA0058AFCC /* SDImageTransformers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SDImageTransformers.swift; sourceTree = ""; }; @@ -840,6 +857,23 @@ 146C6A442B456EFB00A002D7 /* CarouselNavigationHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarouselNavigationHeader.swift; sourceTree = ""; }; 146C6A462B48113500A002D7 /* String+StripEmojis.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+StripEmojis.swift"; sourceTree = ""; }; 14780F7A2AFBD6A700A7ECD9 /* RealtimeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealtimeManager.swift; sourceTree = ""; }; + 1493DE5F2B6D4F8B00CB1611 /* ReactBridge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReactBridge.swift; sourceTree = ""; }; + 1493DE602B6D4F8B00CB1611 /* RCCCustomTitleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCCCustomTitleView.h; sourceTree = ""; }; + 1493DE612B6D4F8B00CB1611 /* UIColor+Hex.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+Hex.m"; sourceTree = ""; }; + 1493DE622B6D4F8B00CB1611 /* NavigatorRegistry.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigatorRegistry.swift; sourceTree = ""; }; + 1493DE632B6D4F8B00CB1611 /* NavigatorModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NavigatorModule.m; sourceTree = ""; }; + 1493DE642B6D4F8B00CB1611 /* NavigationEventEmitter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NavigationEventEmitter.h; sourceTree = ""; }; + 1493DE652B6D4F8B00CB1611 /* UIColor+Hex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+Hex.h"; sourceTree = ""; }; + 1493DE662B6D4F8B00CB1611 /* RCCCustomTitleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCCCustomTitleView.m; sourceTree = ""; }; + 1493DE672B6D4F8B00CB1611 /* NavigationEventEmitter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NavigationEventEmitter.m; sourceTree = ""; }; + 1493DE682B6D4F8B00CB1611 /* ReactViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReactViewController.swift; sourceTree = ""; }; + 1493DE6A2B6D4F8B00CB1611 /* PostCardManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PostCardManager.m; sourceTree = ""; }; + 1493DE6C2B6D4F8B00CB1611 /* MetaTextManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MetaTextManager.m; sourceTree = ""; }; + 1493DE6D2B6D4F8B00CB1611 /* MetaTextProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MetaTextProvider.swift; sourceTree = ""; }; + 1493DE7A2B6D501100CB1611 /* PostCardView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostCardView.swift; sourceTree = ""; }; + 1493DE7D2B70FBD400CB1611 /* EventEmitter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EventEmitter.swift; sourceTree = ""; }; + 1493DE802B70FC1400CB1611 /* ReactNativeEventEmitter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReactNativeEventEmitter.m; sourceTree = ""; }; + 1493DE822B70FC2E00CB1611 /* ReactNativeEventEmitter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactNativeEventEmitter.swift; sourceTree = ""; }; 149A68232AD6A1FE00E72A83 /* Mute-master */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "Mute-master"; path = "../Mute-master"; sourceTree = ""; }; 149A68282AD6A4E200E72A83 /* Mute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mute.swift; sourceTree = ""; }; 149A682B2AD6A4E200E72A83 /* mute.aiff */ = {isa = PBXFileReference; lastKnownFileType = audio.aiff; path = mute.aiff; sourceTree = ""; }; @@ -1356,6 +1390,9 @@ 53B1585C293F66D20026E90B /* Decode85.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Decode85.swift; sourceTree = ""; }; 53B15868294227650026E90B /* FilterDetailsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterDetailsViewController.swift; sourceTree = ""; }; 53EB77ED29D2EAC80036CDE1 /* NavigationHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationHelpers.swift; sourceTree = ""; }; + 56AA1971E665906651E9BF86 /* Pods-Mammoth-MammothTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mammoth-MammothTests.debug.xcconfig"; path = "Target Support Files/Pods-Mammoth-MammothTests/Pods-Mammoth-MammothTests.debug.xcconfig"; sourceTree = ""; }; + 64E9A130D40BBED65DAA76EF /* Pods_Mammoth_MammothTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Mammoth_MammothTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6626975A34945EDC4DC1AF73 /* Pods_Mammoth.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Mammoth.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 662B60C52A4A1E8600CB331F /* Embed.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Embed.swift; sourceTree = ""; }; 662B60C62A4A1E8600CB331F /* Model.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Model.swift; sourceTree = ""; }; 662B60C72A4A1E8600CB331F /* Graph.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Graph.swift; sourceTree = ""; }; @@ -1397,6 +1434,8 @@ 88B9D50B29E9EB9400A7B1BC /* BundleExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BundleExtension.swift; sourceTree = ""; }; 88C69FC629FC474D0085C6A3 /* RepostButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RepostButtonView.swift; sourceTree = ""; }; 88EFEB292AC236E10040228B /* MothSocialJWT.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MothSocialJWT.swift; sourceTree = ""; }; + 8F5A28CC3C4F7FE3F5B589B3 /* Pods-Mammoth.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mammoth.debug.xcconfig"; path = "Target Support Files/Pods-Mammoth/Pods-Mammoth.debug.xcconfig"; sourceTree = ""; }; + B09C23B77DC299F638BE0CFF /* Pods-Mammoth-MammothTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mammoth-MammothTests.release.xcconfig"; path = "Target Support Files/Pods-Mammoth-MammothTests/Pods-Mammoth-MammothTests.release.xcconfig"; sourceTree = ""; }; BF0607762A2A66D50032682D /* IconPride.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = IconPride.png; sourceTree = ""; }; BF0607772A2A66D50032682D /* IconPride@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "IconPride@2x.png"; sourceTree = ""; }; BF0607782A2A66D50032682D /* IconPride@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "IconPride@3x.png"; sourceTree = ""; }; @@ -1641,6 +1680,7 @@ 662B60EF2A4A1F6D00CB331F /* JWTDecode in Frameworks */, 146C6A432B34545B00A002D7 /* UnifiedBlurHash in Frameworks */, 14A849FF2B4D75F20027C689 /* MetaTextKit in Frameworks */, + 817492D017C074F09A095068 /* Pods_Mammoth.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1656,6 +1696,7 @@ buildActionMask = 2147483647; files = ( BFCC9ABC29AB017D0081CE3B /* SDWebImage in Frameworks */, + 1B52AF951E5FB791FD57F3AC /* Pods_Mammoth_MammothTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1685,6 +1726,61 @@ path = Utils; sourceTree = ""; }; + 1493DE5D2B6D4F8B00CB1611 /* ReactHelpers */ = { + isa = PBXGroup; + children = ( + 1493DE7F2B70FBFA00CB1611 /* EventEmitter */, + 1493DE5E2B6D4F8B00CB1611 /* NativeNavigationLibrary */, + 1493DE692B6D4F8B00CB1611 /* Managers */, + ); + path = ReactHelpers; + sourceTree = ""; + }; + 1493DE5E2B6D4F8B00CB1611 /* NativeNavigationLibrary */ = { + isa = PBXGroup; + children = ( + 1493DE5F2B6D4F8B00CB1611 /* ReactBridge.swift */, + 1493DE602B6D4F8B00CB1611 /* RCCCustomTitleView.h */, + 1493DE612B6D4F8B00CB1611 /* UIColor+Hex.m */, + 1493DE622B6D4F8B00CB1611 /* NavigatorRegistry.swift */, + 1493DE632B6D4F8B00CB1611 /* NavigatorModule.m */, + 1493DE642B6D4F8B00CB1611 /* NavigationEventEmitter.h */, + 1493DE652B6D4F8B00CB1611 /* UIColor+Hex.h */, + 1493DE662B6D4F8B00CB1611 /* RCCCustomTitleView.m */, + 1493DE672B6D4F8B00CB1611 /* NavigationEventEmitter.m */, + 1493DE682B6D4F8B00CB1611 /* ReactViewController.swift */, + ); + path = NativeNavigationLibrary; + sourceTree = ""; + }; + 1493DE692B6D4F8B00CB1611 /* Managers */ = { + isa = PBXGroup; + children = ( + 1493DE6A2B6D4F8B00CB1611 /* PostCardManager.m */, + 1493DE6B2B6D4F8B00CB1611 /* MetaText */, + ); + path = Managers; + sourceTree = ""; + }; + 1493DE6B2B6D4F8B00CB1611 /* MetaText */ = { + isa = PBXGroup; + children = ( + 1493DE6C2B6D4F8B00CB1611 /* MetaTextManager.m */, + 1493DE6D2B6D4F8B00CB1611 /* MetaTextProvider.swift */, + ); + path = MetaText; + sourceTree = ""; + }; + 1493DE7F2B70FBFA00CB1611 /* EventEmitter */ = { + isa = PBXGroup; + children = ( + 1493DE7D2B70FBD400CB1611 /* EventEmitter.swift */, + 1493DE802B70FC1400CB1611 /* ReactNativeEventEmitter.m */, + 1493DE822B70FC2E00CB1611 /* ReactNativeEventEmitter.swift */, + ); + path = EventEmitter; + sourceTree = ""; + }; 149A68242AD6A4BF00E72A83 /* Sound */ = { isa = PBXGroup; children = ( @@ -1725,6 +1821,7 @@ BFDB560529D8D4F700FC6F92 /* MammothUITests */, 533993E029141F4600560F83 /* Products */, BFCC9ABA29AB017D0081CE3B /* Frameworks */, + F0AA30963907D383C3305316 /* Pods */, ); sourceTree = ""; }; @@ -2749,6 +2846,8 @@ children = ( 144DC6CE2B17552400F4EE98 /* StoreKit.framework */, 149A68232AD6A1FE00E72A83 /* Mute-master */, + 6626975A34945EDC4DC1AF73 /* Pods_Mammoth.framework */, + 64E9A130D40BBED65DAA76EF /* Pods_Mammoth_MammothTests.framework */, ); name = Frameworks; sourceTree = ""; @@ -2796,6 +2895,7 @@ C354D6012A0D1ADE00F8AC04 /* Utils */ = { isa = PBXGroup; children = ( + 1493DE5D2B6D4F8B00CB1611 /* ReactHelpers */, C3D3C47B2A335D4E007B31EE /* Extensions */, 53450E4C2936127C00D720EA /* ObjectMapper */, C3C997802A49A3000079457D /* Protocols */, @@ -3110,6 +3210,7 @@ C3F3B02C2A4E54AC008FC4B7 /* PostCardCell */ = { isa = PBXGroup; children = ( + 1493DE7A2B6D501100CB1611 /* PostCardView.swift */, C34413C32A1F53F900C3791F /* PostCardCell.swift */, C34413C82A1F8CCE00C3791F /* PostCardFooter.swift */, C3D3C4792A30DEB3007B31EE /* PostCardHeader.swift */, @@ -3130,6 +3231,17 @@ path = PostCardCell; sourceTree = ""; }; + F0AA30963907D383C3305316 /* Pods */ = { + isa = PBXGroup; + children = ( + 8F5A28CC3C4F7FE3F5B589B3 /* Pods-Mammoth.debug.xcconfig */, + 0DF876826742A65E99D0BE4B /* Pods-Mammoth.release.xcconfig */, + 56AA1971E665906651E9BF86 /* Pods-Mammoth-MammothTests.debug.xcconfig */, + B09C23B77DC299F638BE0CFF /* Pods-Mammoth-MammothTests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -3154,10 +3266,14 @@ isa = PBXNativeTarget; buildConfigurationList = 533993F329141F4700560F83 /* Build configuration list for PBXNativeTarget "Mammoth" */; buildPhases = ( + E30D1B740F14DC5B005957BE /* [CP] Check Pods Manifest.lock */, 533993DB29141F4600560F83 /* Sources */, 533993DC29141F4600560F83 /* Frameworks */, 533993DD29141F4600560F83 /* Resources */, 53B1584F293F623F0026E90B /* Embed Foundation Extensions */, + 1493DE7C2B70E6A000CB1611 /* Bundle React Native code and images */, + 715C8827A72FD7552ECF653A /* [CP] Embed Pods Frameworks */, + 77FA2A0EF766A493DBC1E1EC /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -3204,9 +3320,12 @@ isa = PBXNativeTarget; buildConfigurationList = BFCC9AB729AAF8130081CE3B /* Build configuration list for PBXNativeTarget "MammothTests" */; buildPhases = ( + 4B465CF7BFBFCC430862EDE7 /* [CP] Check Pods Manifest.lock */, BFCC9AAB29AAF8130081CE3B /* Sources */, BFCC9AAC29AAF8130081CE3B /* Frameworks */, BFCC9AAD29AAF8130081CE3B /* Resources */, + 276E4E9063F5234C455CC033 /* [CP] Embed Pods Frameworks */, + D0B7165F53EAAEA21F5140E1 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -3308,9 +3427,9 @@ 539F3A2A292282FE0090CD00 /* XCRemoteSwiftPackageReference "Kingfisher" */, 532F291329476916003C9FAD /* XCRemoteSwiftPackageReference "MessageKit" */, 532F291629476B29003C9FAD /* XCRemoteSwiftPackageReference "InputBarAccessoryView" */, - 662B60ED2A4A1F6D00CB331F /* XCRemoteSwiftPackageReference "JWTDecode" */, + 662B60ED2A4A1F6D00CB331F /* XCRemoteSwiftPackageReference "JWTDecode.swift" */, 88EFEB2B2AC23A3C0040228B /* XCRemoteSwiftPackageReference "Swift-JWT" */, - 14780F7F2AFCE93800A7ECD9 /* XCRemoteSwiftPackageReference "Reachability" */, + 14780F7F2AFCE93800A7ECD9 /* XCRemoteSwiftPackageReference "Reachability.swift" */, 144DC74E2B17698200F4EE98 /* XCRemoteSwiftPackageReference "swift-collections" */, 144DC7E02B1773E400F4EE98 /* XCRemoteSwiftPackageReference "OpenSSL" */, 146C6A412B3453E000A002D7 /* XCRemoteSwiftPackageReference "UnifiedBlurHash" */, @@ -3585,6 +3704,141 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 1493DE7C2B70E6A000CB1611 /* Bundle React Native code and images */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(SRCROOT)/.xcode.env.local", + "$(SRCROOT)/.xcode.env", + ); + name = "Bundle React Native code and images"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; + }; + 276E4E9063F5234C455CC033 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Mammoth-MammothTests/Pods-Mammoth-MammothTests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Mammoth-MammothTests/Pods-Mammoth-MammothTests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Mammoth-MammothTests/Pods-Mammoth-MammothTests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 4B465CF7BFBFCC430862EDE7 /* [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-Mammoth-MammothTests-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; + }; + 715C8827A72FD7552ECF653A /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Mammoth/Pods-Mammoth-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Mammoth/Pods-Mammoth-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Mammoth/Pods-Mammoth-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 77FA2A0EF766A493DBC1E1EC /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Mammoth/Pods-Mammoth-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Mammoth/Pods-Mammoth-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Mammoth/Pods-Mammoth-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + D0B7165F53EAAEA21F5140E1 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Mammoth-MammothTests/Pods-Mammoth-MammothTests-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Mammoth-MammothTests/Pods-Mammoth-MammothTests-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Mammoth-MammothTests/Pods-Mammoth-MammothTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + E30D1B740F14DC5B005957BE /* [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-Mammoth-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; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 532567F82976FA3A004E7636 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -3608,6 +3862,7 @@ 53399A47291526B900560F83 /* Poll.swift in Sources */, BFDCBD122A9D268000606234 /* SearchHostViewController.swift in Sources */, C3BBEEE52A978E0C0027C761 /* CarouselItem.swift in Sources */, + 1493DE722B6D4F8B00CB1611 /* NavigatorModule.m in Sources */, C3F3B0252A4C2BC0008FC4B7 /* NewsFeedViewModel+Services.swift in Sources */, BFBD94E2297B52740064E71D /* Category.swift in Sources */, 53399A43291526B900560F83 /* Conversation.swift in Sources */, @@ -3643,6 +3898,8 @@ 14BE1A522AF1047D00C13189 /* PushNotificationManager.swift in Sources */, 533996E12914227A00560F83 /* ALProgressBar.swift in Sources */, 53399A4C291526B900560F83 /* LoginSettings.swift in Sources */, + 1493DE752B6D4F8B00CB1611 /* ReactViewController.swift in Sources */, + 1493DE832B70FC2E00CB1611 /* ReactNativeEventEmitter.swift in Sources */, BF48B9322A8FE54F00DE6BFC /* ToastNotification.swift in Sources */, 532567AC2971C512004E7636 /* Timelines.swift in Sources */, 662B60E62A4A1EFC00CB331F /* BlueskyAPI+Graph.swift in Sources */, @@ -3693,7 +3950,7 @@ BF57C4052AE9C64000D11485 /* StatusSource.swift in Sources */, 53399A4F291526B900560F83 /* Results.swift in Sources */, BF492DAE29F1E04C004100B8 /* QuotePostMutedView.swift in Sources */, - C3A3DAC52A37592F00D275B6 /* (null) in Sources */, + C3A3DAC52A37592F00D275B6 /* BuildFile in Sources */, C3BBEEE72A978E320027C761 /* CarouselFlowLayout.swift in Sources */, 5339963E2914227A00560F83 /* MultilineTextField.swift in Sources */, 5339947F2914214A00560F83 /* IconSettingsViewController.swift in Sources */, @@ -3712,6 +3969,7 @@ 533996F42914227A00560F83 /* EditedFooterCell.swift in Sources */, 662B60D32A4A1E8600CB331F /* Actor.swift in Sources */, 66D091E92A53625F00291B8D /* UIView+Layout.swift in Sources */, + 1493DE6F2B6D4F8B00CB1611 /* ReactBridge.swift in Sources */, BF33A0F22AA7E9740008D9DF /* NetworkMonitor.swift in Sources */, 53450E3D2936121600D720EA /* GiphyUser.swift in Sources */, 533996462914227A00560F83 /* ColumnFlowLayout.swift in Sources */, @@ -3723,6 +3981,7 @@ BF6055822B18F2C000171180 /* UITableView+SafeScrollToRow.swift in Sources */, 53399A62291526B900560F83 /* Instances.swift in Sources */, BF70A605297753DA00270CD7 /* PhotoPicker.swift in Sources */, + 1493DE742B6D4F8B00CB1611 /* NavigationEventEmitter.m in Sources */, BF4D709929EE589B0059C250 /* FontAwesome.swift in Sources */, 533996E02914227A00560F83 /* ALTimingFunction.swift in Sources */, 533996E52914227A00560F83 /* ComposeCell.swift in Sources */, @@ -3801,8 +4060,10 @@ 53399A67291526B900560F83 /* Favourites.swift in Sources */, 662B60E92A4A1EFC00CB331F /* BlueskyAPI+Feed.swift in Sources */, 533994A62914214A00560F83 /* HapticsSettingsViewController.swift in Sources */, + 1493DE7E2B70FBD400CB1611 /* EventEmitter.swift in Sources */, 533994B92914214A00560F83 /* UndoWidget.swift in Sources */, BF0F3BB52A855A310055BB81 /* FloatLabelTextField.swift in Sources */, + 1493DE712B6D4F8B00CB1611 /* NavigatorRegistry.swift in Sources */, BFE23A662B4DF1A800A34684 /* EmojiCell.swift in Sources */, 533996D92914227A00560F83 /* TOCropViewController.m in Sources */, C354D5FD2A0D172300F8AC04 /* DiscoveryViewController.swift in Sources */, @@ -3832,6 +4093,7 @@ 53399A52291526B900560F83 /* Instance.swift in Sources */, BF1F9742298C9C920041A666 /* ProfileCacher.swift in Sources */, BF8D23F02A099AEF00D61419 /* PostView.swift in Sources */, + 1493DE762B6D4F8B00CB1611 /* PostCardManager.m in Sources */, C3C7ED242A5C14CB0039FB4D /* NumberFormatter+kNotation.swift in Sources */, 532F2926294B3771003C9FAD /* VIPCell.swift in Sources */, C354D60F2A0E598500F8AC04 /* SectionHeader.swift in Sources */, @@ -3853,6 +4115,7 @@ 532F292A294CC2DA003C9FAD /* LoadMoreCell.swift in Sources */, 53450E84293775B100D720EA /* Intents.intentdefinition in Sources */, 533996872914227A00560F83 /* SKPhotoBrowserDelegate.swift in Sources */, + 1493DE702B6D4F8B00CB1611 /* UIColor+Hex.m in Sources */, BFB2406B299B1744000245D8 /* Hashtag.swift in Sources */, C3F3B02B2A4E47F2008FC4B7 /* NewsFeedViewModel+DataSource.swift in Sources */, 53399A35291526B900560F83 /* Parameter.swift in Sources */, @@ -3872,7 +4135,9 @@ 533994832914214A00560F83 /* TranslationSettingsViewController.swift in Sources */, BF6A77E92A533C85001727A9 /* AcctDataViewModel.swift in Sources */, BF57C4032AE7130E00D11485 /* ServerUpdatedCell.swift in Sources */, + 1493DE772B6D4F8B00CB1611 /* MetaTextManager.m in Sources */, BF5F97F22A23E0C500014DF3 /* PostCardImageCollectionCell.swift in Sources */, + 1493DE812B70FC1400CB1611 /* ReactNativeEventEmitter.m in Sources */, 144DC6CD2B174C2500F4EE98 /* IAPManager.swift in Sources */, D8CA77612AB90D4000F49ECC /* ShareableViewController.swift in Sources */, BF57C4012AE7130300D11485 /* ServerUpdatingCell.swift in Sources */, @@ -3920,6 +4185,7 @@ 533996742914227A00560F83 /* SKPhotoBrowser.swift in Sources */, 533996942914227A00560F83 /* Disk+Codable.swift in Sources */, C3085A042AC42EEF007E1CFD /* PostCardMetadata.swift in Sources */, + 1493DE7B2B6D501100CB1611 /* PostCardView.swift in Sources */, BF8D23F22A09BCA300D61419 /* DetailView.swift in Sources */, BF1F9744298CA1980041A666 /* LiveTableViewController.swift in Sources */, BFCC50A12B0D626A0081BFB5 /* ChannelOwner.swift in Sources */, @@ -3935,6 +4201,7 @@ C3EE65A52AD5A2D2009489EE /* UserCardActionButton.swift in Sources */, 533996842914227A00560F83 /* SKPhoto.swift in Sources */, 5339968E2914227A00560F83 /* Disk+Data.swift in Sources */, + 1493DE732B6D4F8B00CB1611 /* RCCCustomTitleView.m in Sources */, BF93257E2A4262C80034CAE7 /* ExtendedTouchView.swift in Sources */, BFBD41EE2ACB3A58009BA818 /* ForYouCustomizationCell.swift in Sources */, 53450E6D2936127C00D720EA /* EnumTransform.swift in Sources */, @@ -3956,6 +4223,7 @@ 533996752914227A00560F83 /* SKMesurement.swift in Sources */, C354D60A2A0D271200F8AC04 /* UserCardCell.swift in Sources */, 66D091E32A5360FB00291B8D /* BlueskySignInViewController.swift in Sources */, + 1493DE782B6D4F8B00CB1611 /* MetaTextProvider.swift in Sources */, 533996712914227A00560F83 /* ActiveType.swift in Sources */, 14E08C6A2B20BF9C00EF5A55 /* DeviceHelpers.swift in Sources */, BF92CE022AABED0200EB25FA /* ChannelManager.swift in Sources */, @@ -4305,7 +4573,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; @@ -4335,6 +4603,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -4349,13 +4618,38 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", + "${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios", + ); IPHONEOS_DEPLOYMENT_TARGET = 16.1; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-DRN_FABRIC_ENABLED", + ); + OTHER_CPLUSPLUSFLAGS = ( + "$(inherited)", + "-DRN_FABRIC_ENABLED", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + USE_HERMES = true; }; name = Debug; }; @@ -4365,7 +4659,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_CXX_LANGUAGE_STANDARD = "c++20"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; @@ -4395,6 +4689,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -4403,19 +4698,45 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios", + "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx", + "${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers", + "${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios", + ); IPHONEOS_DEPLOYMENT_TARGET = 16.1; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-DRN_FABRIC_ENABLED", + ); + OTHER_CPLUSPLUSFLAGS = ( + "$(inherited)", + "-DRN_FABRIC_ENABLED", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); + REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; + USE_HERMES = true; VALIDATE_PRODUCT = YES; }; name = Release; }; 533993F429141F4700560F83 /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 8F5A28CC3C4F7FE3F5B589B3 /* Pods-Mammoth.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -4424,7 +4745,7 @@ CODE_SIGN_ENTITLEMENTS = Mammoth/Mammoth.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 397; + CURRENT_PROJECT_VERSION = 395; DEVELOPMENT_TEAM = W44P88K5SB; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Mammoth/Info.plist; @@ -4446,7 +4767,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift$(inherited)"; MARKETING_VERSION = 2.6; PRODUCT_BUNDLE_IDENTIFIER = com.theblvd.mammoth; PRODUCT_NAME = Mammoth; @@ -4463,6 +4784,7 @@ }; 533993F529141F4700560F83 /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 0DF876826742A65E99D0BE4B /* Pods-Mammoth.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -4471,7 +4793,7 @@ CODE_SIGN_ENTITLEMENTS = Mammoth/Mammoth.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 397; + CURRENT_PROJECT_VERSION = 395; DEVELOPMENT_TEAM = W44P88K5SB; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Mammoth/Info.plist; @@ -4493,7 +4815,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; + LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift$(inherited)"; MARKETING_VERSION = 2.6; PRODUCT_BUNDLE_IDENTIFIER = com.theblvd.mammoth; PRODUCT_NAME = Mammoth; @@ -4572,6 +4894,7 @@ }; BFCC9AB529AAF8130081CE3B /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 56AA1971E665906651E9BF86 /* Pods-Mammoth-MammothTests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -4593,6 +4916,7 @@ }; BFCC9AB629AAF8130081CE3B /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = B09C23B77DC299F638BE0CFF /* Pods-Mammoth-MammothTests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; @@ -4736,7 +5060,7 @@ minimumVersion = 1.0.3; }; }; - 14780F7F2AFCE93800A7ECD9 /* XCRemoteSwiftPackageReference "Reachability" */ = { + 14780F7F2AFCE93800A7ECD9 /* XCRemoteSwiftPackageReference "Reachability.swift" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/ashleymills/Reachability.swift"; requirement = { @@ -4784,7 +5108,7 @@ minimumVersion = 7.0.0; }; }; - 662B60ED2A4A1F6D00CB331F /* XCRemoteSwiftPackageReference "JWTDecode" */ = { + 662B60ED2A4A1F6D00CB331F /* XCRemoteSwiftPackageReference "JWTDecode.swift" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/auth0/JWTDecode.swift"; requirement = { @@ -4810,7 +5134,7 @@ }; 14780F802AFCEA7000A7ECD9 /* Reachability */ = { isa = XCSwiftPackageProductDependency; - package = 14780F7F2AFCE93800A7ECD9 /* XCRemoteSwiftPackageReference "Reachability" */; + package = 14780F7F2AFCE93800A7ECD9 /* XCRemoteSwiftPackageReference "Reachability.swift" */; productName = Reachability; }; 14A849FE2B4D75F20027C689 /* MetaTextKit */ = { @@ -4844,7 +5168,7 @@ }; 662B60EE2A4A1F6D00CB331F /* JWTDecode */ = { isa = XCSwiftPackageProductDependency; - package = 662B60ED2A4A1F6D00CB331F /* XCRemoteSwiftPackageReference "JWTDecode" */; + package = 662B60ED2A4A1F6D00CB331F /* XCRemoteSwiftPackageReference "JWTDecode.swift" */; productName = JWTDecode; }; 887B32952A0AC72A00EE7EE3 /* ArkanaKeys */ = { diff --git a/Mammoth.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Mammoth.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Mammoth.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to ios/Mammoth.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/ios/Mammoth.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Mammoth.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/ios/Mammoth.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Mammoth.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Mammoth.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 000000000..2e2d4c119 --- /dev/null +++ b/ios/Mammoth.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,175 @@ +{ + "pins" : [ + { + "identity" : "alamofire", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Alamofire/Alamofire.git", + "state" : { + "revision" : "3dc6a42c7727c49bf26508e29b0a0b35f9c7e1ad", + "version" : "5.8.1" + } + }, + { + "identity" : "bluecryptor", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Kitura/BlueCryptor.git", + "state" : { + "revision" : "cec97c24b111351e70e448972a7d3fe68a756d6d", + "version" : "2.0.2" + } + }, + { + "identity" : "blueecc", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Kitura/BlueECC.git", + "state" : { + "revision" : "1485268a54f8135435a825a855e733f026fa6cc8", + "version" : "1.2.201" + } + }, + { + "identity" : "bluersa", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Kitura/BlueRSA.git", + "state" : { + "revision" : "440f78db26d8bb073f29590f1c7bd31004da09ae", + "version" : "1.0.201" + } + }, + { + "identity" : "fuzi", + "kind" : "remoteSourceControl", + "location" : "https://github.com/TheBLVD/Fuzi.git", + "state" : { + "revision" : "61871bcbab3114ec723ee67af93a23a4c0c4b42a", + "version" : "3.1.4" + } + }, + { + "identity" : "inputbaraccessoryview", + "kind" : "remoteSourceControl", + "location" : "https://github.com/nathantannar4/InputBarAccessoryView.git", + "state" : { + "revision" : "17ced92a5dccb36512b408b6276353631d7cbe57", + "version" : "6.3.0" + } + }, + { + "identity" : "jwtdecode.swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/auth0/JWTDecode.swift", + "state" : { + "revision" : "58af7278797871e460d79496621b3e5366b865b2", + "version" : "3.1.0" + } + }, + { + "identity" : "kingfisher", + "kind" : "remoteSourceControl", + "location" : "https://github.com/onevcat/Kingfisher", + "state" : { + "revision" : "3ec0ab0bca4feb56e8b33e289c9496e89059dd08", + "version" : "7.10.2" + } + }, + { + "identity" : "kituracontracts", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Kitura/KituraContracts.git", + "state" : { + "revision" : "6edf7ac3dd2b3a2c61284778d430bbad7d8a6f23", + "version" : "2.0.1" + } + }, + { + "identity" : "loggerapi", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Kitura/LoggerAPI.git", + "state" : { + "revision" : "4e6b45e850ffa275e8e26a24c6454fd709d5b6ac", + "version" : "2.0.0" + } + }, + { + "identity" : "messagekit", + "kind" : "remoteSourceControl", + "location" : "https://github.com/MessageKit/MessageKit.git", + "state" : { + "revision" : "1993e8e90d4e9a61b8d9bc8ceb733964ce943376", + "version" : "4.2.0" + } + }, + { + "identity" : "metatextkit", + "kind" : "remoteSourceControl", + "location" : "https://github.com/TheBLVD/MetaTextKit", + "state" : { + "revision" : "4cd7b53a3e2bba92cb126f4b9fbf826e7998e476", + "version" : "2.3.6" + } + }, + { + "identity" : "openssl", + "kind" : "remoteSourceControl", + "location" : "https://github.com/krzyzanowskim/OpenSSL.git", + "state" : { + "revision" : "2fec2333eb8e8a6acd08bc95a6edf1c0f391c42f", + "version" : "3.1.4000" + } + }, + { + "identity" : "reachability.swift", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ashleymills/Reachability.swift", + "state" : { + "revision" : "a81b7367f2c46875f29577e03a60c39cdfad0c8d" + } + }, + { + "identity" : "sdwebimage", + "kind" : "remoteSourceControl", + "location" : "https://github.com/SDWebImage/SDWebImage.git", + "state" : { + "revision" : "59730af512c06fb569c119d737df4c1c499e001d", + "version" : "5.18.10" + } + }, + { + "identity" : "swift-collections", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-collections.git", + "state" : { + "revision" : "d029d9d39c87bed85b1c50adee7c41795261a192", + "version" : "1.0.6" + } + }, + { + "identity" : "swift-jwt", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Kitura/Swift-JWT", + "state" : { + "revision" : "f68ec28fbd90a651597e9e825ea7f315f8d52a1f", + "version" : "4.0.1" + } + }, + { + "identity" : "swift-log", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-log.git", + "state" : { + "revision" : "e97a6fcb1ab07462881ac165fdbb37f067e205d5", + "version" : "1.5.4" + } + }, + { + "identity" : "unifiedblurhash", + "kind" : "remoteSourceControl", + "location" : "https://github.com/iankoex/UnifiedBlurHash.git", + "state" : { + "revision" : "39d18f3526c62e950c97090aac75d5dac1de9b21", + "version" : "1.0.3" + } + } + ], + "version" : 2 +} diff --git a/ios/Mammoth.xcodeproj/project.xcworkspace/xcuserdata/benoit.xcuserdatad/UserInterfaceState.xcuserstate b/ios/Mammoth.xcodeproj/project.xcworkspace/xcuserdata/benoit.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 000000000..e03fffbdf Binary files /dev/null and b/ios/Mammoth.xcodeproj/project.xcworkspace/xcuserdata/benoit.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Mammoth.xcodeproj/xcshareddata/IDETemplateMacros.plist b/ios/Mammoth.xcodeproj/xcshareddata/IDETemplateMacros.plist similarity index 100% rename from Mammoth.xcodeproj/xcshareddata/IDETemplateMacros.plist rename to ios/Mammoth.xcodeproj/xcshareddata/IDETemplateMacros.plist diff --git a/Mammoth.xcodeproj/xcshareddata/xcschemes/Mammoth Share Extension.xcscheme b/ios/Mammoth.xcodeproj/xcshareddata/xcschemes/Mammoth Share Extension.xcscheme similarity index 100% rename from Mammoth.xcodeproj/xcshareddata/xcschemes/Mammoth Share Extension.xcscheme rename to ios/Mammoth.xcodeproj/xcshareddata/xcschemes/Mammoth Share Extension.xcscheme diff --git a/Mammoth.xcodeproj/xcshareddata/xcschemes/MammothNotificationServiceExtension.xcscheme b/ios/Mammoth.xcodeproj/xcshareddata/xcschemes/MammothNotificationServiceExtension.xcscheme similarity index 100% rename from Mammoth.xcodeproj/xcshareddata/xcschemes/MammothNotificationServiceExtension.xcscheme rename to ios/Mammoth.xcodeproj/xcshareddata/xcschemes/MammothNotificationServiceExtension.xcscheme diff --git a/Mammoth.xcodeproj/xcshareddata/xcschemes/Mastodon.xcscheme b/ios/Mammoth.xcodeproj/xcshareddata/xcschemes/Mastodon.xcscheme similarity index 100% rename from Mammoth.xcodeproj/xcshareddata/xcschemes/Mastodon.xcscheme rename to ios/Mammoth.xcodeproj/xcshareddata/xcschemes/Mastodon.xcscheme diff --git a/ios/Mammoth.xcodeproj/xcuserdata/benoit.xcuserdatad/xcschemes/xcschememanagement.plist b/ios/Mammoth.xcodeproj/xcuserdata/benoit.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..4a99fa91b --- /dev/null +++ b/ios/Mammoth.xcodeproj/xcuserdata/benoit.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,45 @@ + + + + + SchemeUserState + + JWTDecode (Playground) 1.xcscheme + + isShown + + orderHint + 6 + + JWTDecode (Playground) 2.xcscheme + + isShown + + orderHint + 7 + + JWTDecode (Playground).xcscheme + + isShown + + orderHint + 4 + + Mammoth Share Extension.xcscheme_^#shared#^_ + + orderHint + 0 + + MammothNotificationServiceExtension.xcscheme_^#shared#^_ + + orderHint + 1 + + Mastodon.xcscheme_^#shared#^_ + + orderHint + 2 + + + + diff --git a/Mammoth/AppCoordinator.swift b/ios/Mammoth/AppCoordinator.swift similarity index 100% rename from Mammoth/AppCoordinator.swift rename to ios/Mammoth/AppCoordinator.swift diff --git a/Mammoth/AppDelegate.swift b/ios/Mammoth/AppDelegate.swift similarity index 99% rename from Mammoth/AppDelegate.swift rename to ios/Mammoth/AppDelegate.swift index 466423a06..1d633f8aa 100644 --- a/Mammoth/AppDelegate.swift +++ b/ios/Mammoth/AppDelegate.swift @@ -15,6 +15,7 @@ import AVFoundation @main class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate { + var window: UIWindow? var restrictRotation: UIInterfaceOrientationMask = .all var restrictRotationPhone: UIInterfaceOrientationMask = .portrait diff --git a/Mammoth/Assets/Alt Icons/Benson.png b/ios/Mammoth/Assets/Alt Icons/Benson.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Benson.png rename to ios/Mammoth/Assets/Alt Icons/Benson.png diff --git a/Mammoth/Assets/Alt Icons/Benson@2x.png b/ios/Mammoth/Assets/Alt Icons/Benson@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Benson@2x.png rename to ios/Mammoth/Assets/Alt Icons/Benson@2x.png diff --git a/Mammoth/Assets/Alt Icons/Benson@3x.png b/ios/Mammoth/Assets/Alt Icons/Benson@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Benson@3x.png rename to ios/Mammoth/Assets/Alt Icons/Benson@3x.png diff --git a/Mammoth/Assets/Alt Icons/Blue Jay.png b/ios/Mammoth/Assets/Alt Icons/Blue Jay.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Blue Jay.png rename to ios/Mammoth/Assets/Alt Icons/Blue Jay.png diff --git a/Mammoth/Assets/Alt Icons/Blue Jay@2x.png b/ios/Mammoth/Assets/Alt Icons/Blue Jay@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Blue Jay@2x.png rename to ios/Mammoth/Assets/Alt Icons/Blue Jay@2x.png diff --git a/Mammoth/Assets/Alt Icons/Blue Jay@3x.png b/ios/Mammoth/Assets/Alt Icons/Blue Jay@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Blue Jay@3x.png rename to ios/Mammoth/Assets/Alt Icons/Blue Jay@3x.png diff --git a/Mammoth/Assets/Alt Icons/Blueprints.png b/ios/Mammoth/Assets/Alt Icons/Blueprints.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Blueprints.png rename to ios/Mammoth/Assets/Alt Icons/Blueprints.png diff --git a/Mammoth/Assets/Alt Icons/Blueprints@2x.png b/ios/Mammoth/Assets/Alt Icons/Blueprints@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Blueprints@2x.png rename to ios/Mammoth/Assets/Alt Icons/Blueprints@2x.png diff --git a/Mammoth/Assets/Alt Icons/Blueprints@3x.png b/ios/Mammoth/Assets/Alt Icons/Blueprints@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Blueprints@3x.png rename to ios/Mammoth/Assets/Alt Icons/Blueprints@3x.png diff --git a/Mammoth/Assets/Alt Icons/Burton.png b/ios/Mammoth/Assets/Alt Icons/Burton.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Burton.png rename to ios/Mammoth/Assets/Alt Icons/Burton.png diff --git a/Mammoth/Assets/Alt Icons/Burton@2x.png b/ios/Mammoth/Assets/Alt Icons/Burton@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Burton@2x.png rename to ios/Mammoth/Assets/Alt Icons/Burton@2x.png diff --git a/Mammoth/Assets/Alt Icons/Burton@3x.png b/ios/Mammoth/Assets/Alt Icons/Burton@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Burton@3x.png rename to ios/Mammoth/Assets/Alt Icons/Burton@3x.png diff --git a/Mammoth/Assets/Alt Icons/Carroll.png b/ios/Mammoth/Assets/Alt Icons/Carroll.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Carroll.png rename to ios/Mammoth/Assets/Alt Icons/Carroll.png diff --git a/Mammoth/Assets/Alt Icons/Carroll@2x.png b/ios/Mammoth/Assets/Alt Icons/Carroll@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Carroll@2x.png rename to ios/Mammoth/Assets/Alt Icons/Carroll@2x.png diff --git a/Mammoth/Assets/Alt Icons/Carroll@3x.png b/ios/Mammoth/Assets/Alt Icons/Carroll@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Carroll@3x.png rename to ios/Mammoth/Assets/Alt Icons/Carroll@3x.png diff --git a/Mammoth/Assets/Alt Icons/Dark Mode.png b/ios/Mammoth/Assets/Alt Icons/Dark Mode.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Dark Mode.png rename to ios/Mammoth/Assets/Alt Icons/Dark Mode.png diff --git a/Mammoth/Assets/Alt Icons/Dark Mode@2x.png b/ios/Mammoth/Assets/Alt Icons/Dark Mode@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Dark Mode@2x.png rename to ios/Mammoth/Assets/Alt Icons/Dark Mode@2x.png diff --git a/Mammoth/Assets/Alt Icons/Dark Mode@3x.png b/ios/Mammoth/Assets/Alt Icons/Dark Mode@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Dark Mode@3x.png rename to ios/Mammoth/Assets/Alt Icons/Dark Mode@3x.png diff --git a/Mammoth/Assets/Alt Icons/Foil Dark.png b/ios/Mammoth/Assets/Alt Icons/Foil Dark.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Foil Dark.png rename to ios/Mammoth/Assets/Alt Icons/Foil Dark.png diff --git a/Mammoth/Assets/Alt Icons/Foil Dark@2x.png b/ios/Mammoth/Assets/Alt Icons/Foil Dark@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Foil Dark@2x.png rename to ios/Mammoth/Assets/Alt Icons/Foil Dark@2x.png diff --git a/Mammoth/Assets/Alt Icons/Foil Dark@3x.png b/ios/Mammoth/Assets/Alt Icons/Foil Dark@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Foil Dark@3x.png rename to ios/Mammoth/Assets/Alt Icons/Foil Dark@3x.png diff --git a/Mammoth/Assets/Alt Icons/Foil.png b/ios/Mammoth/Assets/Alt Icons/Foil.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Foil.png rename to ios/Mammoth/Assets/Alt Icons/Foil.png diff --git a/Mammoth/Assets/Alt Icons/Foil@2x.png b/ios/Mammoth/Assets/Alt Icons/Foil@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Foil@2x.png rename to ios/Mammoth/Assets/Alt Icons/Foil@2x.png diff --git a/Mammoth/Assets/Alt Icons/Foil@3x.png b/ios/Mammoth/Assets/Alt Icons/Foil@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Foil@3x.png rename to ios/Mammoth/Assets/Alt Icons/Foil@3x.png diff --git a/Mammoth/Assets/Alt Icons/Gold-Icon.png b/ios/Mammoth/Assets/Alt Icons/Gold-Icon.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Gold-Icon.png rename to ios/Mammoth/Assets/Alt Icons/Gold-Icon.png diff --git a/Mammoth/Assets/Alt Icons/Gold-Icon@2x.png b/ios/Mammoth/Assets/Alt Icons/Gold-Icon@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Gold-Icon@2x.png rename to ios/Mammoth/Assets/Alt Icons/Gold-Icon@2x.png diff --git a/Mammoth/Assets/Alt Icons/Gold-Icon@3x.png b/ios/Mammoth/Assets/Alt Icons/Gold-Icon@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Gold-Icon@3x.png rename to ios/Mammoth/Assets/Alt Icons/Gold-Icon@3x.png diff --git a/Mammoth/Assets/Alt Icons/Granny Smith.png b/ios/Mammoth/Assets/Alt Icons/Granny Smith.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Granny Smith.png rename to ios/Mammoth/Assets/Alt Icons/Granny Smith.png diff --git a/Mammoth/Assets/Alt Icons/Granny Smith@2x.png b/ios/Mammoth/Assets/Alt Icons/Granny Smith@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Granny Smith@2x.png rename to ios/Mammoth/Assets/Alt Icons/Granny Smith@2x.png diff --git a/Mammoth/Assets/Alt Icons/Granny Smith@3x.png b/ios/Mammoth/Assets/Alt Icons/Granny Smith@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Granny Smith@3x.png rename to ios/Mammoth/Assets/Alt Icons/Granny Smith@3x.png diff --git a/Mammoth/Assets/Alt Icons/Icon.png b/ios/Mammoth/Assets/Alt Icons/Icon.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon.png rename to ios/Mammoth/Assets/Alt Icons/Icon.png diff --git a/Mammoth/Assets/Alt Icons/Icon1.png b/ios/Mammoth/Assets/Alt Icons/Icon1.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon1.png rename to ios/Mammoth/Assets/Alt Icons/Icon1.png diff --git a/Mammoth/Assets/Alt Icons/Icon1@2x.png b/ios/Mammoth/Assets/Alt Icons/Icon1@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon1@2x.png rename to ios/Mammoth/Assets/Alt Icons/Icon1@2x.png diff --git a/Mammoth/Assets/Alt Icons/Icon1@3x.png b/ios/Mammoth/Assets/Alt Icons/Icon1@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon1@3x.png rename to ios/Mammoth/Assets/Alt Icons/Icon1@3x.png diff --git a/Mammoth/Assets/Alt Icons/Icon2.png b/ios/Mammoth/Assets/Alt Icons/Icon2.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon2.png rename to ios/Mammoth/Assets/Alt Icons/Icon2.png diff --git a/Mammoth/Assets/Alt Icons/Icon2@2x.png b/ios/Mammoth/Assets/Alt Icons/Icon2@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon2@2x.png rename to ios/Mammoth/Assets/Alt Icons/Icon2@2x.png diff --git a/Mammoth/Assets/Alt Icons/Icon2@3x.png b/ios/Mammoth/Assets/Alt Icons/Icon2@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon2@3x.png rename to ios/Mammoth/Assets/Alt Icons/Icon2@3x.png diff --git a/Mammoth/Assets/Alt Icons/Icon3.png b/ios/Mammoth/Assets/Alt Icons/Icon3.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon3.png rename to ios/Mammoth/Assets/Alt Icons/Icon3.png diff --git a/Mammoth/Assets/Alt Icons/Icon3@2x.png b/ios/Mammoth/Assets/Alt Icons/Icon3@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon3@2x.png rename to ios/Mammoth/Assets/Alt Icons/Icon3@2x.png diff --git a/Mammoth/Assets/Alt Icons/Icon3@3x.png b/ios/Mammoth/Assets/Alt Icons/Icon3@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon3@3x.png rename to ios/Mammoth/Assets/Alt Icons/Icon3@3x.png diff --git a/Mammoth/Assets/Alt Icons/Icon4.png b/ios/Mammoth/Assets/Alt Icons/Icon4.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon4.png rename to ios/Mammoth/Assets/Alt Icons/Icon4.png diff --git a/Mammoth/Assets/Alt Icons/Icon4@2x.png b/ios/Mammoth/Assets/Alt Icons/Icon4@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon4@2x.png rename to ios/Mammoth/Assets/Alt Icons/Icon4@2x.png diff --git a/Mammoth/Assets/Alt Icons/Icon4@3x.png b/ios/Mammoth/Assets/Alt Icons/Icon4@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon4@3x.png rename to ios/Mammoth/Assets/Alt Icons/Icon4@3x.png diff --git a/Mammoth/Assets/Alt Icons/Icon5.png b/ios/Mammoth/Assets/Alt Icons/Icon5.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon5.png rename to ios/Mammoth/Assets/Alt Icons/Icon5.png diff --git a/Mammoth/Assets/Alt Icons/Icon5@2x.png b/ios/Mammoth/Assets/Alt Icons/Icon5@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon5@2x.png rename to ios/Mammoth/Assets/Alt Icons/Icon5@2x.png diff --git a/Mammoth/Assets/Alt Icons/Icon5@3x.png b/ios/Mammoth/Assets/Alt Icons/Icon5@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon5@3x.png rename to ios/Mammoth/Assets/Alt Icons/Icon5@3x.png diff --git a/Mammoth/Assets/Alt Icons/Icon6.png b/ios/Mammoth/Assets/Alt Icons/Icon6.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon6.png rename to ios/Mammoth/Assets/Alt Icons/Icon6.png diff --git a/Mammoth/Assets/Alt Icons/Icon6@2x.png b/ios/Mammoth/Assets/Alt Icons/Icon6@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon6@2x.png rename to ios/Mammoth/Assets/Alt Icons/Icon6@2x.png diff --git a/Mammoth/Assets/Alt Icons/Icon6@3x.png b/ios/Mammoth/Assets/Alt Icons/Icon6@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon6@3x.png rename to ios/Mammoth/Assets/Alt Icons/Icon6@3x.png diff --git a/Mammoth/Assets/Alt Icons/Icon@2x.png b/ios/Mammoth/Assets/Alt Icons/Icon@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon@2x.png rename to ios/Mammoth/Assets/Alt Icons/Icon@2x.png diff --git a/Mammoth/Assets/Alt Icons/Icon@3x.png b/ios/Mammoth/Assets/Alt Icons/Icon@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Icon@3x.png rename to ios/Mammoth/Assets/Alt Icons/Icon@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconB.png b/ios/Mammoth/Assets/Alt Icons/IconB.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB.png rename to ios/Mammoth/Assets/Alt Icons/IconB.png diff --git a/Mammoth/Assets/Alt Icons/IconB1.png b/ios/Mammoth/Assets/Alt Icons/IconB1.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB1.png rename to ios/Mammoth/Assets/Alt Icons/IconB1.png diff --git a/Mammoth/Assets/Alt Icons/IconB1@2x.png b/ios/Mammoth/Assets/Alt Icons/IconB1@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB1@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconB1@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconB1@3x.png b/ios/Mammoth/Assets/Alt Icons/IconB1@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB1@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconB1@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconB2.png b/ios/Mammoth/Assets/Alt Icons/IconB2.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB2.png rename to ios/Mammoth/Assets/Alt Icons/IconB2.png diff --git a/Mammoth/Assets/Alt Icons/IconB2@2x.png b/ios/Mammoth/Assets/Alt Icons/IconB2@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB2@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconB2@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconB2@3x.png b/ios/Mammoth/Assets/Alt Icons/IconB2@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB2@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconB2@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconB3.png b/ios/Mammoth/Assets/Alt Icons/IconB3.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB3.png rename to ios/Mammoth/Assets/Alt Icons/IconB3.png diff --git a/Mammoth/Assets/Alt Icons/IconB3@2x.png b/ios/Mammoth/Assets/Alt Icons/IconB3@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB3@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconB3@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconB3@3x.png b/ios/Mammoth/Assets/Alt Icons/IconB3@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB3@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconB3@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconB4.png b/ios/Mammoth/Assets/Alt Icons/IconB4.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB4.png rename to ios/Mammoth/Assets/Alt Icons/IconB4.png diff --git a/Mammoth/Assets/Alt Icons/IconB4@2x.png b/ios/Mammoth/Assets/Alt Icons/IconB4@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB4@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconB4@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconB4@3x.png b/ios/Mammoth/Assets/Alt Icons/IconB4@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB4@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconB4@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconB5.png b/ios/Mammoth/Assets/Alt Icons/IconB5.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB5.png rename to ios/Mammoth/Assets/Alt Icons/IconB5.png diff --git a/Mammoth/Assets/Alt Icons/IconB5@2x.png b/ios/Mammoth/Assets/Alt Icons/IconB5@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB5@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconB5@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconB5@3x.png b/ios/Mammoth/Assets/Alt Icons/IconB5@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB5@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconB5@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconB6.png b/ios/Mammoth/Assets/Alt Icons/IconB6.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB6.png rename to ios/Mammoth/Assets/Alt Icons/IconB6.png diff --git a/Mammoth/Assets/Alt Icons/IconB6@2x.png b/ios/Mammoth/Assets/Alt Icons/IconB6@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB6@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconB6@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconB6@3x.png b/ios/Mammoth/Assets/Alt Icons/IconB6@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB6@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconB6@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconB@2x.png b/ios/Mammoth/Assets/Alt Icons/IconB@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconB@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconB@3x.png b/ios/Mammoth/Assets/Alt Icons/IconB@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconB@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconB@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconBBlack.png b/ios/Mammoth/Assets/Alt Icons/IconBBlack.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconBBlack.png rename to ios/Mammoth/Assets/Alt Icons/IconBBlack.png diff --git a/Mammoth/Assets/Alt Icons/IconBBlack@2x.png b/ios/Mammoth/Assets/Alt Icons/IconBBlack@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconBBlack@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconBBlack@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconBBlack@3x.png b/ios/Mammoth/Assets/Alt Icons/IconBBlack@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconBBlack@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconBBlack@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconBlack.png b/ios/Mammoth/Assets/Alt Icons/IconBlack.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconBlack.png rename to ios/Mammoth/Assets/Alt Icons/IconBlack.png diff --git a/Mammoth/Assets/Alt Icons/IconBlack@2x.png b/ios/Mammoth/Assets/Alt Icons/IconBlack@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconBlack@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconBlack@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconBlack@3x.png b/ios/Mammoth/Assets/Alt Icons/IconBlack@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconBlack@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconBlack@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconC.png b/ios/Mammoth/Assets/Alt Icons/IconC.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC.png rename to ios/Mammoth/Assets/Alt Icons/IconC.png diff --git a/Mammoth/Assets/Alt Icons/IconC1.png b/ios/Mammoth/Assets/Alt Icons/IconC1.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC1.png rename to ios/Mammoth/Assets/Alt Icons/IconC1.png diff --git a/Mammoth/Assets/Alt Icons/IconC1@2x.png b/ios/Mammoth/Assets/Alt Icons/IconC1@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC1@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconC1@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconC1@3x.png b/ios/Mammoth/Assets/Alt Icons/IconC1@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC1@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconC1@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconC2.png b/ios/Mammoth/Assets/Alt Icons/IconC2.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC2.png rename to ios/Mammoth/Assets/Alt Icons/IconC2.png diff --git a/Mammoth/Assets/Alt Icons/IconC2@2x.png b/ios/Mammoth/Assets/Alt Icons/IconC2@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC2@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconC2@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconC2@3x.png b/ios/Mammoth/Assets/Alt Icons/IconC2@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC2@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconC2@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconC3.png b/ios/Mammoth/Assets/Alt Icons/IconC3.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC3.png rename to ios/Mammoth/Assets/Alt Icons/IconC3.png diff --git a/Mammoth/Assets/Alt Icons/IconC3@2x.png b/ios/Mammoth/Assets/Alt Icons/IconC3@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC3@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconC3@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconC3@3x.png b/ios/Mammoth/Assets/Alt Icons/IconC3@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC3@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconC3@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconC4.png b/ios/Mammoth/Assets/Alt Icons/IconC4.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC4.png rename to ios/Mammoth/Assets/Alt Icons/IconC4.png diff --git a/Mammoth/Assets/Alt Icons/IconC4@2x.png b/ios/Mammoth/Assets/Alt Icons/IconC4@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC4@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconC4@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconC4@3x.png b/ios/Mammoth/Assets/Alt Icons/IconC4@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC4@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconC4@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconC5.png b/ios/Mammoth/Assets/Alt Icons/IconC5.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC5.png rename to ios/Mammoth/Assets/Alt Icons/IconC5.png diff --git a/Mammoth/Assets/Alt Icons/IconC5@2x.png b/ios/Mammoth/Assets/Alt Icons/IconC5@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC5@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconC5@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconC5@3x.png b/ios/Mammoth/Assets/Alt Icons/IconC5@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC5@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconC5@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconC6.png b/ios/Mammoth/Assets/Alt Icons/IconC6.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC6.png rename to ios/Mammoth/Assets/Alt Icons/IconC6.png diff --git a/Mammoth/Assets/Alt Icons/IconC6@2x.png b/ios/Mammoth/Assets/Alt Icons/IconC6@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC6@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconC6@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconC6@3x.png b/ios/Mammoth/Assets/Alt Icons/IconC6@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC6@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconC6@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconC@2x.png b/ios/Mammoth/Assets/Alt Icons/IconC@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconC@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconC@3x.png b/ios/Mammoth/Assets/Alt Icons/IconC@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconC@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconC@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconCBlack.png b/ios/Mammoth/Assets/Alt Icons/IconCBlack.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconCBlack.png rename to ios/Mammoth/Assets/Alt Icons/IconCBlack.png diff --git a/Mammoth/Assets/Alt Icons/IconCBlack@2x.png b/ios/Mammoth/Assets/Alt Icons/IconCBlack@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconCBlack@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconCBlack@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconCBlack@3x.png b/ios/Mammoth/Assets/Alt Icons/IconCBlack@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconCBlack@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconCBlack@3x.png diff --git a/Mammoth/Assets/Alt Icons/IconPride.png b/ios/Mammoth/Assets/Alt Icons/IconPride.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconPride.png rename to ios/Mammoth/Assets/Alt Icons/IconPride.png diff --git a/Mammoth/Assets/Alt Icons/IconPride@2x.png b/ios/Mammoth/Assets/Alt Icons/IconPride@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconPride@2x.png rename to ios/Mammoth/Assets/Alt Icons/IconPride@2x.png diff --git a/Mammoth/Assets/Alt Icons/IconPride@3x.png b/ios/Mammoth/Assets/Alt Icons/IconPride@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/IconPride@3x.png rename to ios/Mammoth/Assets/Alt Icons/IconPride@3x.png diff --git a/Mammoth/Assets/Alt Icons/Layout.png b/ios/Mammoth/Assets/Alt Icons/Layout.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Layout.png rename to ios/Mammoth/Assets/Alt Icons/Layout.png diff --git a/Mammoth/Assets/Alt Icons/Layout@2x.png b/ios/Mammoth/Assets/Alt Icons/Layout@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Layout@2x.png rename to ios/Mammoth/Assets/Alt Icons/Layout@2x.png diff --git a/Mammoth/Assets/Alt Icons/Layout@3x.png b/ios/Mammoth/Assets/Alt Icons/Layout@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Layout@3x.png rename to ios/Mammoth/Assets/Alt Icons/Layout@3x.png diff --git a/Mammoth/Assets/Alt Icons/Margot.png b/ios/Mammoth/Assets/Alt Icons/Margot.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Margot.png rename to ios/Mammoth/Assets/Alt Icons/Margot.png diff --git a/Mammoth/Assets/Alt Icons/Margot@2x.png b/ios/Mammoth/Assets/Alt Icons/Margot@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Margot@2x.png rename to ios/Mammoth/Assets/Alt Icons/Margot@2x.png diff --git a/Mammoth/Assets/Alt Icons/Margot@3x.png b/ios/Mammoth/Assets/Alt Icons/Margot@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Margot@3x.png rename to ios/Mammoth/Assets/Alt Icons/Margot@3x.png diff --git a/Mammoth/Assets/Alt Icons/Newsprint.png b/ios/Mammoth/Assets/Alt Icons/Newsprint.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Newsprint.png rename to ios/Mammoth/Assets/Alt Icons/Newsprint.png diff --git a/Mammoth/Assets/Alt Icons/Newsprint@2x.png b/ios/Mammoth/Assets/Alt Icons/Newsprint@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Newsprint@2x.png rename to ios/Mammoth/Assets/Alt Icons/Newsprint@2x.png diff --git a/Mammoth/Assets/Alt Icons/Newsprint@3x.png b/ios/Mammoth/Assets/Alt Icons/Newsprint@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Newsprint@3x.png rename to ios/Mammoth/Assets/Alt Icons/Newsprint@3x.png diff --git a/Mammoth/Assets/Alt Icons/Nicholas.png b/ios/Mammoth/Assets/Alt Icons/Nicholas.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Nicholas.png rename to ios/Mammoth/Assets/Alt Icons/Nicholas.png diff --git a/Mammoth/Assets/Alt Icons/Nicholas@2x.png b/ios/Mammoth/Assets/Alt Icons/Nicholas@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Nicholas@2x.png rename to ios/Mammoth/Assets/Alt Icons/Nicholas@2x.png diff --git a/Mammoth/Assets/Alt Icons/Nicholas@3x.png b/ios/Mammoth/Assets/Alt Icons/Nicholas@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Nicholas@3x.png rename to ios/Mammoth/Assets/Alt Icons/Nicholas@3x.png diff --git a/Mammoth/Assets/Alt Icons/OG Light.png b/ios/Mammoth/Assets/Alt Icons/OG Light.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Light.png rename to ios/Mammoth/Assets/Alt Icons/OG Light.png diff --git a/Mammoth/Assets/Alt Icons/OG Light@2x.png b/ios/Mammoth/Assets/Alt Icons/OG Light@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Light@2x.png rename to ios/Mammoth/Assets/Alt Icons/OG Light@2x.png diff --git a/Mammoth/Assets/Alt Icons/OG Light@3x.png b/ios/Mammoth/Assets/Alt Icons/OG Light@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Light@3x.png rename to ios/Mammoth/Assets/Alt Icons/OG Light@3x.png diff --git a/Mammoth/Assets/Alt Icons/OG Margot.png b/ios/Mammoth/Assets/Alt Icons/OG Margot.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Margot.png rename to ios/Mammoth/Assets/Alt Icons/OG Margot.png diff --git a/Mammoth/Assets/Alt Icons/OG Margot@2x.png b/ios/Mammoth/Assets/Alt Icons/OG Margot@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Margot@2x.png rename to ios/Mammoth/Assets/Alt Icons/OG Margot@2x.png diff --git a/Mammoth/Assets/Alt Icons/OG Margot@3x.png b/ios/Mammoth/Assets/Alt Icons/OG Margot@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Margot@3x.png rename to ios/Mammoth/Assets/Alt Icons/OG Margot@3x.png diff --git a/Mammoth/Assets/Alt Icons/OG Monochrome.png b/ios/Mammoth/Assets/Alt Icons/OG Monochrome.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Monochrome.png rename to ios/Mammoth/Assets/Alt Icons/OG Monochrome.png diff --git a/Mammoth/Assets/Alt Icons/OG Monochrome@2x.png b/ios/Mammoth/Assets/Alt Icons/OG Monochrome@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Monochrome@2x.png rename to ios/Mammoth/Assets/Alt Icons/OG Monochrome@2x.png diff --git a/Mammoth/Assets/Alt Icons/OG Monochrome@3x.png b/ios/Mammoth/Assets/Alt Icons/OG Monochrome@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Monochrome@3x.png rename to ios/Mammoth/Assets/Alt Icons/OG Monochrome@3x.png diff --git a/Mammoth/Assets/Alt Icons/OG Pride.png b/ios/Mammoth/Assets/Alt Icons/OG Pride.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Pride.png rename to ios/Mammoth/Assets/Alt Icons/OG Pride.png diff --git a/Mammoth/Assets/Alt Icons/OG Pride@2x.png b/ios/Mammoth/Assets/Alt Icons/OG Pride@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Pride@2x.png rename to ios/Mammoth/Assets/Alt Icons/OG Pride@2x.png diff --git a/Mammoth/Assets/Alt Icons/OG Pride@3x.png b/ios/Mammoth/Assets/Alt Icons/OG Pride@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Pride@3x.png rename to ios/Mammoth/Assets/Alt Icons/OG Pride@3x.png diff --git a/Mammoth/Assets/Alt Icons/OG Pumpkin.png b/ios/Mammoth/Assets/Alt Icons/OG Pumpkin.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Pumpkin.png rename to ios/Mammoth/Assets/Alt Icons/OG Pumpkin.png diff --git a/Mammoth/Assets/Alt Icons/OG Pumpkin@2x.png b/ios/Mammoth/Assets/Alt Icons/OG Pumpkin@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Pumpkin@2x.png rename to ios/Mammoth/Assets/Alt Icons/OG Pumpkin@2x.png diff --git a/Mammoth/Assets/Alt Icons/OG Pumpkin@3x.png b/ios/Mammoth/Assets/Alt Icons/OG Pumpkin@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Pumpkin@3x.png rename to ios/Mammoth/Assets/Alt Icons/OG Pumpkin@3x.png diff --git a/Mammoth/Assets/Alt Icons/OG Six Colors.png b/ios/Mammoth/Assets/Alt Icons/OG Six Colors.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Six Colors.png rename to ios/Mammoth/Assets/Alt Icons/OG Six Colors.png diff --git a/Mammoth/Assets/Alt Icons/OG Six Colors@2x.png b/ios/Mammoth/Assets/Alt Icons/OG Six Colors@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Six Colors@2x.png rename to ios/Mammoth/Assets/Alt Icons/OG Six Colors@2x.png diff --git a/Mammoth/Assets/Alt Icons/OG Six Colors@3x.png b/ios/Mammoth/Assets/Alt Icons/OG Six Colors@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG Six Colors@3x.png rename to ios/Mammoth/Assets/Alt Icons/OG Six Colors@3x.png diff --git a/Mammoth/Assets/Alt Icons/OG White.png b/ios/Mammoth/Assets/Alt Icons/OG White.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG White.png rename to ios/Mammoth/Assets/Alt Icons/OG White.png diff --git a/Mammoth/Assets/Alt Icons/OG White@2x.png b/ios/Mammoth/Assets/Alt Icons/OG White@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG White@2x.png rename to ios/Mammoth/Assets/Alt Icons/OG White@2x.png diff --git a/Mammoth/Assets/Alt Icons/OG White@3x.png b/ios/Mammoth/Assets/Alt Icons/OG White@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG White@3x.png rename to ios/Mammoth/Assets/Alt Icons/OG White@3x.png diff --git a/Mammoth/Assets/Alt Icons/OG.png b/ios/Mammoth/Assets/Alt Icons/OG.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG.png rename to ios/Mammoth/Assets/Alt Icons/OG.png diff --git a/Mammoth/Assets/Alt Icons/OG@2x.png b/ios/Mammoth/Assets/Alt Icons/OG@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG@2x.png rename to ios/Mammoth/Assets/Alt Icons/OG@2x.png diff --git a/Mammoth/Assets/Alt Icons/OG@3x.png b/ios/Mammoth/Assets/Alt Icons/OG@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/OG@3x.png rename to ios/Mammoth/Assets/Alt Icons/OG@3x.png diff --git a/Mammoth/Assets/Alt Icons/Paper Dark.png b/ios/Mammoth/Assets/Alt Icons/Paper Dark.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Paper Dark.png rename to ios/Mammoth/Assets/Alt Icons/Paper Dark.png diff --git a/Mammoth/Assets/Alt Icons/Paper Dark@2x.png b/ios/Mammoth/Assets/Alt Icons/Paper Dark@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Paper Dark@2x.png rename to ios/Mammoth/Assets/Alt Icons/Paper Dark@2x.png diff --git a/Mammoth/Assets/Alt Icons/Paper Dark@3x.png b/ios/Mammoth/Assets/Alt Icons/Paper Dark@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Paper Dark@3x.png rename to ios/Mammoth/Assets/Alt Icons/Paper Dark@3x.png diff --git a/Mammoth/Assets/Alt Icons/Paper Light.png b/ios/Mammoth/Assets/Alt Icons/Paper Light.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Paper Light.png rename to ios/Mammoth/Assets/Alt Icons/Paper Light.png diff --git a/Mammoth/Assets/Alt Icons/Paper Light@2x.png b/ios/Mammoth/Assets/Alt Icons/Paper Light@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Paper Light@2x.png rename to ios/Mammoth/Assets/Alt Icons/Paper Light@2x.png diff --git a/Mammoth/Assets/Alt Icons/Paper Light@3x.png b/ios/Mammoth/Assets/Alt Icons/Paper Light@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Paper Light@3x.png rename to ios/Mammoth/Assets/Alt Icons/Paper Light@3x.png diff --git a/Mammoth/Assets/Alt Icons/Pride Dark.png b/ios/Mammoth/Assets/Alt Icons/Pride Dark.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride Dark.png rename to ios/Mammoth/Assets/Alt Icons/Pride Dark.png diff --git a/Mammoth/Assets/Alt Icons/Pride Dark@2x.png b/ios/Mammoth/Assets/Alt Icons/Pride Dark@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride Dark@2x.png rename to ios/Mammoth/Assets/Alt Icons/Pride Dark@2x.png diff --git a/Mammoth/Assets/Alt Icons/Pride Dark@3x.png b/ios/Mammoth/Assets/Alt Icons/Pride Dark@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride Dark@3x.png rename to ios/Mammoth/Assets/Alt Icons/Pride Dark@3x.png diff --git a/Mammoth/Assets/Alt Icons/Pride Light.png b/ios/Mammoth/Assets/Alt Icons/Pride Light.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride Light.png rename to ios/Mammoth/Assets/Alt Icons/Pride Light.png diff --git a/Mammoth/Assets/Alt Icons/Pride Light@2x.png b/ios/Mammoth/Assets/Alt Icons/Pride Light@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride Light@2x.png rename to ios/Mammoth/Assets/Alt Icons/Pride Light@2x.png diff --git a/Mammoth/Assets/Alt Icons/Pride Light@3x.png b/ios/Mammoth/Assets/Alt Icons/Pride Light@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride Light@3x.png rename to ios/Mammoth/Assets/Alt Icons/Pride Light@3x.png diff --git a/Mammoth/Assets/Alt Icons/Pride Slant.png b/ios/Mammoth/Assets/Alt Icons/Pride Slant.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride Slant.png rename to ios/Mammoth/Assets/Alt Icons/Pride Slant.png diff --git a/Mammoth/Assets/Alt Icons/Pride Slant@2x.png b/ios/Mammoth/Assets/Alt Icons/Pride Slant@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride Slant@2x.png rename to ios/Mammoth/Assets/Alt Icons/Pride Slant@2x.png diff --git a/Mammoth/Assets/Alt Icons/Pride Slant@3x.png b/ios/Mammoth/Assets/Alt Icons/Pride Slant@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride Slant@3x.png rename to ios/Mammoth/Assets/Alt Icons/Pride Slant@3x.png diff --git a/Mammoth/Assets/Alt Icons/Pride.png b/ios/Mammoth/Assets/Alt Icons/Pride.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride.png rename to ios/Mammoth/Assets/Alt Icons/Pride.png diff --git a/Mammoth/Assets/Alt Icons/Pride@2x.png b/ios/Mammoth/Assets/Alt Icons/Pride@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride@2x.png rename to ios/Mammoth/Assets/Alt Icons/Pride@2x.png diff --git a/Mammoth/Assets/Alt Icons/Pride@3x.png b/ios/Mammoth/Assets/Alt Icons/Pride@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Pride@3x.png rename to ios/Mammoth/Assets/Alt Icons/Pride@3x.png diff --git a/Mammoth/Assets/Alt Icons/Schultz.png b/ios/Mammoth/Assets/Alt Icons/Schultz.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Schultz.png rename to ios/Mammoth/Assets/Alt Icons/Schultz.png diff --git a/Mammoth/Assets/Alt Icons/Schultz@2x.png b/ios/Mammoth/Assets/Alt Icons/Schultz@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Schultz@2x.png rename to ios/Mammoth/Assets/Alt Icons/Schultz@2x.png diff --git a/Mammoth/Assets/Alt Icons/Schultz@3x.png b/ios/Mammoth/Assets/Alt Icons/Schultz@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Schultz@3x.png rename to ios/Mammoth/Assets/Alt Icons/Schultz@3x.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors Dark.png b/ios/Mammoth/Assets/Alt Icons/Six Colors Dark.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors Dark.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors Dark.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors Dark@2x.png b/ios/Mammoth/Assets/Alt Icons/Six Colors Dark@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors Dark@2x.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors Dark@2x.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors Dark@3x.png b/ios/Mammoth/Assets/Alt Icons/Six Colors Dark@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors Dark@3x.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors Dark@3x.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors Light.png b/ios/Mammoth/Assets/Alt Icons/Six Colors Light.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors Light.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors Light.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors Light@2x.png b/ios/Mammoth/Assets/Alt Icons/Six Colors Light@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors Light@2x.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors Light@2x.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors Light@3x.png b/ios/Mammoth/Assets/Alt Icons/Six Colors Light@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors Light@3x.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors Light@3x.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors Slant.png b/ios/Mammoth/Assets/Alt Icons/Six Colors Slant.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors Slant.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors Slant.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors Slant@2x.png b/ios/Mammoth/Assets/Alt Icons/Six Colors Slant@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors Slant@2x.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors Slant@2x.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors Slant@3x.png b/ios/Mammoth/Assets/Alt Icons/Six Colors Slant@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors Slant@3x.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors Slant@3x.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors.png b/ios/Mammoth/Assets/Alt Icons/Six Colors.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors@2x.png b/ios/Mammoth/Assets/Alt Icons/Six Colors@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors@2x.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors@2x.png diff --git a/Mammoth/Assets/Alt Icons/Six Colors@3x.png b/ios/Mammoth/Assets/Alt Icons/Six Colors@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Six Colors@3x.png rename to ios/Mammoth/Assets/Alt Icons/Six Colors@3x.png diff --git a/Mammoth/Assets/Alt Icons/Soft.png b/ios/Mammoth/Assets/Alt Icons/Soft.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Soft.png rename to ios/Mammoth/Assets/Alt Icons/Soft.png diff --git a/Mammoth/Assets/Alt Icons/Soft@2x.png b/ios/Mammoth/Assets/Alt Icons/Soft@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Soft@2x.png rename to ios/Mammoth/Assets/Alt Icons/Soft@2x.png diff --git a/Mammoth/Assets/Alt Icons/Soft@3x.png b/ios/Mammoth/Assets/Alt Icons/Soft@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Soft@3x.png rename to ios/Mammoth/Assets/Alt Icons/Soft@3x.png diff --git a/Mammoth/Assets/Alt Icons/Stealth.png b/ios/Mammoth/Assets/Alt Icons/Stealth.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Stealth.png rename to ios/Mammoth/Assets/Alt Icons/Stealth.png diff --git a/Mammoth/Assets/Alt Icons/Stealth@2x.png b/ios/Mammoth/Assets/Alt Icons/Stealth@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Stealth@2x.png rename to ios/Mammoth/Assets/Alt Icons/Stealth@2x.png diff --git a/Mammoth/Assets/Alt Icons/Stealth@3x.png b/ios/Mammoth/Assets/Alt Icons/Stealth@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Stealth@3x.png rename to ios/Mammoth/Assets/Alt Icons/Stealth@3x.png diff --git a/Mammoth/Assets/Alt Icons/Sticker.png b/ios/Mammoth/Assets/Alt Icons/Sticker.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Sticker.png rename to ios/Mammoth/Assets/Alt Icons/Sticker.png diff --git a/Mammoth/Assets/Alt Icons/Sticker@2x.png b/ios/Mammoth/Assets/Alt Icons/Sticker@2x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Sticker@2x.png rename to ios/Mammoth/Assets/Alt Icons/Sticker@2x.png diff --git a/Mammoth/Assets/Alt Icons/Sticker@3x.png b/ios/Mammoth/Assets/Alt Icons/Sticker@3x.png similarity index 100% rename from Mammoth/Assets/Alt Icons/Sticker@3x.png rename to ios/Mammoth/Assets/Alt Icons/Sticker@3x.png diff --git a/Mammoth/Assets/Assets.xcassets/AccentColor.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AccentColor.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/AppCol.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/AppCol.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppCol.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/AppCol.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/iphone120.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/AppIcon@2x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/iphone120.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/AppIcon@2x.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipad152.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/AppIcon@2x~ipad.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipad152.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/AppIcon@2x~ipad.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/iphone180.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/AppIcon@3x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/iphone180.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/AppIcon@3x.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadPro167.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/AppIcon@3x~ipad.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadPro167.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/AppIcon@3x~ipad.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/appstore1024.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/appstore1024.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/appstore1024.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/appstore1024.png diff --git a/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipad152.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipad152.png new file mode 100644 index 000000000..c000f6fce Binary files /dev/null and b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipad152.png differ diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipad76.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipad76.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipad76.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipad76.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadNotification20.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadNotification20.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadNotification20.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadNotification20.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadNotification40.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadNotification40.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadNotification40.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadNotification40.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/ipadPro167 1.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadPro167.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/ipadPro167 1.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadPro167.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSettings29.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSettings29.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSettings29.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSettings29.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSettings58.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSettings58.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSettings58.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSettings58.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSpotlight40.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSpotlight40.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSpotlight40.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSpotlight40.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSpotlight80.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSpotlight80.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSpotlight80.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/ipadSpotlight80.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/spotlight120.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/iphone120.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/spotlight120.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/iphone120.png diff --git a/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/iphone180.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/iphone180.png new file mode 100644 index 000000000..8b55a36ae Binary files /dev/null and b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/iphone180.png differ diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac1024.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac1024.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac1024.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac1024.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac128.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac128.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac128.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac128.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac16.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac16.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac16.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac16.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac256.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac256.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac256.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac256.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac32.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac32.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac32.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac32.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac512.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac512.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac512.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac512.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac64.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac64.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac64.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/mac64.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/notification40.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/notification40.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/notification40.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/notification40.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/notification60.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/notification60.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/notification60.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/notification60.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/settings58.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/settings58.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/settings58.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/settings58.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/settings87.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/settings87.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/settings87.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/settings87.png diff --git a/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/spotlight120.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/spotlight120.png new file mode 100644 index 000000000..c88a4193f Binary files /dev/null and b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/spotlight120.png differ diff --git a/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/spotlight80.png b/ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/spotlight80.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/spotlight80.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIcon.appiconset/spotlight80.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/appstore1024.png b/ios/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/appstore1024.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/appstore1024.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/appstore1024.png diff --git a/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/ipad76.png b/ios/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/ipad76.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/ipad76.png rename to ios/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/ipad76.png diff --git a/ios/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/ipadPro167 1.png b/ios/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/ipadPro167 1.png new file mode 100644 index 000000000..e1aaed0b7 Binary files /dev/null and b/ios/Mammoth/Assets/Assets.xcassets/AppIconHighRes.imageset/ipadPro167 1.png differ diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Active Inverted.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Active Inverted.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Active Inverted.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Active Inverted.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Active.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Active.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Active.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Active.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Background.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Background.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Background.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Background.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY High.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY High.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY High.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY High.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY Med.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY Med.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY Med.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY Med.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY Neut.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY Neut.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY Neut.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Blurred OVRLY Neut.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Destructive.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Destructive.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Destructive.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Destructive.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Display Names.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Display Names.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Display Names.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Display Names.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Feint Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Feint Contrast.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Feint Contrast.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Feint Contrast.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Follow Button BG.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Follow Button BG.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Follow Button BG.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Follow Button BG.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Gold.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Gold.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Gold.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Gold.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/High Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/High Contrast.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/High Contrast.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/High Contrast.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Inactive.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Inactive.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Inactive.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Inactive.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Link Text Inactive.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Link Text Inactive.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Link Text Inactive.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Link Text Inactive.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Link Text.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Link Text.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Link Text.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Link Text.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Medium Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Medium Contrast.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Medium Contrast.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Medium Contrast.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/OVRLY Med Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/OVRLY Med Contrast.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/OVRLY Med Contrast.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/OVRLY Med Contrast.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/OVRLY Soft Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/OVRLY Soft Contrast.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/OVRLY Soft Contrast.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/OVRLY Soft Contrast.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Outlines.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Outlines.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Outlines.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Outlines.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Soft Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Soft Contrast.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Soft Contrast.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Soft Contrast.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Colors/Status Bar.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Colors/Status Bar.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Colors/Status Bar.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Colors/Status Bar.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem.png b/ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem.png rename to ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem.png diff --git a/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem@2x.png b/ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem@2x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem@2x.png rename to ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem@2x.png diff --git a/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem@3x.png b/ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem@3x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem@3x.png rename to ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblem.imageset/GiphyLogoEmblem@3x.png diff --git a/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight.png b/ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight.png rename to ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight.png diff --git a/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight@2x.png b/ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight@2x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight@2x.png rename to ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight@2x.png diff --git a/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight@3x.png b/ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight@3x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight@3x.png rename to ios/Mammoth/Assets/Assets.xcassets/GiphyLogoEmblemLight.imageset/GiphyLogoEmblemLight@3x.png diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCActive Inverted.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCActive Inverted.colorset/Contents.json new file mode 100644 index 000000000..fa0526284 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCActive Inverted.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xEE", + "green" : "0xEE", + "red" : "0xEE" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x20", + "green" : "0x20", + "red" : "0x20" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCActive.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCActive.colorset/Contents.json new file mode 100644 index 000000000..5da9a050b --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCActive.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x13", + "green" : "0x13", + "red" : "0x13" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xEC", + "green" : "0xEC", + "red" : "0xEC" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBackground.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBackground.colorset/Contents.json new file mode 100644 index 000000000..53f9064b4 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBackground.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0xF7", + "green" : "0xF7", + "red" : "0xF7" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0x09", + "green" : "0x09", + "red" : "0x09" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBlurred OVRLY High.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBlurred OVRLY High.colorset/Contents.json new file mode 100644 index 000000000..c1da7f6b6 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBlurred OVRLY High.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.700", + "blue" : "0xC9", + "green" : "0xC9", + "red" : "0xC9" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.700", + "blue" : "0x3F", + "green" : "0x3F", + "red" : "0x3F" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBlurred OVRLY Med.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBlurred OVRLY Med.colorset/Contents.json new file mode 100644 index 000000000..5d3126c0b --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBlurred OVRLY Med.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.700", + "blue" : "0xEB", + "green" : "0xEB", + "red" : "0xEB" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.700", + "blue" : "0x2C", + "green" : "0x2C", + "red" : "0x2C" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBlurred OVRLY Neut.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBlurred OVRLY Neut.colorset/Contents.json new file mode 100644 index 000000000..868e5b1fc --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCBlurred OVRLY Neut.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.800", + "blue" : "0xF4", + "green" : "0xF4", + "red" : "0xF4" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.800", + "blue" : "0x09", + "green" : "0x09", + "red" : "0x09" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCDestructive Light.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCDestructive Light.colorset/Contents.json new file mode 100644 index 000000000..6cf9e3f88 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCDestructive Light.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x77", + "green" : "0x77", + "red" : "0xDD" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x77", + "green" : "0x77", + "red" : "0xDD" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCDestructive.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCDestructive.colorset/Contents.json new file mode 100644 index 000000000..55c7d6c61 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCDestructive.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x39", + "green" : "0x39", + "red" : "0xD7" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x39", + "green" : "0x39", + "red" : "0xD7" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCDisplay Names.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCDisplay Names.colorset/Contents.json new file mode 100644 index 000000000..5da9a050b --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCDisplay Names.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x13", + "green" : "0x13", + "red" : "0x13" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xEC", + "green" : "0xEC", + "red" : "0xEC" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCFeint Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCFeint Contrast.colorset/Contents.json new file mode 100644 index 000000000..462324f87 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCFeint Contrast.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x1F", + "green" : "0x1F", + "red" : "0x1F" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xC4", + "green" : "0xC4", + "red" : "0xC4" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCFollow Button BG.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCFollow Button BG.colorset/Contents.json new file mode 100644 index 000000000..ee0a21c1f --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCFollow Button BG.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xEB", + "green" : "0xEB", + "red" : "0xEB" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x20", + "green" : "0x20", + "red" : "0x20" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCGold.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCGold.colorset/Contents.json new file mode 100644 index 000000000..680201af0 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCGold.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x56", + "green" : "0xA8", + "red" : "0xDF" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x56", + "green" : "0xA8", + "red" : "0xDF" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCHigh Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCHigh Contrast.colorset/Contents.json new file mode 100644 index 000000000..6ebf874bf --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCHigh Contrast.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x08", + "green" : "0x08", + "red" : "0x08" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCImage Overlay.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCImage Overlay.colorset/Contents.json new file mode 100644 index 000000000..26b19496c --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCImage Overlay.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.300", + "blue" : "0xF4", + "green" : "0xF4", + "red" : "0xF4" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "0.300", + "blue" : "0x15", + "green" : "0x15", + "red" : "0x15" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCInactive.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCInactive.colorset/Contents.json new file mode 100644 index 000000000..3f2f2ddde --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCInactive.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x47", + "green" : "0x47", + "red" : "0x47" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x86", + "green" : "0x86", + "red" : "0x86" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCLink Text Inactive.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCLink Text Inactive.colorset/Contents.json new file mode 100644 index 000000000..b3a63e5b7 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCLink Text Inactive.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x7B", + "green" : "0x7B", + "red" : "0x7B" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x7B", + "green" : "0x7B", + "red" : "0x7B" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCLink Text.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCLink Text.colorset/Contents.json new file mode 100644 index 000000000..5a5f57d1a --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCLink Text.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x0D", + "green" : "0x0D", + "red" : "0x0D" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCMedium Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCMedium Contrast.colorset/Contents.json new file mode 100644 index 000000000..f32799e00 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCMedium Contrast.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x23", + "green" : "0x23", + "red" : "0x23" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xE8", + "green" : "0xE8", + "red" : "0xE8" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCOVRLY Med Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCOVRLY Med Contrast.colorset/Contents.json new file mode 100644 index 000000000..db0226bc1 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCOVRLY Med Contrast.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xCE", + "green" : "0xCE", + "red" : "0xCE" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x2F", + "green" : "0x2F", + "red" : "0x2F" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCOVRLY Soft Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCOVRLY Soft Contrast.colorset/Contents.json new file mode 100644 index 000000000..a33541f99 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCOVRLY Soft Contrast.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0xEB", + "green" : "0xEB", + "red" : "0xEB" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "display-p3", + "components" : { + "alpha" : "1.000", + "blue" : "0x20", + "green" : "0x20", + "red" : "0x20" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCOutlines.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCOutlines.colorset/Contents.json new file mode 100644 index 000000000..38ff85752 --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCOutlines.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xBC", + "green" : "0xBC", + "red" : "0xBC" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x45", + "green" : "0x45", + "red" : "0x45" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCSoft Contrast.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCSoft Contrast.colorset/Contents.json new file mode 100644 index 000000000..e9407946b --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCSoft Contrast.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x3E", + "green" : "0x3E", + "red" : "0x3E" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xCF", + "green" : "0xCF", + "red" : "0xCF" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCStatus Bar.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCStatus Bar.colorset/Contents.json new file mode 100644 index 000000000..0c600f92f --- /dev/null +++ b/ios/Mammoth/Assets/Assets.xcassets/HCColors/HCStatus Bar.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0x00", + "green" : "0x00", + "red" : "0x00" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0xFF", + "green" : "0xFF", + "red" : "0xFF" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Mammoth/Assets/Assets.xcassets/Hashtag.imageset/Avatar.png b/ios/Mammoth/Assets/Assets.xcassets/Hashtag.imageset/Avatar.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Hashtag.imageset/Avatar.png rename to ios/Mammoth/Assets/Assets.xcassets/Hashtag.imageset/Avatar.png diff --git a/Mammoth/Assets/Assets.xcassets/Hashtag.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Hashtag.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Hashtag.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Hashtag.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Icon1-400.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Icon1-400.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Icon1-400.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Icon1-400.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Icon1-400.imageset/Icon1-400.png b/ios/Mammoth/Assets/Assets.xcassets/Icon1-400.imageset/Icon1-400.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Icon1-400.imageset/Icon1-400.png rename to ios/Mammoth/Assets/Assets.xcassets/Icon1-400.imageset/Icon1-400.png diff --git a/Mammoth/Assets/Assets.xcassets/Icon3-400.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Icon3-400.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Icon3-400.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Icon3-400.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Icon3-400.imageset/Icon3-400.png b/ios/Mammoth/Assets/Assets.xcassets/Icon3-400.imageset/Icon3-400.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Icon3-400.imageset/Icon3-400.png rename to ios/Mammoth/Assets/Assets.xcassets/Icon3-400.imageset/Icon3-400.png diff --git a/Mammoth/Assets/Assets.xcassets/Icon4-400.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Icon4-400.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Icon4-400.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Icon4-400.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Icon4-400.imageset/Icon4-400.png b/ios/Mammoth/Assets/Assets.xcassets/Icon4-400.imageset/Icon4-400.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Icon4-400.imageset/Icon4-400.png rename to ios/Mammoth/Assets/Assets.xcassets/Icon4-400.imageset/Icon4-400.png diff --git a/Mammoth/Assets/Assets.xcassets/Icon5-400.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Icon5-400.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Icon5-400.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Icon5-400.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Icon5-400.imageset/Icon5-400.png b/ios/Mammoth/Assets/Assets.xcassets/Icon5-400.imageset/Icon5-400.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Icon5-400.imageset/Icon5-400.png rename to ios/Mammoth/Assets/Assets.xcassets/Icon5-400.imageset/Icon5-400.png diff --git a/Mammoth/Assets/Assets.xcassets/Icon6-400.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Icon6-400.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Icon6-400.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Icon6-400.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Icon6-400.imageset/Icon6-400.png b/ios/Mammoth/Assets/Assets.xcassets/Icon6-400.imageset/Icon6-400.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Icon6-400.imageset/Icon6-400.png rename to ios/Mammoth/Assets/Assets.xcassets/Icon6-400.imageset/Icon6-400.png diff --git a/Mammoth/Assets/Assets.xcassets/IconBlack-400.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/IconBlack-400.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/IconBlack-400.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/IconBlack-400.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/IconBlack-400.imageset/IconBlack-400.png b/ios/Mammoth/Assets/Assets.xcassets/IconBlack-400.imageset/IconBlack-400.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/IconBlack-400.imageset/IconBlack-400.png rename to ios/Mammoth/Assets/Assets.xcassets/IconBlack-400.imageset/IconBlack-400.png diff --git a/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate.png b/ios/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate.png rename to ios/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate.png diff --git a/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate@2x.png b/ios/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate@2x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate@2x.png rename to ios/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate@2x.png diff --git a/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate@3x.png b/ios/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate@3x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate@3x.png rename to ios/Mammoth/Assets/Assets.xcassets/LaunchSc.imageset/launch - alternate@3x.png diff --git a/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908.png b/ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908.png rename to ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908.png diff --git a/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908@2x.png b/ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908@2x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908@2x.png rename to ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908@2x.png diff --git a/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908@3x.png b/ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908@3x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908@3x.png rename to ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3908@3x.png diff --git a/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943.png b/ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943.png rename to ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943.png diff --git a/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943@2x.png b/ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943@2x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943@2x.png rename to ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943@2x.png diff --git a/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943@3x.png b/ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943@3x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943@3x.png rename to ios/Mammoth/Assets/Assets.xcassets/Mammoth.imageset/Frame 3943@3x.png diff --git a/Mammoth/Assets/Assets.xcassets/ThinSliderThumb.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/ThinSliderThumb.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/ThinSliderThumb.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/ThinSliderThumb.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/ThinSliderThumb.imageset/ThinThumb.svg b/ios/Mammoth/Assets/Assets.xcassets/ThinSliderThumb.imageset/ThinThumb.svg similarity index 100% rename from Mammoth/Assets/Assets.xcassets/ThinSliderThumb.imageset/ThinThumb.svg rename to ios/Mammoth/Assets/Assets.xcassets/ThinSliderThumb.imageset/ThinThumb.svg diff --git a/Mammoth/Assets/Assets.xcassets/confetti.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/confetti.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/confetti.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/confetti.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/confetti.imageset/confetti.png b/ios/Mammoth/Assets/Assets.xcassets/confetti.imageset/confetti.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/confetti.imageset/confetti.png rename to ios/Mammoth/Assets/Assets.xcassets/confetti.imageset/confetti.png diff --git a/Mammoth/Assets/Assets.xcassets/gif.rectangle.symbolset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/gif.rectangle.symbolset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/gif.rectangle.symbolset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/gif.rectangle.symbolset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/gif.rectangle.symbolset/gif.rectangle.svg b/ios/Mammoth/Assets/Assets.xcassets/gif.rectangle.symbolset/gif.rectangle.svg similarity index 100% rename from Mammoth/Assets/Assets.xcassets/gif.rectangle.symbolset/gif.rectangle.svg rename to ios/Mammoth/Assets/Assets.xcassets/gif.rectangle.symbolset/gif.rectangle.svg diff --git a/Mammoth/Assets/Assets.xcassets/ico.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/ico.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/ico.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/ico.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/ico.imageset/ico.png b/ios/Mammoth/Assets/Assets.xcassets/ico.imageset/ico.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/ico.imageset/ico.png rename to ios/Mammoth/Assets/Assets.xcassets/ico.imageset/ico.png diff --git a/Mammoth/Assets/Assets.xcassets/ico.imageset/ico@2x.png b/ios/Mammoth/Assets/Assets.xcassets/ico.imageset/ico@2x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/ico.imageset/ico@2x.png rename to ios/Mammoth/Assets/Assets.xcassets/ico.imageset/ico@2x.png diff --git a/Mammoth/Assets/Assets.xcassets/ico.imageset/ico@3x.png b/ios/Mammoth/Assets/Assets.xcassets/ico.imageset/ico@3x.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/ico.imageset/ico@3x.png rename to ios/Mammoth/Assets/Assets.xcassets/ico.imageset/ico@3x.png diff --git a/Mammoth/Assets/Assets.xcassets/launchBG.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/launchBG.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/launchBG.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/launchBG.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/mastodon.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/mastodon.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/mastodon.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/mastodon.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/mastodon.imageset/mastodon.pdf b/ios/Mammoth/Assets/Assets.xcassets/mastodon.imageset/mastodon.pdf similarity index 100% rename from Mammoth/Assets/Assets.xcassets/mastodon.imageset/mastodon.pdf rename to ios/Mammoth/Assets/Assets.xcassets/mastodon.imageset/mastodon.pdf diff --git a/Mammoth/Assets/Assets.xcassets/missing.imageset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/missing.imageset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/missing.imageset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/missing.imageset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/missing.imageset/missing.png b/ios/Mammoth/Assets/Assets.xcassets/missing.imageset/missing.png similarity index 100% rename from Mammoth/Assets/Assets.xcassets/missing.imageset/missing.png rename to ios/Mammoth/Assets/Assets.xcassets/missing.imageset/missing.png diff --git a/Mammoth/Assets/Assets.xcassets/selectedCell.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/selectedCell.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/selectedCell.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/selectedCell.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/selectedFollowing.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/selectedFollowing.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/selectedFollowing.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/selectedFollowing.colorset/Contents.json diff --git a/Mammoth/Assets/Assets.xcassets/spinnerBG.colorset/Contents.json b/ios/Mammoth/Assets/Assets.xcassets/spinnerBG.colorset/Contents.json similarity index 100% rename from Mammoth/Assets/Assets.xcassets/spinnerBG.colorset/Contents.json rename to ios/Mammoth/Assets/Assets.xcassets/spinnerBG.colorset/Contents.json diff --git a/Mammoth/Assets/Fonts/FontAwesome.swift b/ios/Mammoth/Assets/Fonts/FontAwesome.swift similarity index 100% rename from Mammoth/Assets/Fonts/FontAwesome.swift rename to ios/Mammoth/Assets/Fonts/FontAwesome.swift diff --git a/Mammoth/Assets/Fonts/InstrumentSerif-Regular.ttf b/ios/Mammoth/Assets/Fonts/InstrumentSerif-Regular.ttf similarity index 100% rename from Mammoth/Assets/Fonts/InstrumentSerif-Regular.ttf rename to ios/Mammoth/Assets/Fonts/InstrumentSerif-Regular.ttf diff --git a/Mammoth/Assets/Fonts/custom-icons.ttf b/ios/Mammoth/Assets/Fonts/custom-icons.ttf similarity index 100% rename from Mammoth/Assets/Fonts/custom-icons.ttf rename to ios/Mammoth/Assets/Fonts/custom-icons.ttf diff --git a/Mammoth/Assets/Fonts/fa-regular-400.ttf b/ios/Mammoth/Assets/Fonts/fa-regular-400.ttf similarity index 100% rename from Mammoth/Assets/Fonts/fa-regular-400.ttf rename to ios/Mammoth/Assets/Fonts/fa-regular-400.ttf diff --git a/Mammoth/Assets/Fonts/fa-solid-900.ttf b/ios/Mammoth/Assets/Fonts/fa-solid-900.ttf similarity index 100% rename from Mammoth/Assets/Fonts/fa-solid-900.ttf rename to ios/Mammoth/Assets/Fonts/fa-solid-900.ttf diff --git a/Mammoth/Assets/Sounds/mute.aiff b/ios/Mammoth/Assets/Sounds/mute.aiff similarity index 100% rename from Mammoth/Assets/Sounds/mute.aiff rename to ios/Mammoth/Assets/Sounds/mute.aiff diff --git a/Mammoth/Assets/Sounds/soundError.wav b/ios/Mammoth/Assets/Sounds/soundError.wav similarity index 100% rename from Mammoth/Assets/Sounds/soundError.wav rename to ios/Mammoth/Assets/Sounds/soundError.wav diff --git a/Mammoth/Assets/Sounds/soundMallet.wav b/ios/Mammoth/Assets/Sounds/soundMallet.wav similarity index 100% rename from Mammoth/Assets/Sounds/soundMallet.wav rename to ios/Mammoth/Assets/Sounds/soundMallet.wav diff --git a/Mammoth/Assets/Sounds/soundPublished.wav b/ios/Mammoth/Assets/Sounds/soundPublished.wav similarity index 100% rename from Mammoth/Assets/Sounds/soundPublished.wav rename to ios/Mammoth/Assets/Sounds/soundPublished.wav diff --git a/Mammoth/Assets/Sounds/soundPublished2.wav b/ios/Mammoth/Assets/Sounds/soundPublished2.wav similarity index 100% rename from Mammoth/Assets/Sounds/soundPublished2.wav rename to ios/Mammoth/Assets/Sounds/soundPublished2.wav diff --git a/Mammoth/Assets/Sounds/soundPush.wav b/ios/Mammoth/Assets/Sounds/soundPush.wav similarity index 100% rename from Mammoth/Assets/Sounds/soundPush.wav rename to ios/Mammoth/Assets/Sounds/soundPush.wav diff --git a/Mammoth/Assets/Sounds/soundRemove.wav b/ios/Mammoth/Assets/Sounds/soundRemove.wav similarity index 100% rename from Mammoth/Assets/Sounds/soundRemove.wav rename to ios/Mammoth/Assets/Sounds/soundRemove.wav diff --git a/Mammoth/Assets/Sounds/soundSuction.wav b/ios/Mammoth/Assets/Sounds/soundSuction.wav similarity index 100% rename from Mammoth/Assets/Sounds/soundSuction.wav rename to ios/Mammoth/Assets/Sounds/soundSuction.wav diff --git a/Mammoth/Base.lproj/LaunchScreen.storyboard b/ios/Mammoth/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from Mammoth/Base.lproj/LaunchScreen.storyboard rename to ios/Mammoth/Base.lproj/LaunchScreen.storyboard diff --git a/Mammoth/Base.lproj/Main.storyboard b/ios/Mammoth/Base.lproj/Main.storyboard similarity index 100% rename from Mammoth/Base.lproj/Main.storyboard rename to ios/Mammoth/Base.lproj/Main.storyboard diff --git a/Mammoth/CHANGELOG.md b/ios/Mammoth/CHANGELOG.md similarity index 100% rename from Mammoth/CHANGELOG.md rename to ios/Mammoth/CHANGELOG.md diff --git a/Mammoth/IAPConfig.storekit b/ios/Mammoth/IAPConfig.storekit similarity index 100% rename from Mammoth/IAPConfig.storekit rename to ios/Mammoth/IAPConfig.storekit diff --git a/Mammoth/Info.plist b/ios/Mammoth/Info.plist similarity index 100% rename from Mammoth/Info.plist rename to ios/Mammoth/Info.plist diff --git a/ios/Mammoth/Mammoth-Bridging-Header.h b/ios/Mammoth/Mammoth-Bridging-Header.h new file mode 100644 index 000000000..7858ba698 --- /dev/null +++ b/ios/Mammoth/Mammoth-Bridging-Header.h @@ -0,0 +1,18 @@ +// +// Mastodon-Bridging-Header.h +// Mastodon +// +// Created by Shihab Mehboob on 03/11/2022. +// + +#import "TOCropViewController.h" + +#import +#import +#import +#import +#import +#import +#import "NavigationEventEmitter.h" +#import "RCCCustomTitleView.h" +#import "UIColor+Hex.h" diff --git a/Mammoth/Mammoth.entitlements b/ios/Mammoth/Mammoth.entitlements similarity index 100% rename from Mammoth/Mammoth.entitlements rename to ios/Mammoth/Mammoth.entitlements diff --git a/Mammoth/Managers/AVManager.swift b/ios/Mammoth/Managers/AVManager.swift similarity index 100% rename from Mammoth/Managers/AVManager.swift rename to ios/Mammoth/Managers/AVManager.swift diff --git a/Mammoth/Managers/AccountCacher.swift b/ios/Mammoth/Managers/AccountCacher.swift similarity index 100% rename from Mammoth/Managers/AccountCacher.swift rename to ios/Mammoth/Managers/AccountCacher.swift diff --git a/Mammoth/Managers/AccountsManager/AccountsManager.swift b/ios/Mammoth/Managers/AccountsManager/AccountsManager.swift similarity index 100% rename from Mammoth/Managers/AccountsManager/AccountsManager.swift rename to ios/Mammoth/Managers/AccountsManager/AccountsManager.swift diff --git a/Mammoth/Managers/AccountsManager/AccountsManagerShim.swift b/ios/Mammoth/Managers/AccountsManager/AccountsManagerShim.swift similarity index 100% rename from Mammoth/Managers/AccountsManager/AccountsManagerShim.swift rename to ios/Mammoth/Managers/AccountsManager/AccountsManagerShim.swift diff --git a/Mammoth/Managers/AccountsManager/AcctData.swift b/ios/Mammoth/Managers/AccountsManager/AcctData.swift similarity index 100% rename from Mammoth/Managers/AccountsManager/AcctData.swift rename to ios/Mammoth/Managers/AccountsManager/AcctData.swift diff --git a/Mammoth/Managers/AccountsManager/AcctDataViewModel.swift b/ios/Mammoth/Managers/AccountsManager/AcctDataViewModel.swift similarity index 100% rename from Mammoth/Managers/AccountsManager/AcctDataViewModel.swift rename to ios/Mammoth/Managers/AccountsManager/AcctDataViewModel.swift diff --git a/Mammoth/Managers/AccountsManager/AcctHandler.swift b/ios/Mammoth/Managers/AccountsManager/AcctHandler.swift similarity index 100% rename from Mammoth/Managers/AccountsManager/AcctHandler.swift rename to ios/Mammoth/Managers/AccountsManager/AcctHandler.swift diff --git a/Mammoth/Managers/AnalyticsManager.swift b/ios/Mammoth/Managers/AnalyticsManager.swift similarity index 100% rename from Mammoth/Managers/AnalyticsManager.swift rename to ios/Mammoth/Managers/AnalyticsManager.swift diff --git a/Mammoth/Managers/ChannelManager.swift b/ios/Mammoth/Managers/ChannelManager.swift similarity index 100% rename from Mammoth/Managers/ChannelManager.swift rename to ios/Mammoth/Managers/ChannelManager.swift diff --git a/Mammoth/Managers/FeedsManager.swift b/ios/Mammoth/Managers/FeedsManager.swift similarity index 100% rename from Mammoth/Managers/FeedsManager.swift rename to ios/Mammoth/Managers/FeedsManager.swift diff --git a/Mammoth/Managers/FollowManager.swift b/ios/Mammoth/Managers/FollowManager.swift similarity index 100% rename from Mammoth/Managers/FollowManager.swift rename to ios/Mammoth/Managers/FollowManager.swift diff --git a/Mammoth/Managers/HashtagManager.swift b/ios/Mammoth/Managers/HashtagManager.swift similarity index 100% rename from Mammoth/Managers/HashtagManager.swift rename to ios/Mammoth/Managers/HashtagManager.swift diff --git a/Mammoth/Managers/IAPManager.swift b/ios/Mammoth/Managers/IAPManager.swift similarity index 100% rename from Mammoth/Managers/IAPManager.swift rename to ios/Mammoth/Managers/IAPManager.swift diff --git a/Mammoth/Managers/InstanceManager.swift b/ios/Mammoth/Managers/InstanceManager.swift similarity index 100% rename from Mammoth/Managers/InstanceManager.swift rename to ios/Mammoth/Managers/InstanceManager.swift diff --git a/Mammoth/Managers/ListManager.swift b/ios/Mammoth/Managers/ListManager.swift similarity index 100% rename from Mammoth/Managers/ListManager.swift rename to ios/Mammoth/Managers/ListManager.swift diff --git a/Mammoth/Managers/ModerationManager.swift b/ios/Mammoth/Managers/ModerationManager.swift similarity index 100% rename from Mammoth/Managers/ModerationManager.swift rename to ios/Mammoth/Managers/ModerationManager.swift diff --git a/Mammoth/Managers/ProfileCacher.swift b/ios/Mammoth/Managers/ProfileCacher.swift similarity index 100% rename from Mammoth/Managers/ProfileCacher.swift rename to ios/Mammoth/Managers/ProfileCacher.swift diff --git a/Mammoth/Managers/PushNotificationManager.swift b/ios/Mammoth/Managers/PushNotificationManager.swift similarity index 100% rename from Mammoth/Managers/PushNotificationManager.swift rename to ios/Mammoth/Managers/PushNotificationManager.swift diff --git a/Mammoth/Managers/RealtimeManager.swift b/ios/Mammoth/Managers/RealtimeManager.swift similarity index 100% rename from Mammoth/Managers/RealtimeManager.swift rename to ios/Mammoth/Managers/RealtimeManager.swift diff --git a/Mammoth/Managers/StatusCache.swift b/ios/Mammoth/Managers/StatusCache.swift similarity index 100% rename from Mammoth/Managers/StatusCache.swift rename to ios/Mammoth/Managers/StatusCache.swift diff --git a/Mammoth/Managers/ToastNotification.swift b/ios/Mammoth/Managers/ToastNotification.swift similarity index 100% rename from Mammoth/Managers/ToastNotification.swift rename to ios/Mammoth/Managers/ToastNotification.swift diff --git a/Mammoth/Models/ActivityCardModel.swift b/ios/Mammoth/Models/ActivityCardModel.swift similarity index 100% rename from Mammoth/Models/ActivityCardModel.swift rename to ios/Mammoth/Models/ActivityCardModel.swift diff --git a/Mammoth/Models/GlobalStruct.swift b/ios/Mammoth/Models/GlobalStruct.swift similarity index 100% rename from Mammoth/Models/GlobalStruct.swift rename to ios/Mammoth/Models/GlobalStruct.swift diff --git a/Mammoth/Models/InstanceCardModel.swift b/ios/Mammoth/Models/InstanceCardModel.swift similarity index 100% rename from Mammoth/Models/InstanceCardModel.swift rename to ios/Mammoth/Models/InstanceCardModel.swift diff --git a/Mammoth/Models/InstanceData.swift b/ios/Mammoth/Models/InstanceData.swift similarity index 100% rename from Mammoth/Models/InstanceData.swift rename to ios/Mammoth/Models/InstanceData.swift diff --git a/Mammoth/Models/MAMenu.swift b/ios/Mammoth/Models/MAMenu.swift similarity index 100% rename from Mammoth/Models/MAMenu.swift rename to ios/Mammoth/Models/MAMenu.swift diff --git a/Mammoth/Models/NewsFeedListItem.swift b/ios/Mammoth/Models/NewsFeedListItem.swift similarity index 100% rename from Mammoth/Models/NewsFeedListItem.swift rename to ios/Mammoth/Models/NewsFeedListItem.swift diff --git a/Mammoth/Models/OtherStruct.swift b/ios/Mammoth/Models/OtherStruct.swift similarity index 100% rename from Mammoth/Models/OtherStruct.swift rename to ios/Mammoth/Models/OtherStruct.swift diff --git a/Mammoth/Models/PostCardModel.swift b/ios/Mammoth/Models/PostCardModel.swift similarity index 100% rename from Mammoth/Models/PostCardModel.swift rename to ios/Mammoth/Models/PostCardModel.swift diff --git a/Mammoth/Models/PostCardTypes.swift b/ios/Mammoth/Models/PostCardTypes.swift similarity index 100% rename from Mammoth/Models/PostCardTypes.swift rename to ios/Mammoth/Models/PostCardTypes.swift diff --git a/Mammoth/Models/PostLanguages.swift b/ios/Mammoth/Models/PostLanguages.swift similarity index 100% rename from Mammoth/Models/PostLanguages.swift rename to ios/Mammoth/Models/PostLanguages.swift diff --git a/Mammoth/Models/UserCardModel.swift b/ios/Mammoth/Models/UserCardModel.swift similarity index 100% rename from Mammoth/Models/UserCardModel.swift rename to ios/Mammoth/Models/UserCardModel.swift diff --git a/Mammoth/Models/UserCardTypes.swift b/ios/Mammoth/Models/UserCardTypes.swift similarity index 100% rename from Mammoth/Models/UserCardTypes.swift rename to ios/Mammoth/Models/UserCardTypes.swift diff --git a/Mammoth/Models/ViewState.swift b/ios/Mammoth/Models/ViewState.swift similarity index 100% rename from Mammoth/Models/ViewState.swift rename to ios/Mammoth/Models/ViewState.swift diff --git a/Mammoth/SceneDelegate.swift b/ios/Mammoth/SceneDelegate.swift similarity index 99% rename from Mammoth/SceneDelegate.swift rename to ios/Mammoth/SceneDelegate.swift index a8065ce86..103d4a08f 100644 --- a/Mammoth/SceneDelegate.swift +++ b/ios/Mammoth/SceneDelegate.swift @@ -79,7 +79,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { InstanceManager.shared.prepareForUse() RealtimeManager.shared.prepareForUse() IAPManager.shared.prepareForUse() - + Task { try await AccountsManager.shared.prepareForUse() await MainActor.run { diff --git a/Mammoth/Screens/ActivityScreen/ActivityViewController.swift b/ios/Mammoth/Screens/ActivityScreen/ActivityViewController.swift similarity index 100% rename from Mammoth/Screens/ActivityScreen/ActivityViewController.swift rename to ios/Mammoth/Screens/ActivityScreen/ActivityViewController.swift diff --git a/Mammoth/Screens/Authentication/AuthenticationErrors.swift b/ios/Mammoth/Screens/Authentication/AuthenticationErrors.swift similarity index 100% rename from Mammoth/Screens/Authentication/AuthenticationErrors.swift rename to ios/Mammoth/Screens/Authentication/AuthenticationErrors.swift diff --git a/Mammoth/Screens/Authentication/BioMetricAuthenticator.swift b/ios/Mammoth/Screens/Authentication/BioMetricAuthenticator.swift similarity index 100% rename from Mammoth/Screens/Authentication/BioMetricAuthenticator.swift rename to ios/Mammoth/Screens/Authentication/BioMetricAuthenticator.swift diff --git a/Mammoth/Screens/Authentication/BiometricAuthenticationConstants.swift b/ios/Mammoth/Screens/Authentication/BiometricAuthenticationConstants.swift similarity index 100% rename from Mammoth/Screens/Authentication/BiometricAuthenticationConstants.swift rename to ios/Mammoth/Screens/Authentication/BiometricAuthenticationConstants.swift diff --git a/Mammoth/Screens/ChatMessageViewController.swift b/ios/Mammoth/Screens/ChatMessageViewController.swift similarity index 100% rename from Mammoth/Screens/ChatMessageViewController.swift rename to ios/Mammoth/Screens/ChatMessageViewController.swift diff --git a/Mammoth/Screens/Composer/AltTextViewController.swift b/ios/Mammoth/Screens/Composer/AltTextViewController.swift similarity index 100% rename from Mammoth/Screens/Composer/AltTextViewController.swift rename to ios/Mammoth/Screens/Composer/AltTextViewController.swift diff --git a/Mammoth/Screens/Composer/EmojiCell.swift b/ios/Mammoth/Screens/Composer/EmojiCell.swift similarity index 100% rename from Mammoth/Screens/Composer/EmojiCell.swift rename to ios/Mammoth/Screens/Composer/EmojiCell.swift diff --git a/Mammoth/Screens/Composer/EmoticonPickerViewController.swift b/ios/Mammoth/Screens/Composer/EmoticonPickerViewController.swift similarity index 100% rename from Mammoth/Screens/Composer/EmoticonPickerViewController.swift rename to ios/Mammoth/Screens/Composer/EmoticonPickerViewController.swift diff --git a/Mammoth/Screens/Composer/NewPostViewController.swift b/ios/Mammoth/Screens/Composer/NewPostViewController.swift similarity index 100% rename from Mammoth/Screens/Composer/NewPostViewController.swift rename to ios/Mammoth/Screens/Composer/NewPostViewController.swift diff --git a/Mammoth/Screens/Composer/PollViewController.swift b/ios/Mammoth/Screens/Composer/PollViewController.swift similarity index 100% rename from Mammoth/Screens/Composer/PollViewController.swift rename to ios/Mammoth/Screens/Composer/PollViewController.swift diff --git a/Mammoth/Screens/Composer/TranslationComposeViewController.swift b/ios/Mammoth/Screens/Composer/TranslationComposeViewController.swift similarity index 100% rename from Mammoth/Screens/Composer/TranslationComposeViewController.swift rename to ios/Mammoth/Screens/Composer/TranslationComposeViewController.swift diff --git a/Mammoth/Screens/Composer/UndoWidget.swift b/ios/Mammoth/Screens/Composer/UndoWidget.swift similarity index 100% rename from Mammoth/Screens/Composer/UndoWidget.swift rename to ios/Mammoth/Screens/Composer/UndoWidget.swift diff --git a/Mammoth/Screens/DetailScreen/DetailViewController.swift b/ios/Mammoth/Screens/DetailScreen/DetailViewController.swift similarity index 100% rename from Mammoth/Screens/DetailScreen/DetailViewController.swift rename to ios/Mammoth/Screens/DetailScreen/DetailViewController.swift diff --git a/Mammoth/Screens/DetailScreen/DetailViewModel.swift b/ios/Mammoth/Screens/DetailScreen/DetailViewModel.swift similarity index 100% rename from Mammoth/Screens/DetailScreen/DetailViewModel.swift rename to ios/Mammoth/Screens/DetailScreen/DetailViewModel.swift diff --git a/Mammoth/Screens/DetailScreen/Views/ScrollUpIndicator.swift b/ios/Mammoth/Screens/DetailScreen/Views/ScrollUpIndicator.swift similarity index 100% rename from Mammoth/Screens/DetailScreen/Views/ScrollUpIndicator.swift rename to ios/Mammoth/Screens/DetailScreen/Views/ScrollUpIndicator.swift diff --git a/Mammoth/Screens/DiscoveryScreen/ChannelsViewController.swift b/ios/Mammoth/Screens/DiscoveryScreen/ChannelsViewController.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/ChannelsViewController.swift rename to ios/Mammoth/Screens/DiscoveryScreen/ChannelsViewController.swift diff --git a/Mammoth/Screens/DiscoveryScreen/ChannelsViewModel.swift b/ios/Mammoth/Screens/DiscoveryScreen/ChannelsViewModel.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/ChannelsViewModel.swift rename to ios/Mammoth/Screens/DiscoveryScreen/ChannelsViewModel.swift diff --git a/Mammoth/Screens/DiscoveryScreen/DiscoverSuggestionsViewController.swift b/ios/Mammoth/Screens/DiscoveryScreen/DiscoverSuggestionsViewController.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/DiscoverSuggestionsViewController.swift rename to ios/Mammoth/Screens/DiscoveryScreen/DiscoverSuggestionsViewController.swift diff --git a/Mammoth/Screens/DiscoveryScreen/DiscoverSuggestionsViewModel.swift b/ios/Mammoth/Screens/DiscoveryScreen/DiscoverSuggestionsViewModel.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/DiscoverSuggestionsViewModel.swift rename to ios/Mammoth/Screens/DiscoveryScreen/DiscoverSuggestionsViewModel.swift diff --git a/Mammoth/Screens/DiscoveryScreen/DiscoveryViewController.swift b/ios/Mammoth/Screens/DiscoveryScreen/DiscoveryViewController.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/DiscoveryViewController.swift rename to ios/Mammoth/Screens/DiscoveryScreen/DiscoveryViewController.swift diff --git a/Mammoth/Screens/DiscoveryScreen/DiscoveryViewModel.swift b/ios/Mammoth/Screens/DiscoveryScreen/DiscoveryViewModel.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/DiscoveryViewModel.swift rename to ios/Mammoth/Screens/DiscoveryScreen/DiscoveryViewModel.swift diff --git a/Mammoth/Screens/DiscoveryScreen/HashtagsViewController.swift b/ios/Mammoth/Screens/DiscoveryScreen/HashtagsViewController.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/HashtagsViewController.swift rename to ios/Mammoth/Screens/DiscoveryScreen/HashtagsViewController.swift diff --git a/Mammoth/Screens/DiscoveryScreen/HashtagsViewModel.swift b/ios/Mammoth/Screens/DiscoveryScreen/HashtagsViewModel.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/HashtagsViewModel.swift rename to ios/Mammoth/Screens/DiscoveryScreen/HashtagsViewModel.swift diff --git a/Mammoth/Screens/DiscoveryScreen/InstancesViewController.swift b/ios/Mammoth/Screens/DiscoveryScreen/InstancesViewController.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/InstancesViewController.swift rename to ios/Mammoth/Screens/DiscoveryScreen/InstancesViewController.swift diff --git a/Mammoth/Screens/DiscoveryScreen/InstancesViewModel.swift b/ios/Mammoth/Screens/DiscoveryScreen/InstancesViewModel.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/InstancesViewModel.swift rename to ios/Mammoth/Screens/DiscoveryScreen/InstancesViewModel.swift diff --git a/Mammoth/Screens/DiscoveryScreen/PostResultsViewController.swift b/ios/Mammoth/Screens/DiscoveryScreen/PostResultsViewController.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/PostResultsViewController.swift rename to ios/Mammoth/Screens/DiscoveryScreen/PostResultsViewController.swift diff --git a/Mammoth/Screens/DiscoveryScreen/PostResultsViewModel.swift b/ios/Mammoth/Screens/DiscoveryScreen/PostResultsViewModel.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/PostResultsViewModel.swift rename to ios/Mammoth/Screens/DiscoveryScreen/PostResultsViewModel.swift diff --git a/Mammoth/Screens/DiscoveryScreen/SearchHostViewController.swift b/ios/Mammoth/Screens/DiscoveryScreen/SearchHostViewController.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/SearchHostViewController.swift rename to ios/Mammoth/Screens/DiscoveryScreen/SearchHostViewController.swift diff --git a/Mammoth/Screens/DiscoveryScreen/SearchHostViewModel.swift b/ios/Mammoth/Screens/DiscoveryScreen/SearchHostViewModel.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/SearchHostViewModel.swift rename to ios/Mammoth/Screens/DiscoveryScreen/SearchHostViewModel.swift diff --git a/Mammoth/Screens/DiscoveryScreen/Views/SearchHostHeaderView.swift b/ios/Mammoth/Screens/DiscoveryScreen/Views/SearchHostHeaderView.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/Views/SearchHostHeaderView.swift rename to ios/Mammoth/Screens/DiscoveryScreen/Views/SearchHostHeaderView.swift diff --git a/Mammoth/Screens/DiscoveryScreen/Views/SectionHeader.swift b/ios/Mammoth/Screens/DiscoveryScreen/Views/SectionHeader.swift similarity index 100% rename from Mammoth/Screens/DiscoveryScreen/Views/SectionHeader.swift rename to ios/Mammoth/Screens/DiscoveryScreen/Views/SectionHeader.swift diff --git a/Mammoth/Screens/EditFieldsViewController.swift b/ios/Mammoth/Screens/EditFieldsViewController.swift similarity index 100% rename from Mammoth/Screens/EditFieldsViewController.swift rename to ios/Mammoth/Screens/EditFieldsViewController.swift diff --git a/Mammoth/Screens/EditProfileViewController.swift b/ios/Mammoth/Screens/EditProfileViewController.swift similarity index 100% rename from Mammoth/Screens/EditProfileViewController.swift rename to ios/Mammoth/Screens/EditProfileViewController.swift diff --git a/Mammoth/Screens/ExploreViewController.swift b/ios/Mammoth/Screens/ExploreViewController.swift similarity index 100% rename from Mammoth/Screens/ExploreViewController.swift rename to ios/Mammoth/Screens/ExploreViewController.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKActionView.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKActionView.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKActionView.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKActionView.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKAnimator.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKAnimator.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKAnimator.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKAnimator.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKButtons.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKButtons.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKButtons.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKButtons.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKCache.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKCache.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKCache.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKCache.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKCacheable.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKCacheable.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKCacheable.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKCacheable.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKCaptionView.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKCaptionView.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKCaptionView.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKCaptionView.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKDetectingImageView.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKDetectingImageView.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKDetectingImageView.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKDetectingImageView.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKDetectingView.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKDetectingView.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKDetectingView.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKDetectingView.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKIndicatorView.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKIndicatorView.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKIndicatorView.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKIndicatorView.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKLocalPhoto.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKLocalPhoto.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKLocalPhoto.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKLocalPhoto.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKMesurement.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKMesurement.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKMesurement.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKMesurement.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPaginationView.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPaginationView.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPaginationView.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPaginationView.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPagingScrollView.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPagingScrollView.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPagingScrollView.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPagingScrollView.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhoto.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhoto.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhoto.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhoto.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh@2x.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh@2x.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh@2x.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh@2x.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh@3x.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh@3x.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh@3x.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_back_wh@3x.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh@2x.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh@2x.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh@2x.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh@2x.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh@3x.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh@3x.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh@3x.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_close_wh@3x.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh@2x.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh@2x.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh@2x.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh@2x.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh@3x.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh@3x.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh@3x.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_delete_wh@3x.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh@2x.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh@2x.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh@2x.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh@2x.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh@3x.png b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh@3x.png similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh@3x.png rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.bundle/images/btn_common_forward_wh@3x.png diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.h b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.h similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.h rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.h diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowser.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowserDelegate.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowserDelegate.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowserDelegate.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowserDelegate.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowserOptions.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowserOptions.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowserOptions.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKPhotoBrowserOptions.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKToolbar.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKToolbar.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKToolbar.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKToolbar.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/SKZoomingScrollView.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/SKZoomingScrollView.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/SKZoomingScrollView.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/SKZoomingScrollView.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/UIApplication+UIWindow.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/UIApplication+UIWindow.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/UIApplication+UIWindow.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/UIApplication+UIWindow.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIApplication+UIWindow.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIApplication+UIWindow.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/extensions/UIApplication+UIWindow.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIApplication+UIWindow.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIImage+BundledImage.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIImage+BundledImage.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/extensions/UIImage+BundledImage.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIImage+BundledImage.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIImage+Rotation.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIImage+Rotation.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/extensions/UIImage+Rotation.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIImage+Rotation.swift diff --git a/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIView+Radius.swift b/ios/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIView+Radius.swift similarity index 100% rename from Mammoth/Screens/External/SKPhotoBrowser/extensions/UIView+Radius.swift rename to ios/Mammoth/Screens/External/SKPhotoBrowser/extensions/UIView+Radius.swift diff --git a/Mammoth/Screens/External/TOCropViewController/Categories/UIImage+CropRotate.h b/ios/Mammoth/Screens/External/TOCropViewController/Categories/UIImage+CropRotate.h similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Categories/UIImage+CropRotate.h rename to ios/Mammoth/Screens/External/TOCropViewController/Categories/UIImage+CropRotate.h diff --git a/Mammoth/Screens/External/TOCropViewController/Categories/UIImage+CropRotate.m b/ios/Mammoth/Screens/External/TOCropViewController/Categories/UIImage+CropRotate.m similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Categories/UIImage+CropRotate.m rename to ios/Mammoth/Screens/External/TOCropViewController/Categories/UIImage+CropRotate.m diff --git a/Mammoth/Screens/External/TOCropViewController/Constants/TOCropViewConstants.h b/ios/Mammoth/Screens/External/TOCropViewController/Constants/TOCropViewConstants.h similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Constants/TOCropViewConstants.h rename to ios/Mammoth/Screens/External/TOCropViewController/Constants/TOCropViewConstants.h diff --git a/Mammoth/Screens/External/TOCropViewController/CropViewController.swift b/ios/Mammoth/Screens/External/TOCropViewController/CropViewController.swift similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/CropViewController.swift rename to ios/Mammoth/Screens/External/TOCropViewController/CropViewController.swift diff --git a/Mammoth/Screens/External/TOCropViewController/Models/TOActivityCroppedImageProvider.h b/ios/Mammoth/Screens/External/TOCropViewController/Models/TOActivityCroppedImageProvider.h similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Models/TOActivityCroppedImageProvider.h rename to ios/Mammoth/Screens/External/TOCropViewController/Models/TOActivityCroppedImageProvider.h diff --git a/Mammoth/Screens/External/TOCropViewController/Models/TOActivityCroppedImageProvider.m b/ios/Mammoth/Screens/External/TOCropViewController/Models/TOActivityCroppedImageProvider.m similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Models/TOActivityCroppedImageProvider.m rename to ios/Mammoth/Screens/External/TOCropViewController/Models/TOActivityCroppedImageProvider.m diff --git a/Mammoth/Screens/External/TOCropViewController/Models/TOCropViewControllerTransitioning.h b/ios/Mammoth/Screens/External/TOCropViewController/Models/TOCropViewControllerTransitioning.h similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Models/TOCropViewControllerTransitioning.h rename to ios/Mammoth/Screens/External/TOCropViewController/Models/TOCropViewControllerTransitioning.h diff --git a/Mammoth/Screens/External/TOCropViewController/Models/TOCropViewControllerTransitioning.m b/ios/Mammoth/Screens/External/TOCropViewController/Models/TOCropViewControllerTransitioning.m similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Models/TOCropViewControllerTransitioning.m rename to ios/Mammoth/Screens/External/TOCropViewController/Models/TOCropViewControllerTransitioning.m diff --git a/Mammoth/Screens/External/TOCropViewController/Models/TOCroppedImageAttributes.h b/ios/Mammoth/Screens/External/TOCropViewController/Models/TOCroppedImageAttributes.h similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Models/TOCroppedImageAttributes.h rename to ios/Mammoth/Screens/External/TOCropViewController/Models/TOCroppedImageAttributes.h diff --git a/Mammoth/Screens/External/TOCropViewController/Models/TOCroppedImageAttributes.m b/ios/Mammoth/Screens/External/TOCropViewController/Models/TOCroppedImageAttributes.m similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Models/TOCroppedImageAttributes.m rename to ios/Mammoth/Screens/External/TOCropViewController/Models/TOCroppedImageAttributes.m diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/Base.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/Base.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/Base.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/Base.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/ar.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/ar.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/ar.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/ar.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/da-DK.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/da-DK.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/da-DK.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/da-DK.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/de.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/de.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/de.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/de.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/en-GB.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/en-GB.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/en-GB.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/en-GB.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/en.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/en.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/en.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/en.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/es.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/es.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/es.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/es.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/fa-IR.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/fa-IR.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/fa-IR.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/fa-IR.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/fa.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/fa.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/fa.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/fa.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/fi.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/fi.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/fi.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/fi.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/fr.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/fr.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/fr.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/fr.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/hi.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/hi.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/hi.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/hi.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/hu.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/hu.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/hu.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/hu.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/id.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/id.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/id.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/id.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/it.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/it.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/it.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/it.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/ja.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/ja.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/ja.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/ja.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/ko.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/ko.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/ko.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/ko.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/ms.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/ms.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/ms.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/ms.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/nl.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/nl.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/nl.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/nl.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/pl.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/pl.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/pl.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/pl.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/pt-BR.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/pt-BR.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/pt-BR.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/pt-BR.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/pt.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/pt.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/pt.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/pt.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/ro.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/ro.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/ro.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/ro.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/ru.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/ru.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/ru.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/ru.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/tr.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/tr.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/tr.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/tr.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/vi.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/vi.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/vi.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/vi.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/zh-Hans.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/zh-Hans.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/zh-Hans.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/zh-Hans.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/Resources/zh-Hant.lproj/TOCropViewControllerLocalizable.strings b/ios/Mammoth/Screens/External/TOCropViewController/Resources/zh-Hant.lproj/TOCropViewControllerLocalizable.strings similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Resources/zh-Hant.lproj/TOCropViewControllerLocalizable.strings rename to ios/Mammoth/Screens/External/TOCropViewController/Resources/zh-Hant.lproj/TOCropViewControllerLocalizable.strings diff --git a/Mammoth/Screens/External/TOCropViewController/TOCropViewController.h b/ios/Mammoth/Screens/External/TOCropViewController/TOCropViewController.h similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/TOCropViewController.h rename to ios/Mammoth/Screens/External/TOCropViewController/TOCropViewController.h diff --git a/Mammoth/Screens/External/TOCropViewController/TOCropViewController.m b/ios/Mammoth/Screens/External/TOCropViewController/TOCropViewController.m similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/TOCropViewController.m rename to ios/Mammoth/Screens/External/TOCropViewController/TOCropViewController.m diff --git a/Mammoth/Screens/External/TOCropViewController/Views/TOCropOverlayView.h b/ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropOverlayView.h similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Views/TOCropOverlayView.h rename to ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropOverlayView.h diff --git a/Mammoth/Screens/External/TOCropViewController/Views/TOCropOverlayView.m b/ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropOverlayView.m similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Views/TOCropOverlayView.m rename to ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropOverlayView.m diff --git a/Mammoth/Screens/External/TOCropViewController/Views/TOCropScrollView.h b/ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropScrollView.h similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Views/TOCropScrollView.h rename to ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropScrollView.h diff --git a/Mammoth/Screens/External/TOCropViewController/Views/TOCropScrollView.m b/ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropScrollView.m similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Views/TOCropScrollView.m rename to ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropScrollView.m diff --git a/Mammoth/Screens/External/TOCropViewController/Views/TOCropToolbar.h b/ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropToolbar.h similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Views/TOCropToolbar.h rename to ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropToolbar.h diff --git a/Mammoth/Screens/External/TOCropViewController/Views/TOCropToolbar.m b/ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropToolbar.m similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Views/TOCropToolbar.m rename to ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropToolbar.m diff --git a/Mammoth/Screens/External/TOCropViewController/Views/TOCropView.h b/ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropView.h similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Views/TOCropView.h rename to ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropView.h diff --git a/Mammoth/Screens/External/TOCropViewController/Views/TOCropView.m b/ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropView.m similarity index 100% rename from Mammoth/Screens/External/TOCropViewController/Views/TOCropView.m rename to ios/Mammoth/Screens/External/TOCropViewController/Views/TOCropView.m diff --git a/Mammoth/Screens/FilterDetailsViewController.swift b/ios/Mammoth/Screens/FilterDetailsViewController.swift similarity index 100% rename from Mammoth/Screens/FilterDetailsViewController.swift rename to ios/Mammoth/Screens/FilterDetailsViewController.swift diff --git a/Mammoth/Screens/FiltersViewController.swift b/ios/Mammoth/Screens/FiltersViewController.swift similarity index 100% rename from Mammoth/Screens/FiltersViewController.swift rename to ios/Mammoth/Screens/FiltersViewController.swift diff --git a/Mammoth/Screens/ForYouCustomizationScreen/ForYouChannelCell.swift b/ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouChannelCell.swift similarity index 100% rename from Mammoth/Screens/ForYouCustomizationScreen/ForYouChannelCell.swift rename to ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouChannelCell.swift diff --git a/Mammoth/Screens/ForYouCustomizationScreen/ForYouChannelCell.xib b/ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouChannelCell.xib similarity index 100% rename from Mammoth/Screens/ForYouCustomizationScreen/ForYouChannelCell.xib rename to ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouChannelCell.xib diff --git a/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationCell.swift b/ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationCell.swift similarity index 100% rename from Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationCell.swift rename to ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationCell.swift diff --git a/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationCell.xib b/ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationCell.xib similarity index 100% rename from Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationCell.xib rename to ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationCell.xib diff --git a/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationHeader.swift b/ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationHeader.swift similarity index 100% rename from Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationHeader.swift rename to ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationHeader.swift diff --git a/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationViewController.swift b/ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationViewController.swift similarity index 100% rename from Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationViewController.swift rename to ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationViewController.swift diff --git a/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationViewModel.swift b/ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationViewModel.swift similarity index 100% rename from Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationViewModel.swift rename to ios/Mammoth/Screens/ForYouCustomizationScreen/ForYouCustomizationViewModel.swift diff --git a/Mammoth/Screens/GalleryViewController.swift b/ios/Mammoth/Screens/GalleryViewController.swift similarity index 100% rename from Mammoth/Screens/GalleryViewController.swift rename to ios/Mammoth/Screens/GalleryViewController.swift diff --git a/Mammoth/Screens/HomeScreen/FeedEditorViewController.swift b/ios/Mammoth/Screens/HomeScreen/FeedEditorViewController.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/FeedEditorViewController.swift rename to ios/Mammoth/Screens/HomeScreen/FeedEditorViewController.swift diff --git a/Mammoth/Screens/HomeScreen/FeedEditorViewModel.swift b/ios/Mammoth/Screens/HomeScreen/FeedEditorViewModel.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/FeedEditorViewModel.swift rename to ios/Mammoth/Screens/HomeScreen/FeedEditorViewModel.swift diff --git a/Mammoth/Screens/HomeScreen/HomeViewController.swift b/ios/Mammoth/Screens/HomeScreen/HomeViewController.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/HomeViewController.swift rename to ios/Mammoth/Screens/HomeScreen/HomeViewController.swift diff --git a/Mammoth/Screens/HomeScreen/NewsFeedViewController.swift b/ios/Mammoth/Screens/HomeScreen/NewsFeedViewController.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/NewsFeedViewController.swift rename to ios/Mammoth/Screens/HomeScreen/NewsFeedViewController.swift diff --git a/Mammoth/Screens/HomeScreen/NewsFeedViewModel+Caching.swift b/ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel+Caching.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/NewsFeedViewModel+Caching.swift rename to ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel+Caching.swift diff --git a/Mammoth/Screens/HomeScreen/NewsFeedViewModel+DataSource.swift b/ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel+DataSource.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/NewsFeedViewModel+DataSource.swift rename to ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel+DataSource.swift diff --git a/Mammoth/Screens/HomeScreen/NewsFeedViewModel+ScrollPositions.swift b/ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel+ScrollPositions.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/NewsFeedViewModel+ScrollPositions.swift rename to ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel+ScrollPositions.swift diff --git a/Mammoth/Screens/HomeScreen/NewsFeedViewModel+Services.swift b/ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel+Services.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/NewsFeedViewModel+Services.swift rename to ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel+Services.swift diff --git a/Mammoth/Screens/HomeScreen/NewsFeedViewModel+UnreadCount.swift b/ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel+UnreadCount.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/NewsFeedViewModel+UnreadCount.swift rename to ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel+UnreadCount.swift diff --git a/Mammoth/Screens/HomeScreen/NewsFeedViewModel.swift b/ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/NewsFeedViewModel.swift rename to ios/Mammoth/Screens/HomeScreen/NewsFeedViewModel.swift diff --git a/Mammoth/Screens/HomeScreen/Views/Carousel/Carousel.swift b/ios/Mammoth/Screens/HomeScreen/Views/Carousel/Carousel.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/Views/Carousel/Carousel.swift rename to ios/Mammoth/Screens/HomeScreen/Views/Carousel/Carousel.swift diff --git a/Mammoth/Screens/HomeScreen/Views/Carousel/CarouselCollectionView.swift b/ios/Mammoth/Screens/HomeScreen/Views/Carousel/CarouselCollectionView.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/Views/Carousel/CarouselCollectionView.swift rename to ios/Mammoth/Screens/HomeScreen/Views/Carousel/CarouselCollectionView.swift diff --git a/Mammoth/Screens/HomeScreen/Views/Carousel/CarouselFlowLayout.swift b/ios/Mammoth/Screens/HomeScreen/Views/Carousel/CarouselFlowLayout.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/Views/Carousel/CarouselFlowLayout.swift rename to ios/Mammoth/Screens/HomeScreen/Views/Carousel/CarouselFlowLayout.swift diff --git a/Mammoth/Screens/HomeScreen/Views/Carousel/CarouselItem.swift b/ios/Mammoth/Screens/HomeScreen/Views/Carousel/CarouselItem.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/Views/Carousel/CarouselItem.swift rename to ios/Mammoth/Screens/HomeScreen/Views/Carousel/CarouselItem.swift diff --git a/Mammoth/Screens/HomeScreen/Views/LatestPill.swift b/ios/Mammoth/Screens/HomeScreen/Views/LatestPill.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/Views/LatestPill.swift rename to ios/Mammoth/Screens/HomeScreen/Views/LatestPill.swift diff --git a/Mammoth/Screens/HomeScreen/Views/UnreadIndicator.swift b/ios/Mammoth/Screens/HomeScreen/Views/UnreadIndicator.swift similarity index 100% rename from Mammoth/Screens/HomeScreen/Views/UnreadIndicator.swift rename to ios/Mammoth/Screens/HomeScreen/Views/UnreadIndicator.swift diff --git a/Mammoth/Screens/LikedByMutedBlockedViewController.swift b/ios/Mammoth/Screens/LikedByMutedBlockedViewController.swift similarity index 100% rename from Mammoth/Screens/LikedByMutedBlockedViewController.swift rename to ios/Mammoth/Screens/LikedByMutedBlockedViewController.swift diff --git a/Mammoth/Screens/LiveTableViewController.swift b/ios/Mammoth/Screens/LiveTableViewController.swift similarity index 100% rename from Mammoth/Screens/LiveTableViewController.swift rename to ios/Mammoth/Screens/LiveTableViewController.swift diff --git a/Mammoth/Screens/MentionsScreen/MentionsViewController.swift b/ios/Mammoth/Screens/MentionsScreen/MentionsViewController.swift similarity index 100% rename from Mammoth/Screens/MentionsScreen/MentionsViewController.swift rename to ios/Mammoth/Screens/MentionsScreen/MentionsViewController.swift diff --git a/Mammoth/Screens/ProfileDirectoryViewController.swift b/ios/Mammoth/Screens/ProfileDirectoryViewController.swift similarity index 100% rename from Mammoth/Screens/ProfileDirectoryViewController.swift rename to ios/Mammoth/Screens/ProfileDirectoryViewController.swift diff --git a/Mammoth/Screens/ProfileFieldsViewController.swift b/ios/Mammoth/Screens/ProfileFieldsViewController.swift similarity index 100% rename from Mammoth/Screens/ProfileFieldsViewController.swift rename to ios/Mammoth/Screens/ProfileFieldsViewController.swift diff --git a/Mammoth/Screens/ProfileNoteViewController.swift b/ios/Mammoth/Screens/ProfileNoteViewController.swift similarity index 100% rename from Mammoth/Screens/ProfileNoteViewController.swift rename to ios/Mammoth/Screens/ProfileNoteViewController.swift diff --git a/Mammoth/Screens/ProfileScreen/ProfileViewController.swift b/ios/Mammoth/Screens/ProfileScreen/ProfileViewController.swift similarity index 100% rename from Mammoth/Screens/ProfileScreen/ProfileViewController.swift rename to ios/Mammoth/Screens/ProfileScreen/ProfileViewController.swift diff --git a/Mammoth/Screens/ProfileScreen/ProfileViewModel.swift b/ios/Mammoth/Screens/ProfileScreen/ProfileViewModel.swift similarity index 100% rename from Mammoth/Screens/ProfileScreen/ProfileViewModel.swift rename to ios/Mammoth/Screens/ProfileScreen/ProfileViewModel.swift diff --git a/Mammoth/Screens/ProfileScreen/Views/ProfileBackButton.swift b/ios/Mammoth/Screens/ProfileScreen/Views/ProfileBackButton.swift similarity index 100% rename from Mammoth/Screens/ProfileScreen/Views/ProfileBackButton.swift rename to ios/Mammoth/Screens/ProfileScreen/Views/ProfileBackButton.swift diff --git a/Mammoth/Screens/ProfileScreen/Views/ProfileCoverImage.swift b/ios/Mammoth/Screens/ProfileScreen/Views/ProfileCoverImage.swift similarity index 100% rename from Mammoth/Screens/ProfileScreen/Views/ProfileCoverImage.swift rename to ios/Mammoth/Screens/ProfileScreen/Views/ProfileCoverImage.swift diff --git a/Mammoth/Screens/ProfileScreen/Views/ProfileHeader.swift b/ios/Mammoth/Screens/ProfileScreen/Views/ProfileHeader.swift similarity index 100% rename from Mammoth/Screens/ProfileScreen/Views/ProfileHeader.swift rename to ios/Mammoth/Screens/ProfileScreen/Views/ProfileHeader.swift diff --git a/Mammoth/Screens/ProfileScreen/Views/ProfileNavigationTitle.swift b/ios/Mammoth/Screens/ProfileScreen/Views/ProfileNavigationTitle.swift similarity index 100% rename from Mammoth/Screens/ProfileScreen/Views/ProfileNavigationTitle.swift rename to ios/Mammoth/Screens/ProfileScreen/Views/ProfileNavigationTitle.swift diff --git a/Mammoth/Screens/ProfileScreen/Views/ProfileSectionHeader.swift b/ios/Mammoth/Screens/ProfileScreen/Views/ProfileSectionHeader.swift similarity index 100% rename from Mammoth/Screens/ProfileScreen/Views/ProfileSectionHeader.swift rename to ios/Mammoth/Screens/ProfileScreen/Views/ProfileSectionHeader.swift diff --git a/Mammoth/Screens/ProfileScreen/Views/ProfileViewSettingsButton.swift b/ios/Mammoth/Screens/ProfileScreen/Views/ProfileViewSettingsButton.swift similarity index 100% rename from Mammoth/Screens/ProfileScreen/Views/ProfileViewSettingsButton.swift rename to ios/Mammoth/Screens/ProfileScreen/Views/ProfileViewSettingsButton.swift diff --git a/Mammoth/Screens/Registration/Bluesky/BlueskySignInViewController.swift b/ios/Mammoth/Screens/Registration/Bluesky/BlueskySignInViewController.swift similarity index 100% rename from Mammoth/Screens/Registration/Bluesky/BlueskySignInViewController.swift rename to ios/Mammoth/Screens/Registration/Bluesky/BlueskySignInViewController.swift diff --git a/Mammoth/Screens/Registration/Bluesky/RoundedTextField.swift b/ios/Mammoth/Screens/Registration/Bluesky/RoundedTextField.swift similarity index 100% rename from Mammoth/Screens/Registration/Bluesky/RoundedTextField.swift rename to ios/Mammoth/Screens/Registration/Bluesky/RoundedTextField.swift diff --git a/Mammoth/Screens/Registration/Bluesky/SignInPasswordVC.swift b/ios/Mammoth/Screens/Registration/Bluesky/SignInPasswordVC.swift similarity index 100% rename from Mammoth/Screens/Registration/Bluesky/SignInPasswordVC.swift rename to ios/Mammoth/Screens/Registration/Bluesky/SignInPasswordVC.swift diff --git a/Mammoth/Screens/Registration/Bluesky/SignInUsernameVC.swift b/ios/Mammoth/Screens/Registration/Bluesky/SignInUsernameVC.swift similarity index 100% rename from Mammoth/Screens/Registration/Bluesky/SignInUsernameVC.swift rename to ios/Mammoth/Screens/Registration/Bluesky/SignInUsernameVC.swift diff --git a/Mammoth/Screens/Registration/EmailVerificationView.xib b/ios/Mammoth/Screens/Registration/EmailVerificationView.xib similarity index 100% rename from Mammoth/Screens/Registration/EmailVerificationView.xib rename to ios/Mammoth/Screens/Registration/EmailVerificationView.xib diff --git a/Mammoth/Screens/Registration/EmailVerificationViewController.swift b/ios/Mammoth/Screens/Registration/EmailVerificationViewController.swift similarity index 100% rename from Mammoth/Screens/Registration/EmailVerificationViewController.swift rename to ios/Mammoth/Screens/Registration/EmailVerificationViewController.swift diff --git a/Mammoth/Screens/Registration/IntroViewController.swift b/ios/Mammoth/Screens/Registration/IntroViewController.swift similarity index 100% rename from Mammoth/Screens/Registration/IntroViewController.swift rename to ios/Mammoth/Screens/Registration/IntroViewController.swift diff --git a/Mammoth/Screens/Registration/IntroViewController.xib b/ios/Mammoth/Screens/Registration/IntroViewController.xib similarity index 100% rename from Mammoth/Screens/Registration/IntroViewController.xib rename to ios/Mammoth/Screens/Registration/IntroViewController.xib diff --git a/Mammoth/Screens/Registration/OtherInstances.json b/ios/Mammoth/Screens/Registration/OtherInstances.json similarity index 100% rename from Mammoth/Screens/Registration/OtherInstances.json rename to ios/Mammoth/Screens/Registration/OtherInstances.json diff --git a/Mammoth/Screens/Registration/SetupAccountsViewController.swift b/ios/Mammoth/Screens/Registration/SetupAccountsViewController.swift similarity index 100% rename from Mammoth/Screens/Registration/SetupAccountsViewController.swift rename to ios/Mammoth/Screens/Registration/SetupAccountsViewController.swift diff --git a/Mammoth/Screens/Registration/SetupAccountsViewModel.swift b/ios/Mammoth/Screens/Registration/SetupAccountsViewModel.swift similarity index 100% rename from Mammoth/Screens/Registration/SetupAccountsViewModel.swift rename to ios/Mammoth/Screens/Registration/SetupAccountsViewModel.swift diff --git a/Mammoth/Screens/Registration/SetupChannelsViewController.swift b/ios/Mammoth/Screens/Registration/SetupChannelsViewController.swift similarity index 100% rename from Mammoth/Screens/Registration/SetupChannelsViewController.swift rename to ios/Mammoth/Screens/Registration/SetupChannelsViewController.swift diff --git a/Mammoth/Screens/Registration/SetupChannelsViewModel.swift b/ios/Mammoth/Screens/Registration/SetupChannelsViewModel.swift similarity index 100% rename from Mammoth/Screens/Registration/SetupChannelsViewModel.swift rename to ios/Mammoth/Screens/Registration/SetupChannelsViewModel.swift diff --git a/Mammoth/Screens/Registration/SetupInstructionsCell.swift b/ios/Mammoth/Screens/Registration/SetupInstructionsCell.swift similarity index 100% rename from Mammoth/Screens/Registration/SetupInstructionsCell.swift rename to ios/Mammoth/Screens/Registration/SetupInstructionsCell.swift diff --git a/Mammoth/Screens/Registration/SetupInstructionsCell.xib b/ios/Mammoth/Screens/Registration/SetupInstructionsCell.xib similarity index 100% rename from Mammoth/Screens/Registration/SetupInstructionsCell.xib rename to ios/Mammoth/Screens/Registration/SetupInstructionsCell.xib diff --git a/Mammoth/Screens/Registration/SetupMammothViewController.swift b/ios/Mammoth/Screens/Registration/SetupMammothViewController.swift similarity index 100% rename from Mammoth/Screens/Registration/SetupMammothViewController.swift rename to ios/Mammoth/Screens/Registration/SetupMammothViewController.swift diff --git a/Mammoth/Screens/Registration/SetupMammothViewModel.swift b/ios/Mammoth/Screens/Registration/SetupMammothViewModel.swift similarity index 100% rename from Mammoth/Screens/Registration/SetupMammothViewModel.swift rename to ios/Mammoth/Screens/Registration/SetupMammothViewModel.swift diff --git a/Mammoth/Screens/Registration/SetupProfile.xib b/ios/Mammoth/Screens/Registration/SetupProfile.xib similarity index 100% rename from Mammoth/Screens/Registration/SetupProfile.xib rename to ios/Mammoth/Screens/Registration/SetupProfile.xib diff --git a/Mammoth/Screens/Registration/SetupProfileController.swift b/ios/Mammoth/Screens/Registration/SetupProfileController.swift similarity index 100% rename from Mammoth/Screens/Registration/SetupProfileController.swift rename to ios/Mammoth/Screens/Registration/SetupProfileController.swift diff --git a/Mammoth/Screens/Registration/SignInViewController.swift b/ios/Mammoth/Screens/Registration/SignInViewController.swift similarity index 100% rename from Mammoth/Screens/Registration/SignInViewController.swift rename to ios/Mammoth/Screens/Registration/SignInViewController.swift diff --git a/Mammoth/Screens/Registration/SignUpView.xib b/ios/Mammoth/Screens/Registration/SignUpView.xib similarity index 100% rename from Mammoth/Screens/Registration/SignUpView.xib rename to ios/Mammoth/Screens/Registration/SignUpView.xib diff --git a/Mammoth/Screens/Registration/SignUpViewController.swift b/ios/Mammoth/Screens/Registration/SignUpViewController.swift similarity index 100% rename from Mammoth/Screens/Registration/SignUpViewController.swift rename to ios/Mammoth/Screens/Registration/SignUpViewController.swift diff --git a/Mammoth/Screens/Registration/moth.social.Instance.json b/ios/Mammoth/Screens/Registration/moth.social.Instance.json similarity index 100% rename from Mammoth/Screens/Registration/moth.social.Instance.json rename to ios/Mammoth/Screens/Registration/moth.social.Instance.json diff --git a/Mammoth/Screens/Registration/staging.moth.social.Instance.json b/ios/Mammoth/Screens/Registration/staging.moth.social.Instance.json similarity index 100% rename from Mammoth/Screens/Registration/staging.moth.social.Instance.json rename to ios/Mammoth/Screens/Registration/staging.moth.social.Instance.json diff --git a/Mammoth/Screens/ScheduledPostsViewController.swift b/ios/Mammoth/Screens/ScheduledPostsViewController.swift similarity index 100% rename from Mammoth/Screens/ScheduledPostsViewController.swift rename to ios/Mammoth/Screens/ScheduledPostsViewController.swift diff --git a/Mammoth/Screens/Settings/About.rtf b/ios/Mammoth/Screens/Settings/About.rtf similarity index 100% rename from Mammoth/Screens/Settings/About.rtf rename to ios/Mammoth/Screens/Settings/About.rtf diff --git a/Mammoth/Screens/Settings/AccountsSettingsViewController.swift b/ios/Mammoth/Screens/Settings/AccountsSettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/AccountsSettingsViewController.swift rename to ios/Mammoth/Screens/Settings/AccountsSettingsViewController.swift diff --git a/Mammoth/Screens/Settings/AlertsSettingsViewController.swift b/ios/Mammoth/Screens/Settings/AlertsSettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/AlertsSettingsViewController.swift rename to ios/Mammoth/Screens/Settings/AlertsSettingsViewController.swift diff --git a/Mammoth/Screens/Settings/AppearanceSettingsViewController.swift b/ios/Mammoth/Screens/Settings/AppearanceSettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/AppearanceSettingsViewController.swift rename to ios/Mammoth/Screens/Settings/AppearanceSettingsViewController.swift diff --git a/Mammoth/Screens/Settings/ComposerSettingsViewController.swift b/ios/Mammoth/Screens/Settings/ComposerSettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/ComposerSettingsViewController.swift rename to ios/Mammoth/Screens/Settings/ComposerSettingsViewController.swift diff --git a/Mammoth/Screens/Settings/ContactSettingsViewController.swift b/ios/Mammoth/Screens/Settings/ContactSettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/ContactSettingsViewController.swift rename to ios/Mammoth/Screens/Settings/ContactSettingsViewController.swift diff --git a/Mammoth/Screens/Settings/HapticsSettingsViewController.swift b/ios/Mammoth/Screens/Settings/HapticsSettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/HapticsSettingsViewController.swift rename to ios/Mammoth/Screens/Settings/HapticsSettingsViewController.swift diff --git a/Mammoth/Screens/Settings/IconSettingsViewController.swift b/ios/Mammoth/Screens/Settings/IconSettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/IconSettingsViewController.swift rename to ios/Mammoth/Screens/Settings/IconSettingsViewController.swift diff --git a/Mammoth/Screens/Settings/NotificationSettingsViewController.swift b/ios/Mammoth/Screens/Settings/NotificationSettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/NotificationSettingsViewController.swift rename to ios/Mammoth/Screens/Settings/NotificationSettingsViewController.swift diff --git a/Mammoth/Screens/Settings/SettingsViewController.swift b/ios/Mammoth/Screens/Settings/SettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/SettingsViewController.swift rename to ios/Mammoth/Screens/Settings/SettingsViewController.swift diff --git a/Mammoth/Screens/Settings/SiriSettingsViewController.swift b/ios/Mammoth/Screens/Settings/SiriSettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/SiriSettingsViewController.swift rename to ios/Mammoth/Screens/Settings/SiriSettingsViewController.swift diff --git a/Mammoth/Screens/Settings/TextFileViewController.swift b/ios/Mammoth/Screens/Settings/TextFileViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/TextFileViewController.swift rename to ios/Mammoth/Screens/Settings/TextFileViewController.swift diff --git a/Mammoth/Screens/Settings/TextShareViewController.swift b/ios/Mammoth/Screens/Settings/TextShareViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/TextShareViewController.swift rename to ios/Mammoth/Screens/Settings/TextShareViewController.swift diff --git a/Mammoth/Screens/Settings/ThemeContrastTrait.swift b/ios/Mammoth/Screens/Settings/ThemeContrastTrait.swift similarity index 100% rename from Mammoth/Screens/Settings/ThemeContrastTrait.swift rename to ios/Mammoth/Screens/Settings/ThemeContrastTrait.swift diff --git a/Mammoth/Screens/Settings/TranslationSettingsViewController.swift b/ios/Mammoth/Screens/Settings/TranslationSettingsViewController.swift similarity index 100% rename from Mammoth/Screens/Settings/TranslationSettingsViewController.swift rename to ios/Mammoth/Screens/Settings/TranslationSettingsViewController.swift diff --git a/Mammoth/Screens/TabBarViewController.swift b/ios/Mammoth/Screens/TabBarViewController.swift similarity index 100% rename from Mammoth/Screens/TabBarViewController.swift rename to ios/Mammoth/Screens/TabBarViewController.swift diff --git a/Mammoth/Screens/TutorialOverlay/TutorialOverlay.swift b/ios/Mammoth/Screens/TutorialOverlay/TutorialOverlay.swift similarity index 100% rename from Mammoth/Screens/TutorialOverlay/TutorialOverlay.swift rename to ios/Mammoth/Screens/TutorialOverlay/TutorialOverlay.swift diff --git a/Mammoth/Screens/TutorialOverlay/Views/TextBubbleView.swift b/ios/Mammoth/Screens/TutorialOverlay/Views/TextBubbleView.swift similarity index 100% rename from Mammoth/Screens/TutorialOverlay/Views/TextBubbleView.swift rename to ios/Mammoth/Screens/TutorialOverlay/Views/TextBubbleView.swift diff --git a/Mammoth/Screens/UserListScreen/UserListViewController.swift b/ios/Mammoth/Screens/UserListScreen/UserListViewController.swift similarity index 100% rename from Mammoth/Screens/UserListScreen/UserListViewController.swift rename to ios/Mammoth/Screens/UserListScreen/UserListViewController.swift diff --git a/Mammoth/Screens/UserListScreen/UserListViewModel.swift b/ios/Mammoth/Screens/UserListScreen/UserListViewModel.swift similarity index 100% rename from Mammoth/Screens/UserListScreen/UserListViewModel.swift rename to ios/Mammoth/Screens/UserListScreen/UserListViewModel.swift diff --git a/Mammoth/Screens/WebViewController.swift b/ios/Mammoth/Screens/WebViewController.swift similarity index 100% rename from Mammoth/Screens/WebViewController.swift rename to ios/Mammoth/Screens/WebViewController.swift diff --git a/Mammoth/Screens/iPad/AuxColumnViewController.swift b/ios/Mammoth/Screens/iPad/AuxColumnViewController.swift similarity index 100% rename from Mammoth/Screens/iPad/AuxColumnViewController.swift rename to ios/Mammoth/Screens/iPad/AuxColumnViewController.swift diff --git a/Mammoth/Screens/iPad/AuxFeedViewController.swift b/ios/Mammoth/Screens/iPad/AuxFeedViewController.swift similarity index 100% rename from Mammoth/Screens/iPad/AuxFeedViewController.swift rename to ios/Mammoth/Screens/iPad/AuxFeedViewController.swift diff --git a/Mammoth/Screens/iPad/ColumnViewController.swift b/ios/Mammoth/Screens/iPad/ColumnViewController.swift similarity index 100% rename from Mammoth/Screens/iPad/ColumnViewController.swift rename to ios/Mammoth/Screens/iPad/ColumnViewController.swift diff --git a/Mammoth/Screens/iPad/SidebarViewController.swift b/ios/Mammoth/Screens/iPad/SidebarViewController.swift similarity index 100% rename from Mammoth/Screens/iPad/SidebarViewController.swift rename to ios/Mammoth/Screens/iPad/SidebarViewController.swift diff --git a/Mammoth/Screens/iPad/SingleColumnViewController.swift b/ios/Mammoth/Screens/iPad/SingleColumnViewController.swift similarity index 100% rename from Mammoth/Screens/iPad/SingleColumnViewController.swift rename to ios/Mammoth/Screens/iPad/SingleColumnViewController.swift diff --git a/Mammoth/Services/Backend/AccountService.swift b/ios/Mammoth/Services/Backend/AccountService.swift similarity index 100% rename from Mammoth/Services/Backend/AccountService.swift rename to ios/Mammoth/Services/Backend/AccountService.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPI+Requests.swift b/ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPI+Requests.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPI+Requests.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPI+Requests.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPI.swift b/ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPI.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPI.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPI.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPITokenManager.swift b/ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPITokenManager.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPITokenManager.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/BlueskyAPITokenManager.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Actor.swift b/ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Actor.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Actor.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Actor.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Feed.swift b/ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Feed.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Feed.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Feed.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Graph.swift b/ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Graph.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Graph.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Graph.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Identity.swift b/ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Identity.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Identity.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Identity.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Notification.swift b/ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Notification.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Notification.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Notification.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Repo.swift b/ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Repo.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Repo.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Repo.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Server.swift b/ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Server.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Server.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/BlueskyAPI/Endpoints/BlueskyAPI+Server.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Models/Actor.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Models/Actor.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Models/Actor.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Models/Actor.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Models/Embed.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Models/Embed.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Models/Embed.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Models/Embed.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Models/Feed.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Models/Feed.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Models/Feed.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Models/Feed.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Models/Graph.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Models/Graph.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Models/Graph.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Models/Graph.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Models/Model.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Models/Model.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Models/Model.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Models/Model.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Models/ModelNotification.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Models/ModelNotification.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Models/ModelNotification.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Models/ModelNotification.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Models/Repo.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Models/Repo.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Models/Repo.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Models/Repo.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Models/RichText.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Models/RichText.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Models/RichText.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Models/RichText.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Models/Union.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Models/Union.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Models/Union.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Models/Union.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Networking/HTTP.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Networking/HTTP.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Networking/HTTP.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Networking/HTTP.swift diff --git a/Mammoth/Services/Backend/BlueskyKit/Timeline/BlueskyPostViewModel.swift b/ios/Mammoth/Services/Backend/BlueskyKit/Timeline/BlueskyPostViewModel.swift similarity index 100% rename from Mammoth/Services/Backend/BlueskyKit/Timeline/BlueskyPostViewModel.swift rename to ios/Mammoth/Services/Backend/BlueskyKit/Timeline/BlueskyPostViewModel.swift diff --git a/Mammoth/Services/Backend/ChannelService.swift b/ios/Mammoth/Services/Backend/ChannelService.swift similarity index 100% rename from Mammoth/Services/Backend/ChannelService.swift rename to ios/Mammoth/Services/Backend/ChannelService.swift diff --git a/Mammoth/Services/Backend/ClientService.swift b/ios/Mammoth/Services/Backend/ClientService.swift similarity index 100% rename from Mammoth/Services/Backend/ClientService.swift rename to ios/Mammoth/Services/Backend/ClientService.swift diff --git a/Mammoth/Services/Backend/FeaturesService.swift b/ios/Mammoth/Services/Backend/FeaturesService.swift similarity index 100% rename from Mammoth/Services/Backend/FeaturesService.swift rename to ios/Mammoth/Services/Backend/FeaturesService.swift diff --git a/Mammoth/Services/Backend/InstanceService.swift b/ios/Mammoth/Services/Backend/InstanceService.swift similarity index 100% rename from Mammoth/Services/Backend/InstanceService.swift rename to ios/Mammoth/Services/Backend/InstanceService.swift diff --git a/Mammoth/Services/Backend/ListService.swift b/ios/Mammoth/Services/Backend/ListService.swift similarity index 100% rename from Mammoth/Services/Backend/ListService.swift rename to ios/Mammoth/Services/Backend/ListService.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Client.swift b/ios/Mammoth/Services/Backend/MastodonKit/Client.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Client.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Client.swift diff --git a/Mammoth/Services/Backend/MastodonKit/ClientError.swift b/ios/Mammoth/Services/Backend/MastodonKit/ClientError.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/ClientError.swift rename to ios/Mammoth/Services/Backend/MastodonKit/ClientError.swift diff --git a/Mammoth/Services/Backend/MastodonKit/ClientType.swift b/ios/Mammoth/Services/Backend/MastodonKit/ClientType.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/ClientType.swift rename to ios/Mammoth/Services/Backend/MastodonKit/ClientType.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Foundation/CharacterSet.swift b/ios/Mammoth/Services/Backend/MastodonKit/Foundation/CharacterSet.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Foundation/CharacterSet.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Foundation/CharacterSet.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Foundation/Data.swift b/ios/Mammoth/Services/Backend/MastodonKit/Foundation/Data.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Foundation/Data.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Foundation/Data.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Foundation/DateFormatter.swift b/ios/Mammoth/Services/Backend/MastodonKit/Foundation/DateFormatter.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Foundation/DateFormatter.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Foundation/DateFormatter.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Foundation/Decodable.swift b/ios/Mammoth/Services/Backend/MastodonKit/Foundation/Decodable.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Foundation/Decodable.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Foundation/Decodable.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Foundation/HTTPURLResponse.swift b/ios/Mammoth/Services/Backend/MastodonKit/Foundation/HTTPURLResponse.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Foundation/HTTPURLResponse.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Foundation/HTTPURLResponse.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Foundation/String.swift b/ios/Mammoth/Services/Backend/MastodonKit/Foundation/String.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Foundation/String.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Foundation/String.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Foundation/URLComponents.swift b/ios/Mammoth/Services/Backend/MastodonKit/Foundation/URLComponents.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Foundation/URLComponents.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Foundation/URLComponents.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Foundation/URLRequest.swift b/ios/Mammoth/Services/Backend/MastodonKit/Foundation/URLRequest.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Foundation/URLRequest.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Foundation/URLRequest.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Functions.swift b/ios/Mammoth/Services/Backend/MastodonKit/Functions.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Functions.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Functions.swift diff --git a/Mammoth/Services/Backend/MastodonKit/HTTPMethod.swift b/ios/Mammoth/Services/Backend/MastodonKit/HTTPMethod.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/HTTPMethod.swift rename to ios/Mammoth/Services/Backend/MastodonKit/HTTPMethod.swift diff --git a/Mammoth/Services/Backend/MastodonKit/MediaAttachment.swift b/ios/Mammoth/Services/Backend/MastodonKit/MediaAttachment.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/MediaAttachment.swift rename to ios/Mammoth/Services/Backend/MastodonKit/MediaAttachment.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/AccessScope.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/AccessScope.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/AccessScope.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/AccessScope.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Account.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Account.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Account.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Account.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Application.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Application.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Application.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Application.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Attachment.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Attachment.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Attachment.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Attachment.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/AttachmentType.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/AttachmentType.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/AttachmentType.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/AttachmentType.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Card.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Card.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Card.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Card.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/CardType.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/CardType.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/CardType.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/CardType.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Category.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Category.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Category.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Category.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Channel.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Channel.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Channel.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Channel.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/ChannelOwner.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/ChannelOwner.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/ChannelOwner.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/ChannelOwner.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/ClientApplication.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/ClientApplication.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/ClientApplication.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/ClientApplication.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Context.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Context.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Context.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Context.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Conversation.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Conversation.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Conversation.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Conversation.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Emoji.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Emoji.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Emoji.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Emoji.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Empty.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Empty.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Empty.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Empty.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Familiar.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Familiar.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Familiar.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Familiar.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Filters.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Filters.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Filters.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Filters.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/HashType.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/HashType.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/HashType.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/HashType.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Hashtag.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Hashtag.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Hashtag.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Hashtag.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Instance.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Instance.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Instance.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Instance.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Joke.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Joke.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Joke.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Joke.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/List.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/List.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/List.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/List.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/LoginSettings.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/LoginSettings.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/LoginSettings.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/LoginSettings.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Marker.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Marker.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Marker.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Marker.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Mention.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Mention.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Mention.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Mention.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Notification.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Notification.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Notification.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Notification.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/NotificationType.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/NotificationType.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/NotificationType.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/NotificationType.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Poll.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Poll.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Poll.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Poll.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Relationship.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Relationship.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Relationship.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Relationship.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Report.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Report.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Report.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Report.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/RequestError.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/RequestError.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/RequestError.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/RequestError.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Results.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Results.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Results.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Results.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/ScheduledStatus.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/ScheduledStatus.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/ScheduledStatus.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/ScheduledStatus.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Status.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Status.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Status.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Status.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/StatusEdit.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/StatusEdit.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/StatusEdit.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/StatusEdit.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/StatusPara.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/StatusPara.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/StatusPara.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/StatusPara.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/StatusSource.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/StatusSource.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/StatusSource.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/StatusSource.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/StatusSourceType.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/StatusSourceType.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/StatusSourceType.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/StatusSourceType.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Suggestion.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Suggestion.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Suggestion.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Suggestion.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Tag.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Tag.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Tag.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Tag.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/URL+Mastodon.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/URL+Mastodon.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/URL+Mastodon.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/URL+Mastodon.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/Visibility.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/Visibility.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/Visibility.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/Visibility.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Models/WebFinger.swift b/ios/Mammoth/Services/Backend/MastodonKit/Models/WebFinger.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Models/WebFinger.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Models/WebFinger.swift diff --git a/Mammoth/Services/Backend/MastodonKit/NetworkMonitor.swift b/ios/Mammoth/Services/Backend/MastodonKit/NetworkMonitor.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/NetworkMonitor.swift rename to ios/Mammoth/Services/Backend/MastodonKit/NetworkMonitor.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Pagination.swift b/ios/Mammoth/Services/Backend/MastodonKit/Pagination.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Pagination.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Pagination.swift diff --git a/Mammoth/Services/Backend/MastodonKit/PaginationItem.swift b/ios/Mammoth/Services/Backend/MastodonKit/PaginationItem.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/PaginationItem.swift rename to ios/Mammoth/Services/Backend/MastodonKit/PaginationItem.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Parameter.swift b/ios/Mammoth/Services/Backend/MastodonKit/Parameter.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Parameter.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Parameter.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Payload.swift b/ios/Mammoth/Services/Backend/MastodonKit/Payload.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Payload.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Payload.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Request.swift b/ios/Mammoth/Services/Backend/MastodonKit/Request.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Request.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Request.swift diff --git a/Mammoth/Services/Backend/MastodonKit/RequestRange.swift b/ios/Mammoth/Services/Backend/MastodonKit/RequestRange.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/RequestRange.swift rename to ios/Mammoth/Services/Backend/MastodonKit/RequestRange.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Accounts.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Accounts.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Accounts.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Accounts.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Blocks.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Blocks.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Blocks.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Blocks.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Bookmarks.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Bookmarks.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Bookmarks.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Bookmarks.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Channels.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Channels.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Channels.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Channels.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Clients.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Clients.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Clients.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Clients.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/DomainBlocks.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/DomainBlocks.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/DomainBlocks.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/DomainBlocks.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Favourites.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Favourites.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Favourites.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Favourites.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/FilterPosts.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/FilterPosts.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/FilterPosts.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/FilterPosts.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/FollowRequests.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/FollowRequests.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/FollowRequests.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/FollowRequests.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/ForYou.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/ForYou.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/ForYou.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/ForYou.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Instances.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Instances.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Instances.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Instances.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Lists.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Lists.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Lists.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Lists.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Login.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Login.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Login.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Login.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Media.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Media.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Media.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Media.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Mutes.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Mutes.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Mutes.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Mutes.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Notifications.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Notifications.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Notifications.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Notifications.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Polls.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Polls.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Polls.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Polls.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/ProfileDirectory.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/ProfileDirectory.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/ProfileDirectory.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/ProfileDirectory.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Reports.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Reports.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Reports.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Reports.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Search.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Search.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Search.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Search.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Statuses.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Statuses.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Statuses.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Statuses.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Timelines.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Timelines.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Timelines.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Timelines.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Requests/Trending.swift b/ios/Mammoth/Services/Backend/MastodonKit/Requests/Trending.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Requests/Trending.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Requests/Trending.swift diff --git a/Mammoth/Services/Backend/MastodonKit/Result.swift b/ios/Mammoth/Services/Backend/MastodonKit/Result.swift similarity index 100% rename from Mammoth/Services/Backend/MastodonKit/Result.swift rename to ios/Mammoth/Services/Backend/MastodonKit/Result.swift diff --git a/Mammoth/Services/Backend/PollService.swift b/ios/Mammoth/Services/Backend/PollService.swift similarity index 100% rename from Mammoth/Services/Backend/PollService.swift rename to ios/Mammoth/Services/Backend/PollService.swift diff --git a/Mammoth/Services/Backend/SearchService.swift b/ios/Mammoth/Services/Backend/SearchService.swift similarity index 100% rename from Mammoth/Services/Backend/SearchService.swift rename to ios/Mammoth/Services/Backend/SearchService.swift diff --git a/Mammoth/Services/Backend/StatusService.swift b/ios/Mammoth/Services/Backend/StatusService.swift similarity index 100% rename from Mammoth/Services/Backend/StatusService.swift rename to ios/Mammoth/Services/Backend/StatusService.swift diff --git a/Mammoth/Services/Backend/TimelineService.swift b/ios/Mammoth/Services/Backend/TimelineService.swift similarity index 100% rename from Mammoth/Services/Backend/TimelineService.swift rename to ios/Mammoth/Services/Backend/TimelineService.swift diff --git a/Mammoth/Services/Haptics.swift b/ios/Mammoth/Services/Haptics.swift similarity index 100% rename from Mammoth/Services/Haptics.swift rename to ios/Mammoth/Services/Haptics.swift diff --git a/Mammoth/Services/Log.swift b/ios/Mammoth/Services/Log.swift similarity index 100% rename from Mammoth/Services/Log.swift rename to ios/Mammoth/Services/Log.swift diff --git a/Mammoth/Services/Push/Decode85.swift b/ios/Mammoth/Services/Push/Decode85.swift similarity index 100% rename from Mammoth/Services/Push/Decode85.swift rename to ios/Mammoth/Services/Push/Decode85.swift diff --git a/Mammoth/Services/Push/DecryptNotification.swift b/ios/Mammoth/Services/Push/DecryptNotification.swift similarity index 100% rename from Mammoth/Services/Push/DecryptNotification.swift rename to ios/Mammoth/Services/Push/DecryptNotification.swift diff --git a/Mammoth/Services/Push/KeyChainHelper.swift b/ios/Mammoth/Services/Push/KeyChainHelper.swift similarity index 100% rename from Mammoth/Services/Push/KeyChainHelper.swift rename to ios/Mammoth/Services/Push/KeyChainHelper.swift diff --git a/Mammoth/Services/Push/PushNotificationDataObjects.swift b/ios/Mammoth/Services/Push/PushNotificationDataObjects.swift similarity index 100% rename from Mammoth/Services/Push/PushNotificationDataObjects.swift rename to ios/Mammoth/Services/Push/PushNotificationDataObjects.swift diff --git a/Mammoth/Services/Push/PushNotificationReceiver.swift b/ios/Mammoth/Services/Push/PushNotificationReceiver.swift similarity index 100% rename from Mammoth/Services/Push/PushNotificationReceiver.swift rename to ios/Mammoth/Services/Push/PushNotificationReceiver.swift diff --git a/Mammoth/Services/Push/SwiftGCM.swift b/ios/Mammoth/Services/Push/SwiftGCM.swift similarity index 100% rename from Mammoth/Services/Push/SwiftGCM.swift rename to ios/Mammoth/Services/Push/SwiftGCM.swift diff --git a/Mammoth/Services/Shortcuts/Intents.intentdefinition b/ios/Mammoth/Services/Shortcuts/Intents.intentdefinition similarity index 100% rename from Mammoth/Services/Shortcuts/Intents.intentdefinition rename to ios/Mammoth/Services/Shortcuts/Intents.intentdefinition diff --git a/Mammoth/Services/Shortcuts/PostTweetIntentHandler.swift b/ios/Mammoth/Services/Shortcuts/PostTweetIntentHandler.swift similarity index 100% rename from Mammoth/Services/Shortcuts/PostTweetIntentHandler.swift rename to ios/Mammoth/Services/Shortcuts/PostTweetIntentHandler.swift diff --git a/Mammoth/Services/Sound/Mute.swift b/ios/Mammoth/Services/Sound/Mute.swift similarity index 100% rename from Mammoth/Services/Sound/Mute.swift rename to ios/Mammoth/Services/Sound/Mute.swift diff --git a/Mammoth/Services/Sound/Sound.swift b/ios/Mammoth/Services/Sound/Sound.swift similarity index 100% rename from Mammoth/Services/Sound/Sound.swift rename to ios/Mammoth/Services/Sound/Sound.swift diff --git a/Mammoth/Services/VideoProcessor.swift b/ios/Mammoth/Services/VideoProcessor.swift similarity index 100% rename from Mammoth/Services/VideoProcessor.swift rename to ios/Mammoth/Services/VideoProcessor.swift diff --git a/Mammoth/StoreKitTestCertificate.cer b/ios/Mammoth/StoreKitTestCertificate.cer similarity index 100% rename from Mammoth/StoreKitTestCertificate.cer rename to ios/Mammoth/StoreKitTestCertificate.cer diff --git a/Mammoth/Utils/Appearance.swift b/ios/Mammoth/Utils/Appearance.swift similarity index 100% rename from Mammoth/Utils/Appearance.swift rename to ios/Mammoth/Utils/Appearance.swift diff --git a/Mammoth/Utils/Codable/FailableDecodable.swift b/ios/Mammoth/Utils/Codable/FailableDecodable.swift similarity index 100% rename from Mammoth/Utils/Codable/FailableDecodable.swift rename to ios/Mammoth/Utils/Codable/FailableDecodable.swift diff --git a/Mammoth/Utils/Codable/Indirect.swift b/ios/Mammoth/Utils/Codable/Indirect.swift similarity index 100% rename from Mammoth/Utils/Codable/Indirect.swift rename to ios/Mammoth/Utils/Codable/Indirect.swift diff --git a/Mammoth/Utils/Codable/MothSocialJWT.swift b/ios/Mammoth/Utils/Codable/MothSocialJWT.swift similarity index 100% rename from Mammoth/Utils/Codable/MothSocialJWT.swift rename to ios/Mammoth/Utils/Codable/MothSocialJWT.swift diff --git a/Mammoth/Utils/ColumnFlowLayout.swift b/ios/Mammoth/Utils/ColumnFlowLayout.swift similarity index 100% rename from Mammoth/Utils/ColumnFlowLayout.swift rename to ios/Mammoth/Utils/ColumnFlowLayout.swift diff --git a/Mammoth/Utils/DeviceHelpers.swift b/ios/Mammoth/Utils/DeviceHelpers.swift similarity index 100% rename from Mammoth/Utils/DeviceHelpers.swift rename to ios/Mammoth/Utils/DeviceHelpers.swift diff --git a/Mammoth/Utils/DiffSections.swift b/ios/Mammoth/Utils/DiffSections.swift similarity index 100% rename from Mammoth/Utils/DiffSections.swift rename to ios/Mammoth/Utils/DiffSections.swift diff --git a/Mammoth/Utils/EmailHandler.swift b/ios/Mammoth/Utils/EmailHandler.swift similarity index 100% rename from Mammoth/Utils/EmailHandler.swift rename to ios/Mammoth/Utils/EmailHandler.swift diff --git a/Mammoth/Utils/Extensions/AccountExtension.swift b/ios/Mammoth/Utils/Extensions/AccountExtension.swift similarity index 100% rename from Mammoth/Utils/Extensions/AccountExtension.swift rename to ios/Mammoth/Utils/Extensions/AccountExtension.swift diff --git a/Mammoth/Utils/Extensions/Array+Diff.swift b/ios/Mammoth/Utils/Extensions/Array+Diff.swift similarity index 100% rename from Mammoth/Utils/Extensions/Array+Diff.swift rename to ios/Mammoth/Utils/Extensions/Array+Diff.swift diff --git a/Mammoth/Utils/Extensions/Array+Duplicates.swift b/ios/Mammoth/Utils/Extensions/Array+Duplicates.swift similarity index 100% rename from Mammoth/Utils/Extensions/Array+Duplicates.swift rename to ios/Mammoth/Utils/Extensions/Array+Duplicates.swift diff --git a/Mammoth/Utils/Extensions/Bundle+decode.swift b/ios/Mammoth/Utils/Extensions/Bundle+decode.swift similarity index 100% rename from Mammoth/Utils/Extensions/Bundle+decode.swift rename to ios/Mammoth/Utils/Extensions/Bundle+decode.swift diff --git a/Mammoth/Utils/Extensions/BundleExtension.swift b/ios/Mammoth/Utils/Extensions/BundleExtension.swift similarity index 100% rename from Mammoth/Utils/Extensions/BundleExtension.swift rename to ios/Mammoth/Utils/Extensions/BundleExtension.swift diff --git a/Mammoth/Utils/Extensions/Date.swift b/ios/Mammoth/Utils/Extensions/Date.swift similarity index 100% rename from Mammoth/Utils/Extensions/Date.swift rename to ios/Mammoth/Utils/Extensions/Date.swift diff --git a/Mammoth/Utils/Extensions/Disk/Disk+Codable.swift b/ios/Mammoth/Utils/Extensions/Disk/Disk+Codable.swift similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk+Codable.swift rename to ios/Mammoth/Utils/Extensions/Disk/Disk+Codable.swift diff --git a/Mammoth/Utils/Extensions/Disk/Disk+Data.swift b/ios/Mammoth/Utils/Extensions/Disk/Disk+Data.swift similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk+Data.swift rename to ios/Mammoth/Utils/Extensions/Disk/Disk+Data.swift diff --git a/Mammoth/Utils/Extensions/Disk/Disk+Errors.swift b/ios/Mammoth/Utils/Extensions/Disk/Disk+Errors.swift similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk+Errors.swift rename to ios/Mammoth/Utils/Extensions/Disk/Disk+Errors.swift diff --git a/Mammoth/Utils/Extensions/Disk/Disk+Helpers.swift b/ios/Mammoth/Utils/Extensions/Disk/Disk+Helpers.swift similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk+Helpers.swift rename to ios/Mammoth/Utils/Extensions/Disk/Disk+Helpers.swift diff --git a/Mammoth/Utils/Extensions/Disk/Disk+InternalHelpers.swift b/ios/Mammoth/Utils/Extensions/Disk/Disk+InternalHelpers.swift similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk+InternalHelpers.swift rename to ios/Mammoth/Utils/Extensions/Disk/Disk+InternalHelpers.swift diff --git a/Mammoth/Utils/Extensions/Disk/Disk+UIImage.swift b/ios/Mammoth/Utils/Extensions/Disk/Disk+UIImage.swift similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk+UIImage.swift rename to ios/Mammoth/Utils/Extensions/Disk/Disk+UIImage.swift diff --git a/Mammoth/Utils/Extensions/Disk/Disk+VolumeInformation.swift b/ios/Mammoth/Utils/Extensions/Disk/Disk+VolumeInformation.swift similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk+VolumeInformation.swift rename to ios/Mammoth/Utils/Extensions/Disk/Disk+VolumeInformation.swift diff --git a/Mammoth/Utils/Extensions/Disk/Disk+[Data].swift b/ios/Mammoth/Utils/Extensions/Disk/Disk+[Data].swift similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk+[Data].swift rename to ios/Mammoth/Utils/Extensions/Disk/Disk+[Data].swift diff --git a/Mammoth/Utils/Extensions/Disk/Disk+[UIImage].swift b/ios/Mammoth/Utils/Extensions/Disk/Disk+[UIImage].swift similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk+[UIImage].swift rename to ios/Mammoth/Utils/Extensions/Disk/Disk+[UIImage].swift diff --git a/Mammoth/Utils/Extensions/Disk/Disk.h b/ios/Mammoth/Utils/Extensions/Disk/Disk.h similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk.h rename to ios/Mammoth/Utils/Extensions/Disk/Disk.h diff --git a/Mammoth/Utils/Extensions/Disk/Disk.swift b/ios/Mammoth/Utils/Extensions/Disk/Disk.swift similarity index 100% rename from Mammoth/Utils/Extensions/Disk/Disk.swift rename to ios/Mammoth/Utils/Extensions/Disk/Disk.swift diff --git a/Mammoth/Utils/Extensions/Layout/UIView+Layout.swift b/ios/Mammoth/Utils/Extensions/Layout/UIView+Layout.swift similarity index 100% rename from Mammoth/Utils/Extensions/Layout/UIView+Layout.swift rename to ios/Mammoth/Utils/Extensions/Layout/UIView+Layout.swift diff --git a/Mammoth/Utils/Extensions/NumberFormatter+kNotation.swift b/ios/Mammoth/Utils/Extensions/NumberFormatter+kNotation.swift similarity index 100% rename from Mammoth/Utils/Extensions/NumberFormatter+kNotation.swift rename to ios/Mammoth/Utils/Extensions/NumberFormatter+kNotation.swift diff --git a/Mammoth/Utils/Extensions/ProcessID.swift b/ios/Mammoth/Utils/Extensions/ProcessID.swift similarity index 100% rename from Mammoth/Utils/Extensions/ProcessID.swift rename to ios/Mammoth/Utils/Extensions/ProcessID.swift diff --git a/Mammoth/Utils/Extensions/Sequence+Async.swift b/ios/Mammoth/Utils/Extensions/Sequence+Async.swift similarity index 100% rename from Mammoth/Utils/Extensions/Sequence+Async.swift rename to ios/Mammoth/Utils/Extensions/Sequence+Async.swift diff --git a/Mammoth/Utils/Extensions/StatusBar+Height.swift b/ios/Mammoth/Utils/Extensions/StatusBar+Height.swift similarity index 100% rename from Mammoth/Utils/Extensions/StatusBar+Height.swift rename to ios/Mammoth/Utils/Extensions/StatusBar+Height.swift diff --git a/Mammoth/Utils/Extensions/String+Filename.swift b/ios/Mammoth/Utils/Extensions/String+Filename.swift similarity index 100% rename from Mammoth/Utils/Extensions/String+Filename.swift rename to ios/Mammoth/Utils/Extensions/String+Filename.swift diff --git a/Mammoth/Utils/Extensions/String+Image.swift b/ios/Mammoth/Utils/Extensions/String+Image.swift similarity index 100% rename from Mammoth/Utils/Extensions/String+Image.swift rename to ios/Mammoth/Utils/Extensions/String+Image.swift diff --git a/Mammoth/Utils/Extensions/String+StripEmojis.swift b/ios/Mammoth/Utils/Extensions/String+StripEmojis.swift similarity index 100% rename from Mammoth/Utils/Extensions/String+StripEmojis.swift rename to ios/Mammoth/Utils/Extensions/String+StripEmojis.swift diff --git a/Mammoth/Utils/Extensions/Task+Sleep.swift b/ios/Mammoth/Utils/Extensions/Task+Sleep.swift similarity index 100% rename from Mammoth/Utils/Extensions/Task+Sleep.swift rename to ios/Mammoth/Utils/Extensions/Task+Sleep.swift diff --git a/Mammoth/Utils/Extensions/UIColor+Gradient.swift b/ios/Mammoth/Utils/Extensions/UIColor+Gradient.swift similarity index 100% rename from Mammoth/Utils/Extensions/UIColor+Gradient.swift rename to ios/Mammoth/Utils/Extensions/UIColor+Gradient.swift diff --git a/Mammoth/Utils/Extensions/UIControl+AddAction.swift b/ios/Mammoth/Utils/Extensions/UIControl+AddAction.swift similarity index 100% rename from Mammoth/Utils/Extensions/UIControl+AddAction.swift rename to ios/Mammoth/Utils/Extensions/UIControl+AddAction.swift diff --git a/Mammoth/Utils/Extensions/UIImage+Utils.swift b/ios/Mammoth/Utils/Extensions/UIImage+Utils.swift similarity index 100% rename from Mammoth/Utils/Extensions/UIImage+Utils.swift rename to ios/Mammoth/Utils/Extensions/UIImage+Utils.swift diff --git a/Mammoth/Utils/Extensions/UIImageView+Caching.swift b/ios/Mammoth/Utils/Extensions/UIImageView+Caching.swift similarity index 100% rename from Mammoth/Utils/Extensions/UIImageView+Caching.swift rename to ios/Mammoth/Utils/Extensions/UIImageView+Caching.swift diff --git a/Mammoth/Utils/Extensions/UITableView+HeaderView.swift b/ios/Mammoth/Utils/Extensions/UITableView+HeaderView.swift similarity index 100% rename from Mammoth/Utils/Extensions/UITableView+HeaderView.swift rename to ios/Mammoth/Utils/Extensions/UITableView+HeaderView.swift diff --git a/Mammoth/Utils/Extensions/UITableView+SafeScrollToRow.swift b/ios/Mammoth/Utils/Extensions/UITableView+SafeScrollToRow.swift similarity index 100% rename from Mammoth/Utils/Extensions/UITableView+SafeScrollToRow.swift rename to ios/Mammoth/Utils/Extensions/UITableView+SafeScrollToRow.swift diff --git a/Mammoth/Utils/Extensions/UIView+Constraints.swift b/ios/Mammoth/Utils/Extensions/UIView+Constraints.swift similarity index 100% rename from Mammoth/Utils/Extensions/UIView+Constraints.swift rename to ios/Mammoth/Utils/Extensions/UIView+Constraints.swift diff --git a/Mammoth/Utils/Extensions/View/UIButton+Misc.swift b/ios/Mammoth/Utils/Extensions/View/UIButton+Misc.swift similarity index 100% rename from Mammoth/Utils/Extensions/View/UIButton+Misc.swift rename to ios/Mammoth/Utils/Extensions/View/UIButton+Misc.swift diff --git a/Mammoth/Utils/Extensions/View/UIColor+Asset.swift b/ios/Mammoth/Utils/Extensions/View/UIColor+Asset.swift similarity index 100% rename from Mammoth/Utils/Extensions/View/UIColor+Asset.swift rename to ios/Mammoth/Utils/Extensions/View/UIColor+Asset.swift diff --git a/Mammoth/Utils/Extensions/ViewController/ContainerViewController.swift b/ios/Mammoth/Utils/Extensions/ViewController/ContainerViewController.swift similarity index 100% rename from Mammoth/Utils/Extensions/ViewController/ContainerViewController.swift rename to ios/Mammoth/Utils/Extensions/ViewController/ContainerViewController.swift diff --git a/Mammoth/Utils/Extensions/ViewController/ShareableViewController.swift b/ios/Mammoth/Utils/Extensions/ViewController/ShareableViewController.swift similarity index 100% rename from Mammoth/Utils/Extensions/ViewController/ShareableViewController.swift rename to ios/Mammoth/Utils/Extensions/ViewController/ShareableViewController.swift diff --git a/Mammoth/Utils/Extensions/ViewController/UIViewController+Alert.swift b/ios/Mammoth/Utils/Extensions/ViewController/UIViewController+Alert.swift similarity index 100% rename from Mammoth/Utils/Extensions/ViewController/UIViewController+Alert.swift rename to ios/Mammoth/Utils/Extensions/ViewController/UIViewController+Alert.swift diff --git a/Mammoth/Utils/Extensions/ViewController/UIViewController+Child.swift b/ios/Mammoth/Utils/Extensions/ViewController/UIViewController+Child.swift similarity index 100% rename from Mammoth/Utils/Extensions/ViewController/UIViewController+Child.swift rename to ios/Mammoth/Utils/Extensions/ViewController/UIViewController+Child.swift diff --git a/Mammoth/Utils/Extensions/ViewController/UIViewController+isModal.swift b/ios/Mammoth/Utils/Extensions/ViewController/UIViewController+isModal.swift similarity index 100% rename from Mammoth/Utils/Extensions/ViewController/UIViewController+isModal.swift rename to ios/Mammoth/Utils/Extensions/ViewController/UIViewController+isModal.swift diff --git a/Mammoth/Utils/Formatters/AbbreviatedNumberFormatter.swift b/ios/Mammoth/Utils/Formatters/AbbreviatedNumberFormatter.swift similarity index 100% rename from Mammoth/Utils/Formatters/AbbreviatedNumberFormatter.swift rename to ios/Mammoth/Utils/Formatters/AbbreviatedNumberFormatter.swift diff --git a/Mammoth/Utils/Formatters/RelativeShortDateFormatter.swift b/ios/Mammoth/Utils/Formatters/RelativeShortDateFormatter.swift similarity index 100% rename from Mammoth/Utils/Formatters/RelativeShortDateFormatter.swift rename to ios/Mammoth/Utils/Formatters/RelativeShortDateFormatter.swift diff --git a/Mammoth/Utils/GIF2MP4.swift b/ios/Mammoth/Utils/GIF2MP4.swift similarity index 100% rename from Mammoth/Utils/GIF2MP4.swift rename to ios/Mammoth/Utils/GIF2MP4.swift diff --git a/Mammoth/Utils/InstanceFeatures.swift b/ios/Mammoth/Utils/InstanceFeatures.swift similarity index 100% rename from Mammoth/Utils/InstanceFeatures.swift rename to ios/Mammoth/Utils/InstanceFeatures.swift diff --git a/Mammoth/Utils/IntentsStruct.swift b/ios/Mammoth/Utils/IntentsStruct.swift similarity index 100% rename from Mammoth/Utils/IntentsStruct.swift rename to ios/Mammoth/Utils/IntentsStruct.swift diff --git a/Mammoth/Utils/NavigationHelpers.swift b/ios/Mammoth/Utils/NavigationHelpers.swift similarity index 100% rename from Mammoth/Utils/NavigationHelpers.swift rename to ios/Mammoth/Utils/NavigationHelpers.swift diff --git a/Mammoth/Utils/ObjectMapper/CodableTransform.swift b/ios/Mammoth/Utils/ObjectMapper/CodableTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/CodableTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/CodableTransform.swift diff --git a/Mammoth/Utils/ObjectMapper/CustomDateFormatTransform.swift b/ios/Mammoth/Utils/ObjectMapper/CustomDateFormatTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/CustomDateFormatTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/CustomDateFormatTransform.swift diff --git a/Mammoth/Utils/ObjectMapper/DataTransform.swift b/ios/Mammoth/Utils/ObjectMapper/DataTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/DataTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/DataTransform.swift diff --git a/Mammoth/Utils/ObjectMapper/DateFormatterTransform.swift b/ios/Mammoth/Utils/ObjectMapper/DateFormatterTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/DateFormatterTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/DateFormatterTransform.swift diff --git a/Mammoth/Utils/ObjectMapper/DateTransform.swift b/ios/Mammoth/Utils/ObjectMapper/DateTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/DateTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/DateTransform.swift diff --git a/Mammoth/Utils/ObjectMapper/DictionaryTransform.swift b/ios/Mammoth/Utils/ObjectMapper/DictionaryTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/DictionaryTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/DictionaryTransform.swift diff --git a/Mammoth/Utils/ObjectMapper/EnumOperators.swift b/ios/Mammoth/Utils/ObjectMapper/EnumOperators.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/EnumOperators.swift rename to ios/Mammoth/Utils/ObjectMapper/EnumOperators.swift diff --git a/Mammoth/Utils/ObjectMapper/EnumTransform.swift b/ios/Mammoth/Utils/ObjectMapper/EnumTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/EnumTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/EnumTransform.swift diff --git a/Mammoth/Utils/ObjectMapper/FromJSON.swift b/ios/Mammoth/Utils/ObjectMapper/FromJSON.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/FromJSON.swift rename to ios/Mammoth/Utils/ObjectMapper/FromJSON.swift diff --git a/Mammoth/Utils/ObjectMapper/HexColorTransform.swift b/ios/Mammoth/Utils/ObjectMapper/HexColorTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/HexColorTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/HexColorTransform.swift diff --git a/Mammoth/Utils/ObjectMapper/ISO8601DateTransform.swift b/ios/Mammoth/Utils/ObjectMapper/ISO8601DateTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/ISO8601DateTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/ISO8601DateTransform.swift diff --git a/Mammoth/Utils/ObjectMapper/ImmutableMappable.swift b/ios/Mammoth/Utils/ObjectMapper/ImmutableMappable.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/ImmutableMappable.swift rename to ios/Mammoth/Utils/ObjectMapper/ImmutableMappable.swift diff --git a/Mammoth/Utils/ObjectMapper/IntegerOperators.swift b/ios/Mammoth/Utils/ObjectMapper/IntegerOperators.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/IntegerOperators.swift rename to ios/Mammoth/Utils/ObjectMapper/IntegerOperators.swift diff --git a/Mammoth/Utils/ObjectMapper/Map.swift b/ios/Mammoth/Utils/ObjectMapper/Map.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/Map.swift rename to ios/Mammoth/Utils/ObjectMapper/Map.swift diff --git a/Mammoth/Utils/ObjectMapper/MapError.swift b/ios/Mammoth/Utils/ObjectMapper/MapError.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/MapError.swift rename to ios/Mammoth/Utils/ObjectMapper/MapError.swift diff --git a/Mammoth/Utils/ObjectMapper/Mappable.swift b/ios/Mammoth/Utils/ObjectMapper/Mappable.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/Mappable.swift rename to ios/Mammoth/Utils/ObjectMapper/Mappable.swift diff --git a/Mammoth/Utils/ObjectMapper/Mapper.swift b/ios/Mammoth/Utils/ObjectMapper/Mapper.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/Mapper.swift rename to ios/Mammoth/Utils/ObjectMapper/Mapper.swift diff --git a/Mammoth/Utils/ObjectMapper/NSDecimalNumberTransform.swift b/ios/Mammoth/Utils/ObjectMapper/NSDecimalNumberTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/NSDecimalNumberTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/NSDecimalNumberTransform.swift diff --git a/Mammoth/Utils/ObjectMapper/Operators.swift b/ios/Mammoth/Utils/ObjectMapper/Operators.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/Operators.swift rename to ios/Mammoth/Utils/ObjectMapper/Operators.swift diff --git a/Mammoth/Utils/ObjectMapper/ToJSON.swift b/ios/Mammoth/Utils/ObjectMapper/ToJSON.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/ToJSON.swift rename to ios/Mammoth/Utils/ObjectMapper/ToJSON.swift diff --git a/Mammoth/Utils/ObjectMapper/TransformOf.swift b/ios/Mammoth/Utils/ObjectMapper/TransformOf.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/TransformOf.swift rename to ios/Mammoth/Utils/ObjectMapper/TransformOf.swift diff --git a/Mammoth/Utils/ObjectMapper/TransformOperators.swift b/ios/Mammoth/Utils/ObjectMapper/TransformOperators.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/TransformOperators.swift rename to ios/Mammoth/Utils/ObjectMapper/TransformOperators.swift diff --git a/Mammoth/Utils/ObjectMapper/TransformType.swift b/ios/Mammoth/Utils/ObjectMapper/TransformType.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/TransformType.swift rename to ios/Mammoth/Utils/ObjectMapper/TransformType.swift diff --git a/Mammoth/Utils/ObjectMapper/URLTransform.swift b/ios/Mammoth/Utils/ObjectMapper/URLTransform.swift similarity index 100% rename from Mammoth/Utils/ObjectMapper/URLTransform.swift rename to ios/Mammoth/Utils/ObjectMapper/URLTransform.swift diff --git a/Mammoth/Utils/ParseTextAttachments.swift b/ios/Mammoth/Utils/ParseTextAttachments.swift similarity index 100% rename from Mammoth/Utils/ParseTextAttachments.swift rename to ios/Mammoth/Utils/ParseTextAttachments.swift diff --git a/Mammoth/Utils/PostActions.swift b/ios/Mammoth/Utils/PostActions.swift similarity index 100% rename from Mammoth/Utils/PostActions.swift rename to ios/Mammoth/Utils/PostActions.swift diff --git a/Mammoth/Utils/Protocols/Jumpable.swift b/ios/Mammoth/Utils/Protocols/Jumpable.swift similarity index 100% rename from Mammoth/Utils/Protocols/Jumpable.swift rename to ios/Mammoth/Utils/Protocols/Jumpable.swift diff --git a/Mammoth/Utils/Protocols/RequestDelegate.swift b/ios/Mammoth/Utils/Protocols/RequestDelegate.swift similarity index 100% rename from Mammoth/Utils/Protocols/RequestDelegate.swift rename to ios/Mammoth/Utils/Protocols/RequestDelegate.swift diff --git a/Mammoth/Utils/Protocols/RotatingViewController.swift b/ios/Mammoth/Utils/Protocols/RotatingViewController.swift similarity index 100% rename from Mammoth/Utils/Protocols/RotatingViewController.swift rename to ios/Mammoth/Utils/Protocols/RotatingViewController.swift diff --git a/ios/Mammoth/Utils/ReactHelpers/EventEmitter/EventEmitter.swift b/ios/Mammoth/Utils/ReactHelpers/EventEmitter/EventEmitter.swift new file mode 100644 index 000000000..2cfa26c0f --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/EventEmitter/EventEmitter.swift @@ -0,0 +1,39 @@ +// +// EventEmitter.swift +// Mammoth +// +// Created by Benoit Nolens on 05/02/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +import Foundation + +class EventEmitter { + + /// Shared Instance. + public static var shared = EventEmitter() + + // ReactNativeEventEmitter is instantiated by React Native with the bridge. + private static var eventEmitter: ReactNativeEventEmitter! + + private init() {} + + // When React Native instantiates the emitter it is registered here. + func registerEventEmitter(eventEmitter: ReactNativeEventEmitter) { + EventEmitter.eventEmitter = eventEmitter + } + + func dispatch(name: String, body: Any?) { + Self.eventEmitter.sendEvent(withName: name, body: body) + } + + /// All Events which must be support by React Native. + lazy var allEvents: [String] = { + var allEventNames: [String] = ["onMetaTextChange"] + + // Append all events here + + return allEventNames + }() + +} diff --git a/ios/Mammoth/Utils/ReactHelpers/EventEmitter/ReactNativeEventEmitter.m b/ios/Mammoth/Utils/ReactHelpers/EventEmitter/ReactNativeEventEmitter.m new file mode 100644 index 000000000..7c245acd7 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/EventEmitter/ReactNativeEventEmitter.m @@ -0,0 +1,22 @@ +// +// ReactNativeEventEmitter.m +// Mammoth +// +// Created by Benoit Nolens on 05/02/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +// +// ReactNativeEventEmitter.m +// See: http://facebook.github.io/react-native/releases/0.43/docs/native-modules-ios.html#exporting-swift +// + +#import +#import +#import + +@interface RCT_EXTERN_MODULE(ReactNativeEventEmitter, RCTEventEmitter) + +RCT_EXTERN_METHOD(supportedEvents) + +@end diff --git a/ios/Mammoth/Utils/ReactHelpers/EventEmitter/ReactNativeEventEmitter.swift b/ios/Mammoth/Utils/ReactHelpers/EventEmitter/ReactNativeEventEmitter.swift new file mode 100644 index 000000000..e4b95cf44 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/EventEmitter/ReactNativeEventEmitter.swift @@ -0,0 +1,27 @@ +// +// ReactNativeEventEmitter.swift +// Mammoth +// +// Created by Benoit Nolens on 05/02/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + + +import Foundation + +@objc(ReactNativeEventEmitter) +open class ReactNativeEventEmitter: RCTEventEmitter { + + override init() { + super.init() + EventEmitter.shared.registerEventEmitter(eventEmitter: self) + } + + /// Base overide for RCTEventEmitter. + /// + /// - Returns: all supported events + @objc open override func supportedEvents() -> [String] { + return EventEmitter.shared.allEvents + } + +} diff --git a/ios/Mammoth/Utils/ReactHelpers/Managers/MetaText/MetaTextManager.m b/ios/Mammoth/Utils/ReactHelpers/Managers/MetaText/MetaTextManager.m new file mode 100644 index 000000000..661f35739 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/Managers/MetaText/MetaTextManager.m @@ -0,0 +1,60 @@ +// +// MetaTextManager.m +// Mammoth +// +// Created by Benoit Nolens on 02/02/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +#import +#import +#import +#import +#import "Mammoth-Swift.h" +@import MetaTextKit; + +@interface MetaTextManager : RCTViewManager +@property (strong, nonatomic) MetaTextProvider *provider; +@end + +@implementation MetaTextManager +@synthesize provider; + +RCT_EXPORT_MODULE(NativeMetaText) + +- (instancetype) init { + self = [super init]; + provider = [MetaTextProvider new]; + return self; +} + +- (UIView *)view { + return [provider createMetaLabel]; +} + +- (dispatch_queue_t)methodQueue { + return dispatch_get_main_queue(); +} + +RCT_CUSTOM_VIEW_PROPERTY(emojis, NSArray, MetaTextProvider) { + [provider setEmojis: json]; +} + +RCT_EXPORT_METHOD(onTextChange:(nonnull NSNumber*) reactTag) { + [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary *viewRegistry) { + UITextView * view = (UITextView *)viewRegistry[reactTag]; + if (!view || ![view isKindOfClass:[UITextView class]]) { + RCTLogError(@"Cannot find UITextView with tag #%@", reactTag); + return; + } + + CGFloat width = CGRectGetWidth(view.frame); + CGSize fittingSize = UILayoutFittingCompressedSize; + fittingSize.width = width; + + CGFloat height = [view systemLayoutSizeFittingSize: fittingSize].height; + [self.bridge.uiManager setIntrinsicContentSize: CGSizeMake(UIViewNoIntrinsicMetric, height) forView: view]; + }]; +}; + +@end diff --git a/ios/Mammoth/Utils/ReactHelpers/Managers/MetaText/MetaTextProvider.swift b/ios/Mammoth/Utils/ReactHelpers/Managers/MetaText/MetaTextProvider.swift new file mode 100644 index 000000000..4a2a7cc5b --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/Managers/MetaText/MetaTextProvider.swift @@ -0,0 +1,76 @@ +// +// MetaTextProvider.swift +// Mammoth +// +// Created by Benoit Nolens on 02/02/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +import UIKit +import Meta +import MastodonMeta +import MetaTextKit +import React + +@objc class MetaTextProvider: NSObject, MetaTextDelegate { + + @objc let metaText = MetaText() + + func metaText(_ metaText: MetaTextKit.MetaText, processEditing textStorage: MetaTextStorage) -> MetaContent? { + guard metaText === self.metaText else { return nil } + + let string = metaText.textStorage.string + let content = MastodonContent(content: string, emojis: self.emojiDic) + let metaContent = MastodonMetaContent.convert(text: content) + + EventEmitter.shared.dispatch(name: "onMetaTextChange", body: nil) + + return metaContent + } + + @objc var emojis: NSArray = [] + + private var emojiDic: MastodonContent.Emojis { + var emojisDic: MastodonContent.Emojis = [:] + self.emojis.forEach({ + if let emoji = $0 as? Dictionary, + let shortCode = emoji["shortcode"], + let url = emoji["url"] { + emojisDic[shortCode] = url + } + }) + + return emojisDic + } + + @objc func createMetaLabel() -> UITextView { + + metaText.textView.backgroundColor = .clear + metaText.textView.isScrollEnabled = false + + self.metaText.textAttributes = [ + .font: UIFont.systemFont(ofSize: UIFont.preferredFont(forTextStyle: .body).pointSize + GlobalStruct.customTextSize, weight: .regular), + .foregroundColor: UIColor.custom.mediumContrast, + ] + + self.metaText.linkAttributes = [ + .font: UIFont.systemFont(ofSize: UIFont.preferredFont(forTextStyle: .body).pointSize + GlobalStruct.customTextSize, weight: .semibold), + .foregroundColor: UIColor.custom.highContrast, + ] + + self.metaText.paragraphStyle = { + let style = NSMutableParagraphStyle() + style.lineSpacing = DeviceHelpers.isiOSAppOnMac() ? 1 : 0 + style.paragraphSpacing = 4 + style.alignment = .natural + return style + }() + + self.metaText.delegate = self + + let content = MastodonMetaContent.convert(text: MastodonContent(content: "Hello world from @mammoth #mastodon", emojis: self.emojiDic)) + self.metaText.configure(content: content, isRedactedModeEnabled: false) + + return self.metaText.textView + } +} diff --git a/ios/Mammoth/Utils/ReactHelpers/Managers/PostCardManager.m b/ios/Mammoth/Utils/ReactHelpers/Managers/PostCardManager.m new file mode 100644 index 000000000..5fc602332 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/Managers/PostCardManager.m @@ -0,0 +1,41 @@ +// +// PostCardManager.m +// Mammoth +// +// Created by Benoit Nolens on 01/02/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +#import +#import +#import +#import "Mammoth-Swift.h" + +@interface PostCardManager : RCTViewManager +@end + +@implementation PostCardManager + +RCT_EXPORT_MODULE(NativePostCardView) + +- (UIView *)view { + return [PostCardView new]; +} + +- (dispatch_queue_t)methodQueue { + return dispatch_get_main_queue(); +} + +RCT_EXPORT_METHOD(configure:(nonnull NSNumber*) reactTag text:(NSString *)text) { + [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary *viewRegistry) { + PostCardView * view = (PostCardView *)viewRegistry[reactTag]; + if (!view || ![view isKindOfClass:[PostCardView class]]) { + RCTLogError(@"Cannot find PostCardView with tag #%@", reactTag); + return; + } + [view configureWithText: text]; + [self.bridge.uiManager setIntrinsicContentSize: CGSizeMake(UIViewNoIntrinsicMetric, view.viewHeight) forView: view]; + }]; +}; + +@end diff --git a/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigationEventEmitter.h b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigationEventEmitter.h new file mode 100644 index 000000000..45e1c22f1 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigationEventEmitter.h @@ -0,0 +1,33 @@ +// +// NavigationEventEmitter.h +// Mammoth +// +// Created by Benoit Nolens on 31/01/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +#import +#import +#import + +typedef NS_ENUM(NSInteger, ScreenChangeEvent) { + ScreenChangeEventViewWillAppear, + ScreenChangeEventViewDidAppear, + ScreenChangeEventViewWillDisappear, + ScreenChangeEventViewDidDisappear +}; + +/** + * Emits events related to Navigation. + * This is a single instance as per how RN creates modules/emitters + * The globalNavigationEmitter ref is stored upon init. + * */ +@interface NavigationEventEmitter: RCTEventEmitter + ++ (NavigationEventEmitter * _Nullable)globalNavigationEmitter; + +- (void)publishEvent:(nonnull NSDictionary *)event; + +- (void)publishScreenChangeEvent:(ScreenChangeEvent)event rootTag:(nonnull NSNumber *)rootTag; + +@end diff --git a/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigationEventEmitter.m b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigationEventEmitter.m new file mode 100644 index 000000000..6a4de71b5 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigationEventEmitter.m @@ -0,0 +1,76 @@ +// +// NavigationEventEmitter.m +// Mammoth +// +// Created by Benoit Nolens on 31/01/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +#import "NavigationEventEmitter.h" +#import "Mammoth-Swift.h" + +#define NAVIGATION_EVENT @"NAVIGATION_EVENT" + +@implementation NavigationEventEmitter + +static NavigationEventEmitter *_globalNavigationEmitter = nil; + +RCT_EXPORT_MODULE(); + ++ (BOOL)requiresMainQueueSetup +{ + return YES; +} + +// Since the majority of work is UIKit work, main thread is required. +- (dispatch_queue_t)methodQueue +{ + return dispatch_get_main_queue(); +} + ++ (NavigationEventEmitter *)globalNavigationEmitter +{ + return _globalNavigationEmitter; +} + +- (instancetype)init +{ + if (self = [super init]) { + _globalNavigationEmitter = self; + [self setBridge:[[ReactBridge shared] bridge]]; + } + return self; +} + +- (void)publishEvent:(NSDictionary *)event +{ + [self sendEventWithName:NAVIGATION_EVENT body:event]; +} + +- (void)publishScreenChangeEvent:(ScreenChangeEvent)event rootTag:(nonnull NSNumber *)rootTag +{ + [self publishEvent:@{ + @"type": @"ScreenChangedEvent", + @"_reactTag": rootTag, + @"id": [self stringValue:event], + }]; +} + +- (NSArray *)supportedEvents { + return @[NAVIGATION_EVENT]; +} + +- (NSString*)stringValue:(ScreenChangeEvent)event { + switch(event) { + case ScreenChangeEventViewWillAppear: + return @"willAppear"; + case ScreenChangeEventViewDidAppear: + return @"didAppear"; + case ScreenChangeEventViewWillDisappear: + return @"willDisappear"; + case ScreenChangeEventViewDidDisappear: + return @"didDisappear"; + } +} + +@end diff --git a/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigatorModule.m b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigatorModule.m new file mode 100644 index 000000000..ab0afc7d0 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigatorModule.m @@ -0,0 +1,235 @@ +// +// NavigatorModule.m +// Mammoth +// +// Created by Benoit Nolens on 31/01/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +#import "Mammoth-Swift.h" +#import +#import +#import +#import +#import + +@import Foundation; + +@interface Navigator : NSObject +@property (nonnull, nonatomic, strong) NavigationRegistry *navigationRegistry; +@property (nonnull, nonatomic, copy) NSMutableArray *contentAppearedCallbacks; +@end + + +@implementation Navigator + +@synthesize bridge = _bridge; + +RCT_EXPORT_MODULE(); + +// Since the majority of work is UIKit work, main thread is required. +- (dispatch_queue_t)methodQueue +{ + return dispatch_get_main_queue(); +} + +- (instancetype)init +{ + if (self = [super init]) { + _navigationRegistry = [[NavigationRegistry alloc] init]; + _contentAppearedCallbacks = [NSMutableArray array]; + [self startObservers]; + } + return self; +} + +//See the invocation `updatedView` below for documentation. +- (void)startObservers +{ + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(rootViewEnteredHierarchy:) + name:RCTContentDidAppearNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(handleRNReload:) + name:RCTBridgeWillReloadNotification + object:nil]; +} + + +- (void)stopObservers +{ + [[NSNotificationCenter defaultCenter] removeObserver:self name:RCTContentDidAppearNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:RCTBridgeWillReloadNotification object:nil]; +} + ++ (BOOL)requiresMainQueueSetup +{ + return YES; +} + +- (void)dealloc +{ + [self stopObservers]; +} + +- (void)handleRNReload:(NSNotification *)note +{ + [_navigationRegistry _resetNavigation]; + _navigationRegistry = [[NavigationRegistry alloc] init]; + _contentAppearedCallbacks = [NSMutableArray array]; +} + +/** + * Observing RCTContentDidAppearNotification is the only way to know when the content rendered in + * the JS component has been added to the view hierarcy. `componentDidMount()` fires before the content has + * been added to the hierarcy so it is not a reliable way to know when the UIView is in the hierarchy. + * This is neccessary in order to properly obtain a references to the current Screen's ViewController, and thus it's NavigationController. + * The view/viewcontroller is identified as belonging to this Navigator by the reactTag of the *RCTRootView*. + * In our navigation stack, there is *only one* RCTRootView per UIViewController (ReactViewController). + */ +- (void)rootViewEnteredHierarchy:(NSNotification *)note +{ + RCTRootView *rootView = note.object; + if ([rootView isKindOfClass:[RCTRootView class]]) { + //Fire callbacks registered by JS. This let's JS know that we can now access + //the UIViewController and apply props to it. + for (RCTResponseSenderBlock callback in self.contentAppearedCallbacks) { + callback(@[[NSNull null]]); + } + [self.contentAppearedCallbacks removeAllObjects]; + } +} + +- (UIView *)getRootViewForReactTag:(NSNumber *)reactTag { + UIView *originatingView = [self.bridge.uiManager viewForReactTag:reactTag]; + UIView *rootView = originatingView; + while (rootView.superview && ![rootView isKindOfClass:RCTRootView.class]) { + rootView = rootView.superview; + } + return rootView; +} + +- (NavigationManager *)getManagerForReactTag:(NSNumber *)reactTag { + UIView *rootView = [self getRootViewForReactTag:reactTag]; + return [self.navigationRegistry navigationManagerForTag:[rootView.reactTag integerValue]]; +} + +/* Navigator.js add's a callback/subscriber to be notified when the RCTRootView _actually_ enter's + * the view hierarchy, and thus has a ViewController that we can apply props to (like title), and + * use it's .navigationController to push/pop. +*/ +RCT_EXPORT_METHOD(onRootViewEnteredHierarchy:(RCTResponseSenderBlock) callback) +{ + [self.contentAppearedCallbacks addObject:callback]; +} + +/** + * Attempt to find the RCTRootView. It is the top most view inside the viewcontroller. + * It contains all other ReactNative subviews. + * There is only 1 RCTRootView per 'ReactViewController', + * and it cannot be modified from within React/JS, so we want to ensure we + * only use this view's reactTag to identify our managers. Once we get this tag, register i + * to the navigationRegistry which creates or updates a NavigationManager with the supplied tag. + * eg. `reactTag` passed into this method is 15, and corresponds to a subview within the + * viewcontroller (typically this is the first view rendered within the `render` function. + * We want to traverse up the view hierarchy until we find the RCTRootView, and use THAT + * root view's tag in order to identify the navigation manager. The initial view with tag 15 + * is subject to change at any point within the render method, and this is not a + * reliable way to identify the managers + */ +RCT_EXPORT_METHOD(registerRootView:(nonnull NSNumber *)reactTag route:(NSDictionary *)route) +{ + NavigatorRoute *navRoute = [[NavigatorRoute alloc] initWithDictionary: route]; + // Ensure we find the root RCTRootView and use it's tag, not the tag passed into this method. + UIView *rootView = [self getRootViewForReactTag:reactTag]; + UIViewController *viewController = rootView.reactViewController; + if (viewController) { + [self.navigationRegistry updateWithTag:[rootView.reactTag integerValue] route:navRoute viewController:viewController]; + } +} + +RCT_EXPORT_METHOD(unregisterRootView:(nonnull NSNumber *)reactTag) +{ + NSNumber *rootTag = [self getRootViewForReactTag:reactTag].reactTag; + [self.navigationRegistry removeWithTag:[rootTag integerValue]]; +} + +RCT_EXPORT_METHOD(push:(nonnull NSDictionary *)route fromReactTag:(nonnull NSNumber *)fromReactTag) +{ + // Setup new viewcontroller to push + ReactViewController *vc = [self createViewControllerForNavigatorFromRoute: route]; + + UIView *rootView = [self getRootViewForReactTag:fromReactTag]; + NavigationManager *manager = [self.navigationRegistry navigationManagerForTag:[rootView.reactTag integerValue]]; + UINavigationController *navController = manager.viewController.navigationController; + if (navController) { + [navController pushViewController:vc animated:YES]; + } +} + +RCT_EXPORT_METHOD(pop:(nonnull NSNumber *)animated fromReactTag:(nonnull NSNumber *)fromReactTag) +{ + UIView *rootView = [self getRootViewForReactTag:fromReactTag]; + NavigationManager *manager = [self.navigationRegistry navigationManagerForTag:[rootView.reactTag integerValue]]; + UINavigationController *navController = manager.viewController.navigationController; + if (navController) { + [navController popViewControllerAnimated:[animated boolValue]]; + } +} + +RCT_EXPORT_METHOD(present:(nonnull NSDictionary *)route fromReactTag:(nonnull NSNumber *)fromReactTag) +{ + // Setup new viewcontroller to present + ReactViewController *newVC = [self createViewControllerForNavigatorFromRoute: route]; + NavigationManager *presentedManager = [self.navigationRegistry navigationManagerForTag:newVC.reactTag.integerValue]; + + // Presenting ViewController + NSInteger rootViewTag = [[[self getRootViewForReactTag:fromReactTag] reactTag] integerValue]; + NavigationManager *manager = [self.navigationRegistry navigationManagerForTag:rootViewTag]; + + UIViewController *presentingVC = manager.viewController; + if (presentingVC) { + UINavigationController *presentedNavController = [[UINavigationController alloc] initWithRootViewController:newVC]; + if ([[presentedManager route] objc_useTransparentBackground] == YES) { + presentedNavController.modalPresentationStyle = UIModalPresentationOverCurrentContext; + } + [presentingVC presentViewController:presentedNavController animated:YES completion:nil]; + } +} + +RCT_EXPORT_METHOD(getBottomEdgeInsetFromReactTag:(nonnull NSNumber *)fromReactTag callback:(RCTResponseSenderBlock)callback) +{ + NSInteger rootViewTag = [[[self getRootViewForReactTag:fromReactTag] reactTag] integerValue]; + NavigationManager *manager = [self.navigationRegistry navigationManagerForTag:rootViewTag]; + ReactViewController *viewController = manager.viewController; + + if (viewController) { + if (@available(iOS 11.0, *)) { + callback(@[@{@"bottomInset": @(viewController.view.safeAreaInsets.bottom)}]); + } else { + callback(@[@{@"bottomInset": @(0)}]); + } + } +} + +RCT_EXPORT_METHOD(dismissFromReactTag:(nonnull NSNumber *)fromReactTag) +{ + NSInteger rootViewTag = [[[self getRootViewForReactTag:fromReactTag] reactTag] integerValue]; + NavigationManager *manager = [self.navigationRegistry navigationManagerForTag:rootViewTag]; + UIViewController *presentingVC = manager.viewController; + if (presentingVC) { + [presentingVC dismissViewControllerAnimated:true completion:nil]; + } +} + +- (ReactViewController *)createViewControllerForNavigatorFromRoute:(NSDictionary *)route +{ + NavigatorRoute *navRoute = [[NavigatorRoute alloc] initWithDictionary: route]; + ReactViewController *vc = [[ReactViewController alloc] initWithModuleName:navRoute.routeId initialProperties:route]; + [self.navigationRegistry updateWithTag:[vc.reactTag integerValue] route:navRoute viewController:vc]; + return vc; +} + +@end + + diff --git a/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigatorRegistry.swift b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigatorRegistry.swift new file mode 100644 index 000000000..2e7cc38bd --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/NavigatorRegistry.swift @@ -0,0 +1,279 @@ +// +// NavigatorManager.swift +// Mammoth +// +// Created by Benoit Nolens on 31/01/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +import Foundation + +@objc(NavigationManager) +class NavigationManager: NSObject { + + @objc var route: NavigatorRoute { + didSet { applyRoute() } + } + + // Weak to prevent a retain cycle preventing the VC from deallocing. + // This class is held indirectly by the life cycle of the ViewController. + @objc weak var viewController: ReactViewController? = nil { + didSet { applyRoute() } + } + + init(route: NavigatorRoute, viewController: ReactViewController? = nil ) { + self.route = route + self.viewController = viewController + super.init() + applyRoute() + } + + func updateRoute(route: NavigatorRoute, viewController: ReactViewController?) { + self.route = route + self.viewController = viewController + } + + func navigationController() -> UINavigationController? { + return viewController?.navigationController + } + + func applyRoute() { + if let title = route.title { + viewController?.title = title + } + if let hidesBottomBarWhenPushed = route.hidesBottomBarWhenPushed { + viewController?.hidesBottomBarWhenPushed = hidesBottomBarWhenPushed + } + if let navigationBar = route.navigationBar { + viewController?.navigationController?.setNavigationBarHidden(navigationBar.hidden, animated: navigationBar.animated) + } + if let leftButtons = route.leftButtons { + viewController?.navigationItem.leftBarButtonItems = leftButtons.barButtonItems(target: self, action: #selector(buttonPressed(button:))) + } + if let rightButtons = route.rightButtons { + viewController?.navigationItem.rightBarButtonItems = rightButtons.barButtonItems(target: self, action: #selector(buttonPressed(button:))) + } + + if let navigationItem = route.titleView { + let rctView = RCTRootView(bridge: ReactBridge.shared.bridge, moduleName: navigationItem, initialProperties: [:]) + let frame = viewController?.navigationController?.navigationBar.bounds ?? CGRect.zero + let customTitleView = RCCCustomTitleView(frame: frame, subView: rctView, alignment: "center") + viewController?.navigationItem.titleView = customTitleView + } + + if let _ = route.useTransparentBackground { + viewController?.view.backgroundColor = .clear + viewController?.reactView.backgroundColor = .clear + } + } + + @objc func buttonPressed(button: UIBarButtonItem) { + + guard let navigationButton = button.navigationButton else { + return + } + + let event = [ + "type": "NavBarButtonPress", + "id" : navigationButton.id + ] + + NavigationEventEmitter.globalNavigation()?.publishEvent(event) + } +} + + + +@objc(NavigationRegistry) +class NavigationRegistry: NSObject { + + @objc static public var ActiveRegistry: NavigationRegistry? + + override init() { + super.init() + NavigationRegistry.ActiveRegistry = self + } + + private var registry: [Int: NavigationManager] = [:] + + func updateManager(tag: Int, viewController: ReactViewController?) { + if let existingManager = navigationManager(forTag: tag) { + existingManager.viewController = viewController + } + } + + @objc func update(tag: Int, route: NavigatorRoute, viewController: ReactViewController?) { + if let existingManager = navigationManager(forTag: tag) { + existingManager.updateRoute(route: route, viewController: viewController) + } else { + registry[tag] = NavigationManager(route: route, viewController: viewController) + } + } + + @objc func remove(tag: Int) { + registry.removeValue(forKey: tag) + } + + @objc func navigationManager(forTag tag: Int) -> NavigationManager? { + return registry[tag] + } + + // Debug-time only function. Called when RN hard-reloads + @objc func _resetNavigation() { + registry.keys.forEach { (key) in + let manager: NavigationManager? = registry[key] + manager?.viewController?.dismiss(animated: false, completion: nil) + manager?.navigationController()?.popToRootViewController(animated: false) + } + } +} + +@objc(NavigatorRoute) +class NavigatorRoute: NSObject { + + struct ReactKeys { + static let routeId = "id" + static let title = "title" + static let titleView = "titleView" + static let hidesBottomBarWhenPushed = "hidesBottomBarWhenPushed" + static let leftButtons = "leftButtons" + static let rightButtons = "rightButtons" + static let navigationBar = "navigationBar" + static let useTransparentBackground = "useTransparentBackground" + } + + @objc var routeId: String? + var title: String? + var titleView: String? + var hidesBottomBarWhenPushed: Bool? + var navigationBar: (hidden: Bool, animated: Bool)? + var leftButtons: Array? + var rightButtons: Array? + var useTransparentBackground: Bool? + + @objc init(dictionary: [String: Any]) { + super.init() + self.routeId = dictionary[ReactKeys.routeId] as? String + self.title = dictionary[ReactKeys.title] as? String + self.titleView = dictionary[ReactKeys.titleView] as? String + self.hidesBottomBarWhenPushed = dictionary[ReactKeys.hidesBottomBarWhenPushed] as? Bool + self.navigationBar = dictionary.navigationBar() + self.leftButtons = dictionary.leftButtons() + self.rightButtons = dictionary.rightButtons() + self.useTransparentBackground = dictionary[ReactKeys.useTransparentBackground] as? Bool + } + + //Obj-C Compatability + @objc var objc_useTransparentBackground: Bool { + if let useTransparentBackground = self.useTransparentBackground { + return useTransparentBackground + } + return false; + } +} + +private extension Dictionary where Key == String, Value: Any { + func navigationBar() -> (hidden: Bool, animated: Bool)? { + if let hidesNav = self[NavigatorRoute.ReactKeys.navigationBar] as? [String: Bool], + let visible = hidesNav["hidden"], + let animated = hidesNav["animated"] { + return (visible, animated) + } else { + return nil + } + } + + func leftButtons() -> Array? { + guard let buttons = self[NavigatorRoute.ReactKeys.leftButtons] as? Array<[String: Any]> else { + return nil + } + return buttons.map{ (dict: [String: Any]) -> NavigationButton in + return NavigationButton(dictionary: dict) + } + } + + func rightButtons() -> Array? { + guard let buttons = self[NavigatorRoute.ReactKeys.rightButtons] as? Array<[String: Any]> else { + return nil + } + return buttons.map{ (dict: [String: Any]) -> NavigationButton in + return NavigationButton(dictionary: dict) + } + } +} + + +struct NavigationButton { + let id: String + let title: String + let disabled: Bool + let color: String + let customView: String? // Name of the custom component if supplied + let image: UIImage? + + init(dictionary: [String: Any]) { + self.id = dictionary["id"] as? String ?? "" + self.title = dictionary["title"] as? String ?? "" + self.disabled = dictionary["disabled"] as? Bool ?? false + self.color = dictionary["color"] as? String ?? "" + self.customView = dictionary["component"] as? String ?? nil + if let imageData = dictionary["image"] { + let image = RCTConvert.uiImage(imageData) + self.image = image + } else { + self.image = nil + } + } +} + +extension Array where Element == NavigationButton { + + func barButtonItems(target: NSObject, action: Selector) -> Array { + return self.map{ (navigationButton: NavigationButton) -> UIBarButtonItem in + + let item = UIBarButtonItem(title: navigationButton.title, + style: UIBarButtonItem.Style.plain, + target: target, + action: action); + // Check if a custom component/view was passed + if let customViewName = navigationButton.customView { + let rctView = RCTRootView(bridge: ReactBridge.shared.bridge, moduleName: customViewName, initialProperties: [:]) + let frame = rctView.frame + let customView = RCCCustomTitleView(frame: frame, subView: rctView, alignment: "center") + if let customView = customView { + item.customView = customView + } + } + + // Check for an Image + if let image = navigationButton.image { + item.image = image + } + + item.isEnabled = !navigationButton.disabled + if let color = UIColor.init(hexString: navigationButton.color) { + item.setTitleTextAttributes([.foregroundColor: color], for: .normal) + item.setTitleTextAttributes([.foregroundColor: color], for: .highlighted) + } + item.navigationButton = navigationButton + return item + } + } +} + +/** + * Associate the NavigationButton data w the UIBarButtonItem to accomodate + * for how target-action works in cocoa. This allows us to identify + * which UIBarButtonItem has been tapped. + * */ +private var AssociatedObjectHandle: UInt8 = 0 +private extension UIBarButtonItem { + var navigationButton: NavigationButton? { + get { + return objc_getAssociatedObject(self, &AssociatedObjectHandle) as? NavigationButton + } + set { + objc_setAssociatedObject(self, &AssociatedObjectHandle, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) + } + } +} diff --git a/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/RCCCustomTitleView.h b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/RCCCustomTitleView.h new file mode 100644 index 000000000..c6fdc55d9 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/RCCCustomTitleView.h @@ -0,0 +1,21 @@ +// +// RCCTitleView.h +// Mammoth +// +// Created by Benoit Nolens on 31/01/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +// This class is taken from Wix ReactNativeNavigation +// It serves as a wrapper around custom RCTRootViews + +#import +#import +#import + +@interface RCCCustomTitleView : UIView + +- (instancetype)initWithFrame:(CGRect)frame subView:(RCTRootView*)subView alignment:(NSString*)alignment; +- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator; + +@end diff --git a/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/RCCCustomTitleView.m b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/RCCCustomTitleView.m new file mode 100644 index 000000000..73b583956 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/RCCCustomTitleView.m @@ -0,0 +1,74 @@ +// +// RCCTitleView.m +// Mammoth +// +// Created by Benoit Nolens on 31/01/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +#import "RCCCustomTitleView.h" + +@interface RCCCustomTitleView () + +@property (nonatomic, strong) RCTRootView *subView; +@property (nonatomic, strong) NSString *alignment; + +@end + +@implementation RCCCustomTitleView + +- (instancetype)initWithFrame:(CGRect)frame subView:(RCTRootView*)subView alignment:(NSString*)alignment { + self = [super init]; + + if (self) { + self.subView = subView; + self.alignment = alignment; + + self.backgroundColor = [UIColor clearColor]; + self.subView.backgroundColor = [UIColor clearColor]; + + if ([alignment isEqualToString:@"fill"]) { + self.frame = frame; + subView.sizeFlexibility = RCTRootViewSizeFlexibilityNone; + } else { + self.subView.delegate = self; + subView.sizeFlexibility = RCTRootViewSizeFlexibilityWidthAndHeight; + } + + [self addSubview:subView]; + } + + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + if ([self.alignment isEqualToString:@"fill"]) { + [self.subView setFrame:self.bounds]; + } +} + +- (NSString *)alignment { + return _alignment ? _alignment : @"center"; +} + +- (void)rootViewDidChangeIntrinsicSize:(RCTRootView *)rootView { + if ([self.alignment isEqualToString:@"center"]) { + [self setFrame:CGRectMake(self.frame.origin.x - rootView.intrinsicContentSize.width / 2, self.frame.origin.y - rootView.intrinsicContentSize.height / 2, rootView.intrinsicContentSize.width, rootView.intrinsicContentSize.height)]; + [self.subView setFrame:CGRectMake(0, 0, rootView.intrinsicContentSize.width, rootView.intrinsicContentSize.height)]; + } +} + +- (void) viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator { + // whenever the orientation changes this runs + // and sets the nav bar item width to the new size width + CGRect newFrame = self.frame; + + if (newFrame.size.width < size.width) { + newFrame.size.width = size.width; + newFrame.origin.x = 0; + } + [super setFrame:newFrame]; +} + +@end diff --git a/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/ReactBridge.swift b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/ReactBridge.swift new file mode 100644 index 000000000..895e60777 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/ReactBridge.swift @@ -0,0 +1,32 @@ +// +// ReactBridge.swift +// Mammoth +// +// Created by Benoit Nolens on 31/01/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +import Foundation +import React + +class ReactBridge: NSObject { + @objc static let shared = ReactBridge() + + @objc public lazy var bridge: RCTBridge = { + guard let bridge = RCTBridge(delegate: self, launchOptions: nil) else { + fatalError("Unable to instantiate RCTBridge") + } + return bridge + }() +} + +extension ReactBridge: RCTBridgeDelegate { + + func sourceURL(for bridge: RCTBridge!) -> URL! { + return RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index") + } + + func viewForModule(_ moduleName: String, initialProperties: [String : Any]?) -> RCTRootView { + return RCTRootView(bridge: self.bridge, moduleName: moduleName, initialProperties: initialProperties) + } +} diff --git a/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/ReactViewController.swift b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/ReactViewController.swift new file mode 100644 index 000000000..3e8ca7ab4 --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/ReactViewController.swift @@ -0,0 +1,65 @@ +// +// ReactViewController.swift +// Mammoth +// +// Created by Benoit Nolens on 31/01/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +import UIKit +import React + +@objc(ReactViewController) +class ReactViewController: UIViewController { + + private let moduleName: String + var reactView: RCTRootView! + let initialProps:[String : Any]? + + @objc var reactTag: NSNumber { + return reactView.reactTag + } + + override func loadView() { + super.loadView() + self.reactView = ReactBridge.shared.viewForModule(self.moduleName, initialProperties: self.initialProps) + self.reactView.setReactViewController(self) + self.view = self.reactView + } + + @objc init(moduleName: String, initialProperties: [String : Any]? = nil) { + self.moduleName = moduleName + self.initialProps = initialProperties + super.init(nibName: nil, bundle: nil) + self.view.backgroundColor = .custom.background + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + NavigationEventEmitter.globalNavigation()?.publishScreenChangeEvent(.viewWillAppear, rootTag: self.reactTag) + // Natively handle hiding showing nav bar so it is immediate. + if let navBarProps = self.initialProps?["navigationBar"] as? [String: Any], let hidden = navBarProps["hidden"] as? Bool { + let animated = navBarProps["animated"] as? Bool ?? false + self.navigationController?.setNavigationBarHidden(hidden, animated: animated) + } + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + NavigationEventEmitter.globalNavigation()?.publishScreenChangeEvent(.viewDidAppear, rootTag: self.reactTag) + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + NavigationEventEmitter.globalNavigation()?.publishScreenChangeEvent(.viewWillDisappear, rootTag: self.reactTag) + } + + override func viewDidDisappear(_ animated: Bool) { + super.viewDidDisappear(animated) + NavigationEventEmitter.globalNavigation()?.publishScreenChangeEvent(.viewDidDisappear, rootTag: self.reactTag) + } +} diff --git a/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/UIColor+Hex.h b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/UIColor+Hex.h new file mode 100644 index 000000000..b4dd3c3fb --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/UIColor+Hex.h @@ -0,0 +1,25 @@ +// +// UIColor+Hex.h +// Mammoth +// +// Created by Benoit Nolens on 31/01/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +#import + +/** + * Taken from: https://github.com/thisandagain/color/tree/master/EDColor + * Unbundled to fit into our framework + */ +@interface UIColor (Hex) + ++ (UIColor *)colorWithHex:(UInt32)hex andAlpha:(CGFloat)alpha; + ++ (UIColor *)colorWithHex:(UInt32)hex; + ++ (UIColor *)colorWithHexString:(id)input; + +- (UInt32)hexValue; + +@end diff --git a/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/UIColor+Hex.m b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/UIColor+Hex.m new file mode 100644 index 000000000..3c3edfecf --- /dev/null +++ b/ios/Mammoth/Utils/ReactHelpers/NativeNavigationLibrary/UIColor+Hex.m @@ -0,0 +1,116 @@ +// +// UIColor+Hex.m +// Mammoth +// +// Created by Benoit Nolens on 31/01/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +#import "UIColor+Hex.h" + +@implementation UIColor (Hex) + + +/** + * Creates a new UIColor instance using a hex input and alpha value. + * + * @param hex Hex + * @param alpha Alpha + * + * @return {UIColor} + */ ++ (UIColor *)colorWithHex:(UInt32)hex andAlpha:(CGFloat)alpha +{ + int r = (hex >> 16) & 0xFF; + int g = (hex >> 8) & 0xFF; + int b = (hex) & 0xFF; + + return [UIColor colorWithRed:r / 255.0f + green:g / 255.0f + blue:b / 255.0f + alpha:alpha]; +} + +/** + * Creates a new UIColor instance using a hex input. + * + * @param hex Hex + * + * @return {UIColor} + */ ++ (UIColor *)colorWithHex:(UInt32)hex +{ + return [self colorWithHex:hex andAlpha:1.0]; +} + +/** + * Creates a new UIColor instance using a hex string input. + * + * @param hexString Hex string (ie: @"ff", @"#fff", @"ff0000", or @"ff00ffcc") + * + * @return an instance of UIColor + */ ++ (UIColor *)colorWithHexString:(id)hexString +{ + if (![hexString isKindOfClass:[NSString class]] || [hexString length] == 0) { + return [UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:1.0f]; + } + + const char *s = [hexString cStringUsingEncoding:NSASCIIStringEncoding]; + if (*s == '#') { + ++s; + } + unsigned long long value = strtoll(s, nil, 16); + int r, g, b, a; + switch (strlen(s)) { + case 2: + // xx + r = g = b = (int)value; + a = 255; + break; + case 3: + // RGB + r = ((value & 0xf00) >> 8); + g = ((value & 0x0f0) >> 4); + b = ((value & 0x00f) >> 0); + r = r * 16 + r; + g = g * 16 + g; + b = b * 16 + b; + a = 255; + break; + case 6: + // RRGGBB + r = (value & 0xff0000) >> 16; + g = (value & 0x00ff00) >> 8; + b = (value & 0x0000ff) >> 0; + a = 255; + break; + default: + // RRGGBBAA + r = (value & 0xff000000) >> 24; + g = (value & 0x00ff0000) >> 16; + b = (value & 0x0000ff00) >> 8; + a = (value & 0x000000ff) >> 0; + break; + } + return [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a/255.0f]; +} + +/** + * Returns the hex value of the receiver. Alpha value is not included. + * + * @return {UInt32} + */ +- (UInt32)hexValue +{ + CGFloat r,g,b,a; + [self getRed:&r green:&g blue:&b alpha:&a]; + + UInt32 ri = r*255.0; + UInt32 gi = g*255.0; + UInt32 bi = b*255.0; + + return (ri<<16) + (gi<<8) + bi; +} + +@end diff --git a/Mammoth/Utils/SDImageTransformers.swift b/ios/Mammoth/Utils/SDImageTransformers.swift similarity index 100% rename from Mammoth/Utils/SDImageTransformers.swift rename to ios/Mammoth/Utils/SDImageTransformers.swift diff --git a/Mammoth/Utils/SettingsIcons.swift b/ios/Mammoth/Utils/SettingsIcons.swift similarity index 100% rename from Mammoth/Utils/SettingsIcons.swift rename to ios/Mammoth/Utils/SettingsIcons.swift diff --git a/Mammoth/Utils/UndoStruct.swift b/ios/Mammoth/Utils/UndoStruct.swift similarity index 100% rename from Mammoth/Utils/UndoStruct.swift rename to ios/Mammoth/Utils/UndoStruct.swift diff --git a/Mammoth/Utils/UserActions.swift b/ios/Mammoth/Utils/UserActions.swift similarity index 100% rename from Mammoth/Utils/UserActions.swift rename to ios/Mammoth/Utils/UserActions.swift diff --git a/Mammoth/Views/AccountSwitcherButton.swift b/ios/Mammoth/Views/AccountSwitcherButton.swift similarity index 100% rename from Mammoth/Views/AccountSwitcherButton.swift rename to ios/Mammoth/Views/AccountSwitcherButton.swift diff --git a/Mammoth/Views/AnimatedTabBar.swift b/ios/Mammoth/Views/AnimatedTabBar.swift similarity index 100% rename from Mammoth/Views/AnimatedTabBar.swift rename to ios/Mammoth/Views/AnimatedTabBar.swift diff --git a/Mammoth/Views/BlurredBackground.swift b/ios/Mammoth/Views/BlurredBackground.swift similarity index 100% rename from Mammoth/Views/BlurredBackground.swift rename to ios/Mammoth/Views/BlurredBackground.swift diff --git a/Mammoth/Views/CarouselNavigationHeader.swift b/ios/Mammoth/Views/CarouselNavigationHeader.swift similarity index 100% rename from Mammoth/Views/CarouselNavigationHeader.swift rename to ios/Mammoth/Views/CarouselNavigationHeader.swift diff --git a/Mammoth/Views/Cells/ActivityCardCell/ActivityCardCell.swift b/ios/Mammoth/Views/Cells/ActivityCardCell/ActivityCardCell.swift similarity index 100% rename from Mammoth/Views/Cells/ActivityCardCell/ActivityCardCell.swift rename to ios/Mammoth/Views/Cells/ActivityCardCell/ActivityCardCell.swift diff --git a/Mammoth/Views/Cells/ActivityCardCell/ActivityCardHeader.swift b/ios/Mammoth/Views/Cells/ActivityCardCell/ActivityCardHeader.swift similarity index 100% rename from Mammoth/Views/Cells/ActivityCardCell/ActivityCardHeader.swift rename to ios/Mammoth/Views/Cells/ActivityCardCell/ActivityCardHeader.swift diff --git a/Mammoth/Views/Cells/AltTextCell.swift b/ios/Mammoth/Views/Cells/AltTextCell.swift similarity index 100% rename from Mammoth/Views/Cells/AltTextCell.swift rename to ios/Mammoth/Views/Cells/AltTextCell.swift diff --git a/Mammoth/Views/Cells/ChannelCell.swift b/ios/Mammoth/Views/Cells/ChannelCell.swift similarity index 100% rename from Mammoth/Views/Cells/ChannelCell.swift rename to ios/Mammoth/Views/Cells/ChannelCell.swift diff --git a/Mammoth/Views/Cells/ChannelSummaryCell.swift b/ios/Mammoth/Views/Cells/ChannelSummaryCell.swift similarity index 100% rename from Mammoth/Views/Cells/ChannelSummaryCell.swift rename to ios/Mammoth/Views/Cells/ChannelSummaryCell.swift diff --git a/Mammoth/Views/Cells/CollectionImageCell.swift b/ios/Mammoth/Views/Cells/CollectionImageCell.swift similarity index 100% rename from Mammoth/Views/Cells/CollectionImageCell.swift rename to ios/Mammoth/Views/Cells/CollectionImageCell.swift diff --git a/Mammoth/Views/Cells/ComposeCell.swift b/ios/Mammoth/Views/Cells/ComposeCell.swift similarity index 100% rename from Mammoth/Views/Cells/ComposeCell.swift rename to ios/Mammoth/Views/Cells/ComposeCell.swift diff --git a/Mammoth/Views/Cells/ComposeQuotePostCell.swift b/ios/Mammoth/Views/Cells/ComposeQuotePostCell.swift similarity index 100% rename from Mammoth/Views/Cells/ComposeQuotePostCell.swift rename to ios/Mammoth/Views/Cells/ComposeQuotePostCell.swift diff --git a/Mammoth/Views/Cells/DetailActionsCell.swift b/ios/Mammoth/Views/Cells/DetailActionsCell.swift similarity index 100% rename from Mammoth/Views/Cells/DetailActionsCell.swift rename to ios/Mammoth/Views/Cells/DetailActionsCell.swift diff --git a/Mammoth/Views/Cells/DetailCell.swift b/ios/Mammoth/Views/Cells/DetailCell.swift similarity index 100% rename from Mammoth/Views/Cells/DetailCell.swift rename to ios/Mammoth/Views/Cells/DetailCell.swift diff --git a/Mammoth/Views/Cells/DetailFooterCell.swift b/ios/Mammoth/Views/Cells/DetailFooterCell.swift similarity index 100% rename from Mammoth/Views/Cells/DetailFooterCell.swift rename to ios/Mammoth/Views/Cells/DetailFooterCell.swift diff --git a/Mammoth/Views/Cells/DetailImageCell.swift b/ios/Mammoth/Views/Cells/DetailImageCell.swift similarity index 100% rename from Mammoth/Views/Cells/DetailImageCell.swift rename to ios/Mammoth/Views/Cells/DetailImageCell.swift diff --git a/Mammoth/Views/Cells/DetailImageView.swift b/ios/Mammoth/Views/Cells/DetailImageView.swift similarity index 100% rename from Mammoth/Views/Cells/DetailImageView.swift rename to ios/Mammoth/Views/Cells/DetailImageView.swift diff --git a/Mammoth/Views/Cells/DetailView.swift b/ios/Mammoth/Views/Cells/DetailView.swift similarity index 100% rename from Mammoth/Views/Cells/DetailView.swift rename to ios/Mammoth/Views/Cells/DetailView.swift diff --git a/Mammoth/Views/Cells/EditedFooterCell.swift b/ios/Mammoth/Views/Cells/EditedFooterCell.swift similarity index 100% rename from Mammoth/Views/Cells/EditedFooterCell.swift rename to ios/Mammoth/Views/Cells/EditedFooterCell.swift diff --git a/Mammoth/Views/Cells/EmptyFeedCell.swift b/ios/Mammoth/Views/Cells/EmptyFeedCell.swift similarity index 100% rename from Mammoth/Views/Cells/EmptyFeedCell.swift rename to ios/Mammoth/Views/Cells/EmptyFeedCell.swift diff --git a/Mammoth/Views/Cells/ErrorCell.swift b/ios/Mammoth/Views/Cells/ErrorCell.swift similarity index 100% rename from Mammoth/Views/Cells/ErrorCell.swift rename to ios/Mammoth/Views/Cells/ErrorCell.swift diff --git a/Mammoth/Views/Cells/FeedEditorCell.swift b/ios/Mammoth/Views/Cells/FeedEditorCell.swift similarity index 100% rename from Mammoth/Views/Cells/FeedEditorCell.swift rename to ios/Mammoth/Views/Cells/FeedEditorCell.swift diff --git a/Mammoth/Views/Cells/HashtagCell.swift b/ios/Mammoth/Views/Cells/HashtagCell.swift similarity index 100% rename from Mammoth/Views/Cells/HashtagCell.swift rename to ios/Mammoth/Views/Cells/HashtagCell.swift diff --git a/Mammoth/Views/Cells/ImagePreviewCell.swift b/ios/Mammoth/Views/Cells/ImagePreviewCell.swift similarity index 100% rename from Mammoth/Views/Cells/ImagePreviewCell.swift rename to ios/Mammoth/Views/Cells/ImagePreviewCell.swift diff --git a/Mammoth/Views/Cells/InstanceCell.swift b/ios/Mammoth/Views/Cells/InstanceCell.swift similarity index 100% rename from Mammoth/Views/Cells/InstanceCell.swift rename to ios/Mammoth/Views/Cells/InstanceCell.swift diff --git a/Mammoth/Views/Cells/LoadMoreCell.swift b/ios/Mammoth/Views/Cells/LoadMoreCell.swift similarity index 100% rename from Mammoth/Views/Cells/LoadMoreCell.swift rename to ios/Mammoth/Views/Cells/LoadMoreCell.swift diff --git a/Mammoth/Views/Cells/LoadingCell.swift b/ios/Mammoth/Views/Cells/LoadingCell.swift similarity index 100% rename from Mammoth/Views/Cells/LoadingCell.swift rename to ios/Mammoth/Views/Cells/LoadingCell.swift diff --git a/Mammoth/Views/Cells/MessageCell.swift b/ios/Mammoth/Views/Cells/MessageCell.swift similarity index 100% rename from Mammoth/Views/Cells/MessageCell.swift rename to ios/Mammoth/Views/Cells/MessageCell.swift diff --git a/Mammoth/Views/Cells/MessageDisclaimerCell.swift b/ios/Mammoth/Views/Cells/MessageDisclaimerCell.swift similarity index 100% rename from Mammoth/Views/Cells/MessageDisclaimerCell.swift rename to ios/Mammoth/Views/Cells/MessageDisclaimerCell.swift diff --git a/Mammoth/Views/Cells/NoResultsCell.swift b/ios/Mammoth/Views/Cells/NoResultsCell.swift similarity index 100% rename from Mammoth/Views/Cells/NoResultsCell.swift rename to ios/Mammoth/Views/Cells/NoResultsCell.swift diff --git a/Mammoth/Views/Cells/PlainButtonCell.swift b/ios/Mammoth/Views/Cells/PlainButtonCell.swift similarity index 100% rename from Mammoth/Views/Cells/PlainButtonCell.swift rename to ios/Mammoth/Views/Cells/PlainButtonCell.swift diff --git a/Mammoth/Views/Cells/PollCell.swift b/ios/Mammoth/Views/Cells/PollCell.swift similarity index 100% rename from Mammoth/Views/Cells/PollCell.swift rename to ios/Mammoth/Views/Cells/PollCell.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardCell.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardCell.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardCell.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardCell.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardFooter.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardFooter.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardFooter.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardFooter.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardHeader.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardHeader.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardHeader.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardHeader.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardHeaderExtension.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardHeaderExtension.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardHeaderExtension.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardHeaderExtension.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardImage.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardImage.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardImage.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardImage.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardImageAttachment.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardImageAttachment.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardImageAttachment.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardImageAttachment.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardImageCollectionCell.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardImageCollectionCell.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardImageCollectionCell.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardImageCollectionCell.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardImageCollectionCellSmall.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardImageCollectionCellSmall.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardImageCollectionCellSmall.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardImageCollectionCellSmall.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardLinkPreview.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardLinkPreview.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardLinkPreview.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardLinkPreview.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardMediaGallery.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardMediaGallery.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardMediaGallery.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardMediaGallery.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardMediaStack.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardMediaStack.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardMediaStack.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardMediaStack.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardMetadata.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardMetadata.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardMetadata.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardMetadata.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardPoll.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardPoll.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardPoll.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardPoll.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardProfilePic.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardProfilePic.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardProfilePic.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardProfilePic.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardQuotePost.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardQuotePost.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardQuotePost.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardQuotePost.swift diff --git a/Mammoth/Views/Cells/PostCardCell/PostCardVideo.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardVideo.swift similarity index 100% rename from Mammoth/Views/Cells/PostCardCell/PostCardVideo.swift rename to ios/Mammoth/Views/Cells/PostCardCell/PostCardVideo.swift diff --git a/ios/Mammoth/Views/Cells/PostCardCell/PostCardView.swift b/ios/Mammoth/Views/Cells/PostCardCell/PostCardView.swift new file mode 100644 index 000000000..8b2478337 --- /dev/null +++ b/ios/Mammoth/Views/Cells/PostCardCell/PostCardView.swift @@ -0,0 +1,46 @@ +// +// PostCardView.swift +// Mammoth +// +// Created by Benoit Nolens on 01/02/2024 +// Copyright © 2024 The BLVD. All rights reserved. +// + +import UIKit + +@objc class PostCardView: UIView { + + @objc public var viewHeight: CGFloat { + self.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height + } + + private let label: UILabel = { + let label = UILabel() + label.translatesAutoresizingMaskIntoConstraints = false + return label + }() + + override init(frame: CGRect) { + super.init(frame: frame) + self.setupUI() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} + +private extension PostCardView { + func setupUI() { + self.addSubview(label) + label.pinEdges() + } +} + +@objc extension PostCardView { + func configure(text: String) { + DispatchQueue.main.async { + self.label.text = text + } + } +} diff --git a/Mammoth/Views/Cells/PostCell.swift b/ios/Mammoth/Views/Cells/PostCell.swift similarity index 100% rename from Mammoth/Views/Cells/PostCell.swift rename to ios/Mammoth/Views/Cells/PostCell.swift diff --git a/Mammoth/Views/Cells/PostView.swift b/ios/Mammoth/Views/Cells/PostView.swift similarity index 100% rename from Mammoth/Views/Cells/PostView.swift rename to ios/Mammoth/Views/Cells/PostView.swift diff --git a/Mammoth/Views/Cells/ProfileCell.swift b/ios/Mammoth/Views/Cells/ProfileCell.swift similarity index 100% rename from Mammoth/Views/Cells/ProfileCell.swift rename to ios/Mammoth/Views/Cells/ProfileCell.swift diff --git a/Mammoth/Views/Cells/ProfileNoteCell.swift b/ios/Mammoth/Views/Cells/ProfileNoteCell.swift similarity index 100% rename from Mammoth/Views/Cells/ProfileNoteCell.swift rename to ios/Mammoth/Views/Cells/ProfileNoteCell.swift diff --git a/Mammoth/Views/Cells/QuotePostHostView.swift b/ios/Mammoth/Views/Cells/QuotePostHostView.swift similarity index 100% rename from Mammoth/Views/Cells/QuotePostHostView.swift rename to ios/Mammoth/Views/Cells/QuotePostHostView.swift diff --git a/Mammoth/Views/Cells/QuotePostMutedView.swift b/ios/Mammoth/Views/Cells/QuotePostMutedView.swift similarity index 100% rename from Mammoth/Views/Cells/QuotePostMutedView.swift rename to ios/Mammoth/Views/Cells/QuotePostMutedView.swift diff --git a/Mammoth/Views/Cells/QuotePostMutedView.xib b/ios/Mammoth/Views/Cells/QuotePostMutedView.xib similarity index 100% rename from Mammoth/Views/Cells/QuotePostMutedView.xib rename to ios/Mammoth/Views/Cells/QuotePostMutedView.xib diff --git a/Mammoth/Views/Cells/RepostButtonView.swift b/ios/Mammoth/Views/Cells/RepostButtonView.swift similarity index 100% rename from Mammoth/Views/Cells/RepostButtonView.swift rename to ios/Mammoth/Views/Cells/RepostButtonView.swift diff --git a/Mammoth/Views/Cells/SelectionCell.swift b/ios/Mammoth/Views/Cells/SelectionCell.swift similarity index 100% rename from Mammoth/Views/Cells/SelectionCell.swift rename to ios/Mammoth/Views/Cells/SelectionCell.swift diff --git a/Mammoth/Views/Cells/ServerOverloadCell.swift b/ios/Mammoth/Views/Cells/ServerOverloadCell.swift similarity index 100% rename from Mammoth/Views/Cells/ServerOverloadCell.swift rename to ios/Mammoth/Views/Cells/ServerOverloadCell.swift diff --git a/Mammoth/Views/Cells/ServerUpdatedCell.swift b/ios/Mammoth/Views/Cells/ServerUpdatedCell.swift similarity index 100% rename from Mammoth/Views/Cells/ServerUpdatedCell.swift rename to ios/Mammoth/Views/Cells/ServerUpdatedCell.swift diff --git a/Mammoth/Views/Cells/ServerUpdatingCell.swift b/ios/Mammoth/Views/Cells/ServerUpdatingCell.swift similarity index 100% rename from Mammoth/Views/Cells/ServerUpdatingCell.swift rename to ios/Mammoth/Views/Cells/ServerUpdatingCell.swift diff --git a/Mammoth/Views/Cells/SignInInstanceCell.swift b/ios/Mammoth/Views/Cells/SignInInstanceCell.swift similarity index 100% rename from Mammoth/Views/Cells/SignInInstanceCell.swift rename to ios/Mammoth/Views/Cells/SignInInstanceCell.swift diff --git a/Mammoth/Views/Cells/TextSizeCell.swift b/ios/Mammoth/Views/Cells/TextSizeCell.swift similarity index 100% rename from Mammoth/Views/Cells/TextSizeCell.swift rename to ios/Mammoth/Views/Cells/TextSizeCell.swift diff --git a/Mammoth/Views/Cells/TrendsCell.swift b/ios/Mammoth/Views/Cells/TrendsCell.swift similarity index 100% rename from Mammoth/Views/Cells/TrendsCell.swift rename to ios/Mammoth/Views/Cells/TrendsCell.swift diff --git a/Mammoth/Views/Cells/TrendsTopCell.swift b/ios/Mammoth/Views/Cells/TrendsTopCell.swift similarity index 100% rename from Mammoth/Views/Cells/TrendsTopCell.swift rename to ios/Mammoth/Views/Cells/TrendsTopCell.swift diff --git a/Mammoth/Views/Cells/UpgradeCell.swift b/ios/Mammoth/Views/Cells/UpgradeCell.swift similarity index 100% rename from Mammoth/Views/Cells/UpgradeCell.swift rename to ios/Mammoth/Views/Cells/UpgradeCell.swift diff --git a/Mammoth/Views/Cells/UserCardCell/UserCardActionButton.swift b/ios/Mammoth/Views/Cells/UserCardCell/UserCardActionButton.swift similarity index 100% rename from Mammoth/Views/Cells/UserCardCell/UserCardActionButton.swift rename to ios/Mammoth/Views/Cells/UserCardCell/UserCardActionButton.swift diff --git a/Mammoth/Views/Cells/UserCardCell/UserCardCell.swift b/ios/Mammoth/Views/Cells/UserCardCell/UserCardCell.swift similarity index 100% rename from Mammoth/Views/Cells/UserCardCell/UserCardCell.swift rename to ios/Mammoth/Views/Cells/UserCardCell/UserCardCell.swift diff --git a/Mammoth/Views/Cells/UserCell.swift b/ios/Mammoth/Views/Cells/UserCell.swift similarity index 100% rename from Mammoth/Views/Cells/UserCell.swift rename to ios/Mammoth/Views/Cells/UserCell.swift diff --git a/Mammoth/Views/Cells/VIPCell.swift b/ios/Mammoth/Views/Cells/VIPCell.swift similarity index 100% rename from Mammoth/Views/Cells/VIPCell.swift rename to ios/Mammoth/Views/Cells/VIPCell.swift diff --git a/Mammoth/Views/ChannelPic.swift b/ios/Mammoth/Views/ChannelPic.swift similarity index 100% rename from Mammoth/Views/ChannelPic.swift rename to ios/Mammoth/Views/ChannelPic.swift diff --git a/Mammoth/Views/CustomVideoPlayer.swift b/ios/Mammoth/Views/CustomVideoPlayer.swift similarity index 100% rename from Mammoth/Views/CustomVideoPlayer.swift rename to ios/Mammoth/Views/CustomVideoPlayer.swift diff --git a/Mammoth/Views/ExtendedTouchView.swift b/ios/Mammoth/Views/ExtendedTouchView.swift similarity index 100% rename from Mammoth/Views/ExtendedTouchView.swift rename to ios/Mammoth/Views/ExtendedTouchView.swift diff --git a/Mammoth/Views/External/ALProgressView/Model/ALTimingFunction.swift b/ios/Mammoth/Views/External/ALProgressView/Model/ALTimingFunction.swift similarity index 100% rename from Mammoth/Views/External/ALProgressView/Model/ALTimingFunction.swift rename to ios/Mammoth/Views/External/ALProgressView/Model/ALTimingFunction.swift diff --git a/Mammoth/Views/External/ALProgressView/Views/ALProgressBar.swift b/ios/Mammoth/Views/External/ALProgressView/Views/ALProgressBar.swift similarity index 100% rename from Mammoth/Views/External/ALProgressView/Views/ALProgressBar.swift rename to ios/Mammoth/Views/External/ALProgressView/Views/ALProgressBar.swift diff --git a/Mammoth/Views/External/ALProgressView/Views/ALProgressRing.swift b/ios/Mammoth/Views/External/ALProgressView/Views/ALProgressRing.swift similarity index 100% rename from Mammoth/Views/External/ALProgressView/Views/ALProgressRing.swift rename to ios/Mammoth/Views/External/ALProgressView/Views/ALProgressRing.swift diff --git a/Mammoth/Views/External/ActiveLabel/ActiveBuilder.swift b/ios/Mammoth/Views/External/ActiveLabel/ActiveBuilder.swift similarity index 100% rename from Mammoth/Views/External/ActiveLabel/ActiveBuilder.swift rename to ios/Mammoth/Views/External/ActiveLabel/ActiveBuilder.swift diff --git a/Mammoth/Views/External/ActiveLabel/ActiveLabel.h b/ios/Mammoth/Views/External/ActiveLabel/ActiveLabel.h similarity index 100% rename from Mammoth/Views/External/ActiveLabel/ActiveLabel.h rename to ios/Mammoth/Views/External/ActiveLabel/ActiveLabel.h diff --git a/Mammoth/Views/External/ActiveLabel/ActiveLabel.swift b/ios/Mammoth/Views/External/ActiveLabel/ActiveLabel.swift similarity index 100% rename from Mammoth/Views/External/ActiveLabel/ActiveLabel.swift rename to ios/Mammoth/Views/External/ActiveLabel/ActiveLabel.swift diff --git a/Mammoth/Views/External/ActiveLabel/ActiveType.swift b/ios/Mammoth/Views/External/ActiveLabel/ActiveType.swift similarity index 100% rename from Mammoth/Views/External/ActiveLabel/ActiveType.swift rename to ios/Mammoth/Views/External/ActiveLabel/ActiveType.swift diff --git a/Mammoth/Views/External/ActiveLabel/RegexParser.swift b/ios/Mammoth/Views/External/ActiveLabel/RegexParser.swift similarity index 100% rename from Mammoth/Views/External/ActiveLabel/RegexParser.swift rename to ios/Mammoth/Views/External/ActiveLabel/RegexParser.swift diff --git a/Mammoth/Views/External/ActiveLabel/StringTrimExtension.swift b/ios/Mammoth/Views/External/ActiveLabel/StringTrimExtension.swift similarity index 100% rename from Mammoth/Views/External/ActiveLabel/StringTrimExtension.swift rename to ios/Mammoth/Views/External/ActiveLabel/StringTrimExtension.swift diff --git a/Mammoth/Views/External/Giphy/CornerRoundingMaskView.swift b/ios/Mammoth/Views/External/Giphy/CornerRoundingMaskView.swift similarity index 100% rename from Mammoth/Views/External/Giphy/CornerRoundingMaskView.swift rename to ios/Mammoth/Views/External/Giphy/CornerRoundingMaskView.swift diff --git a/Mammoth/Views/External/Giphy/GiphyImageSet.swift b/ios/Mammoth/Views/External/Giphy/GiphyImageSet.swift similarity index 100% rename from Mammoth/Views/External/Giphy/GiphyImageSet.swift rename to ios/Mammoth/Views/External/Giphy/GiphyImageSet.swift diff --git a/Mammoth/Views/External/Giphy/GiphyItem.swift b/ios/Mammoth/Views/External/Giphy/GiphyItem.swift similarity index 100% rename from Mammoth/Views/External/Giphy/GiphyItem.swift rename to ios/Mammoth/Views/External/Giphy/GiphyItem.swift diff --git a/Mammoth/Views/External/Giphy/GiphyMeta.swift b/ios/Mammoth/Views/External/Giphy/GiphyMeta.swift similarity index 100% rename from Mammoth/Views/External/Giphy/GiphyMeta.swift rename to ios/Mammoth/Views/External/Giphy/GiphyMeta.swift diff --git a/Mammoth/Views/External/Giphy/GiphyMultipleGIFResponse.swift b/ios/Mammoth/Views/External/Giphy/GiphyMultipleGIFResponse.swift similarity index 100% rename from Mammoth/Views/External/Giphy/GiphyMultipleGIFResponse.swift rename to ios/Mammoth/Views/External/Giphy/GiphyMultipleGIFResponse.swift diff --git a/Mammoth/Views/External/Giphy/GiphyPagination.swift b/ios/Mammoth/Views/External/Giphy/GiphyPagination.swift similarity index 100% rename from Mammoth/Views/External/Giphy/GiphyPagination.swift rename to ios/Mammoth/Views/External/Giphy/GiphyPagination.swift diff --git a/Mammoth/Views/External/Giphy/GiphySimpleItem.swift b/ios/Mammoth/Views/External/Giphy/GiphySimpleItem.swift similarity index 100% rename from Mammoth/Views/External/Giphy/GiphySimpleItem.swift rename to ios/Mammoth/Views/External/Giphy/GiphySimpleItem.swift diff --git a/Mammoth/Views/External/Giphy/GiphySimpleSingleGIFResponse.swift b/ios/Mammoth/Views/External/Giphy/GiphySimpleSingleGIFResponse.swift similarity index 100% rename from Mammoth/Views/External/Giphy/GiphySimpleSingleGIFResponse.swift rename to ios/Mammoth/Views/External/Giphy/GiphySimpleSingleGIFResponse.swift diff --git a/Mammoth/Views/External/Giphy/GiphySingleGIFResponse.swift b/ios/Mammoth/Views/External/Giphy/GiphySingleGIFResponse.swift similarity index 100% rename from Mammoth/Views/External/Giphy/GiphySingleGIFResponse.swift rename to ios/Mammoth/Views/External/Giphy/GiphySingleGIFResponse.swift diff --git a/Mammoth/Views/External/Giphy/GiphyUser.swift b/ios/Mammoth/Views/External/Giphy/GiphyUser.swift similarity index 100% rename from Mammoth/Views/External/Giphy/GiphyUser.swift rename to ios/Mammoth/Views/External/Giphy/GiphyUser.swift diff --git a/Mammoth/Views/External/Giphy/ParsingTransforms.swift b/ios/Mammoth/Views/External/Giphy/ParsingTransforms.swift similarity index 100% rename from Mammoth/Views/External/Giphy/ParsingTransforms.swift rename to ios/Mammoth/Views/External/Giphy/ParsingTransforms.swift diff --git a/Mammoth/Views/External/Giphy/RoundedCornerView.swift b/ios/Mammoth/Views/External/Giphy/RoundedCornerView.swift similarity index 100% rename from Mammoth/Views/External/Giphy/RoundedCornerView.swift rename to ios/Mammoth/Views/External/Giphy/RoundedCornerView.swift diff --git a/Mammoth/Views/External/Giphy/SwiftyGiphyAPI.swift b/ios/Mammoth/Views/External/Giphy/SwiftyGiphyAPI.swift similarity index 100% rename from Mammoth/Views/External/Giphy/SwiftyGiphyAPI.swift rename to ios/Mammoth/Views/External/Giphy/SwiftyGiphyAPI.swift diff --git a/Mammoth/Views/External/Giphy/SwiftyGiphyCollectionViewCell.swift b/ios/Mammoth/Views/External/Giphy/SwiftyGiphyCollectionViewCell.swift similarity index 100% rename from Mammoth/Views/External/Giphy/SwiftyGiphyCollectionViewCell.swift rename to ios/Mammoth/Views/External/Giphy/SwiftyGiphyCollectionViewCell.swift diff --git a/Mammoth/Views/External/Giphy/SwiftyGiphyGridLayout.swift b/ios/Mammoth/Views/External/Giphy/SwiftyGiphyGridLayout.swift similarity index 100% rename from Mammoth/Views/External/Giphy/SwiftyGiphyGridLayout.swift rename to ios/Mammoth/Views/External/Giphy/SwiftyGiphyGridLayout.swift diff --git a/Mammoth/Views/External/Giphy/SwiftyGiphyViewController.swift b/ios/Mammoth/Views/External/Giphy/SwiftyGiphyViewController.swift similarity index 100% rename from Mammoth/Views/External/Giphy/SwiftyGiphyViewController.swift rename to ios/Mammoth/Views/External/Giphy/SwiftyGiphyViewController.swift diff --git a/Mammoth/Views/External/UIPiPView/UIPiPView.swift b/ios/Mammoth/Views/External/UIPiPView/UIPiPView.swift similarity index 100% rename from Mammoth/Views/External/UIPiPView/UIPiPView.swift rename to ios/Mammoth/Views/External/UIPiPView/UIPiPView.swift diff --git a/Mammoth/Views/External/UIPiPView/UIView+.swift b/ios/Mammoth/Views/External/UIPiPView/UIView+.swift similarity index 100% rename from Mammoth/Views/External/UIPiPView/UIView+.swift rename to ios/Mammoth/Views/External/UIPiPView/UIView+.swift diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/project.pbxproj b/ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/project.pbxproj similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/project.pbxproj rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/project.pbxproj diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/xcuserdata/riley.xcuserdatad/xcschemes/xcschememanagement.plist b/ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/xcuserdata/riley.xcuserdatad/xcschemes/xcschememanagement.plist similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/xcuserdata/riley.xcuserdatad/xcschemes/xcschememanagement.plist rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample.xcodeproj/xcuserdata/riley.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/AppDelegate.swift b/ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/AppDelegate.swift similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/AppDelegate.swift rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/AppDelegate.swift diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Base.lproj/LaunchScreen.xib b/ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Base.lproj/LaunchScreen.xib similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Base.lproj/LaunchScreen.xib rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Base.lproj/LaunchScreen.xib diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Base.lproj/Main.storyboard b/ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Base.lproj/Main.storyboard similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Base.lproj/Main.storyboard rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Base.lproj/Main.storyboard diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Images.xcassets/AppIcon.appiconset/Contents.json b/ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Images.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Images.xcassets/AppIcon.appiconset/Contents.json rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Images.xcassets/AppIcon.appiconset/Contents.json diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Info.plist b/ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Info.plist similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Info.plist rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/Info.plist diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/ViewController.swift b/ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/ViewController.swift similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/ViewController.swift rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelExample/FloatLabelExample/ViewController.swift diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelFields/FloatLabelTextField.swift b/ios/Mammoth/Views/FloatLabelFields/FloatLabelFields/FloatLabelTextField.swift similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelFields/FloatLabelTextField.swift rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelFields/FloatLabelTextField.swift diff --git a/Mammoth/Views/FloatLabelFields/FloatLabelFields/FloatLabelTextView.swift b/ios/Mammoth/Views/FloatLabelFields/FloatLabelFields/FloatLabelTextView.swift similarity index 100% rename from Mammoth/Views/FloatLabelFields/FloatLabelFields/FloatLabelTextView.swift rename to ios/Mammoth/Views/FloatLabelFields/FloatLabelFields/FloatLabelTextView.swift diff --git a/Mammoth/Views/FloatLabelFields/LICENSE b/ios/Mammoth/Views/FloatLabelFields/LICENSE similarity index 100% rename from Mammoth/Views/FloatLabelFields/LICENSE rename to ios/Mammoth/Views/FloatLabelFields/LICENSE diff --git a/Mammoth/Views/FloatLabelFields/README.md b/ios/Mammoth/Views/FloatLabelFields/README.md similarity index 100% rename from Mammoth/Views/FloatLabelFields/README.md rename to ios/Mammoth/Views/FloatLabelFields/README.md diff --git a/Mammoth/Views/FollowButton.swift b/ios/Mammoth/Views/FollowButton.swift similarity index 100% rename from Mammoth/Views/FollowButton.swift rename to ios/Mammoth/Views/FollowButton.swift diff --git a/Mammoth/Views/GradientBorderView.swift b/ios/Mammoth/Views/GradientBorderView.swift similarity index 100% rename from Mammoth/Views/GradientBorderView.swift rename to ios/Mammoth/Views/GradientBorderView.swift diff --git a/Mammoth/Views/GradientButton.swift b/ios/Mammoth/Views/GradientButton.swift similarity index 100% rename from Mammoth/Views/GradientButton.swift rename to ios/Mammoth/Views/GradientButton.swift diff --git a/Mammoth/Views/GradientLabel.swift b/ios/Mammoth/Views/GradientLabel.swift similarity index 100% rename from Mammoth/Views/GradientLabel.swift rename to ios/Mammoth/Views/GradientLabel.swift diff --git a/Mammoth/Views/LargerTapTargetButton.swift b/ios/Mammoth/Views/LargerTapTargetButton.swift similarity index 100% rename from Mammoth/Views/LargerTapTargetButton.swift rename to ios/Mammoth/Views/LargerTapTargetButton.swift diff --git a/Mammoth/Views/MultilineTextField.swift b/ios/Mammoth/Views/MultilineTextField.swift similarity index 100% rename from Mammoth/Views/MultilineTextField.swift rename to ios/Mammoth/Views/MultilineTextField.swift diff --git a/Mammoth/Views/NavigationBarTitle.swift b/ios/Mammoth/Views/NavigationBarTitle.swift similarity index 100% rename from Mammoth/Views/NavigationBarTitle.swift rename to ios/Mammoth/Views/NavigationBarTitle.swift diff --git a/Mammoth/Views/NewPostButton.swift b/ios/Mammoth/Views/NewPostButton.swift similarity index 93% rename from Mammoth/Views/NewPostButton.swift rename to ios/Mammoth/Views/NewPostButton.swift index 6b538f992..f8e4c11f4 100644 --- a/Mammoth/Views/NewPostButton.swift +++ b/ios/Mammoth/Views/NewPostButton.swift @@ -221,9 +221,25 @@ class NewPostButton: UIButton, UIGestureRecognizerDelegate { } @objc func longPressedNB(sender: UILongPressGestureRecognizer) { +#if DEBUG + guard sender.state == .began else { return } + + triggerHaptic3Impact() + + let currentAccount: MastodonAcctData = AccountsManager.shared.currentAccount as! MastodonAcctData + let jsonEncoder = JSONEncoder() + if let jsonData = try? jsonEncoder.encode(currentAccount), + let json = String(data: jsonData, encoding: String.Encoding.utf8) { + let composer = ReactViewController(moduleName: "Composer", initialProperties: ["current": json]) + let composerNav = UINavigationController(rootViewController: composer) + composerNav.modalPresentationStyle = .automatic + getTopMostViewController()?.present(composerNav, animated: true, completion: nil) + } +#else guard sender.state == .began else { return } + if GlobalStruct.drafts.isEmpty {} else { triggerHaptic3Impact() let vc = ScheduledPostsViewController() @@ -232,6 +248,7 @@ class NewPostButton: UIButton, UIGestureRecognizerDelegate { let nvc = UINavigationController(rootViewController: vc) getTopMostViewController()?.present(nvc, animated: true, completion: nil) } +#endif } @objc func newPostTap() { diff --git a/Mammoth/Views/PhotoPicker.swift b/ios/Mammoth/Views/PhotoPicker.swift similarity index 100% rename from Mammoth/Views/PhotoPicker.swift rename to ios/Mammoth/Views/PhotoPicker.swift diff --git a/Mammoth/Views/ProfileImage.swift b/ios/Mammoth/Views/ProfileImage.swift similarity index 100% rename from Mammoth/Views/ProfileImage.swift rename to ios/Mammoth/Views/ProfileImage.swift diff --git a/Mammoth/Views/SAConfettiView.swift b/ios/Mammoth/Views/SAConfettiView.swift similarity index 100% rename from Mammoth/Views/SAConfettiView.swift rename to ios/Mammoth/Views/SAConfettiView.swift diff --git a/Mammoth/Views/StaticPic.swift b/ios/Mammoth/Views/StaticPic.swift similarity index 100% rename from Mammoth/Views/StaticPic.swift rename to ios/Mammoth/Views/StaticPic.swift diff --git a/Mammoth/Views/TableOfContentsSelector.swift b/ios/Mammoth/Views/TableOfContentsSelector.swift similarity index 100% rename from Mammoth/Views/TableOfContentsSelector.swift rename to ios/Mammoth/Views/TableOfContentsSelector.swift diff --git a/Mammoth/Views/ThinSlider.swift b/ios/Mammoth/Views/ThinSlider.swift similarity index 100% rename from Mammoth/Views/ThinSlider.swift rename to ios/Mammoth/Views/ThinSlider.swift diff --git a/MammothNotificationServiceExtension/Info.plist b/ios/MammothNotificationServiceExtension/Info.plist similarity index 100% rename from MammothNotificationServiceExtension/Info.plist rename to ios/MammothNotificationServiceExtension/Info.plist diff --git a/MammothNotificationServiceExtension/MammothNotificationServiceExtension.entitlements b/ios/MammothNotificationServiceExtension/MammothNotificationServiceExtension.entitlements similarity index 100% rename from MammothNotificationServiceExtension/MammothNotificationServiceExtension.entitlements rename to ios/MammothNotificationServiceExtension/MammothNotificationServiceExtension.entitlements diff --git a/MammothNotificationServiceExtension/NotificationService.swift b/ios/MammothNotificationServiceExtension/NotificationService.swift similarity index 100% rename from MammothNotificationServiceExtension/NotificationService.swift rename to ios/MammothNotificationServiceExtension/NotificationService.swift diff --git a/MammothNotificationServiceExtension/Utils/String+Helpers.swift b/ios/MammothNotificationServiceExtension/Utils/String+Helpers.swift similarity index 100% rename from MammothNotificationServiceExtension/Utils/String+Helpers.swift rename to ios/MammothNotificationServiceExtension/Utils/String+Helpers.swift diff --git a/MammothTests/FollowManagerTest.swift b/ios/MammothTests/FollowManagerTest.swift similarity index 100% rename from MammothTests/FollowManagerTest.swift rename to ios/MammothTests/FollowManagerTest.swift diff --git a/MammothUITests/MammothUITests.swift b/ios/MammothUITests/MammothUITests.swift similarity index 100% rename from MammothUITests/MammothUITests.swift rename to ios/MammothUITests/MammothUITests.swift diff --git a/MammothUITests/MammothUITestsLaunchTests.swift b/ios/MammothUITests/MammothUITestsLaunchTests.swift similarity index 100% rename from MammothUITests/MammothUITestsLaunchTests.swift rename to ios/MammothUITests/MammothUITestsLaunchTests.swift diff --git a/ios/Podfile b/ios/Podfile new file mode 100644 index 000000000..9d3e9d421 --- /dev/null +++ b/ios/Podfile @@ -0,0 +1,53 @@ +# Resolve react_native_pods.rb with node to allow for hoisting +require Pod::Executable.execute_command('node', ['-p', + 'require.resolve( + "react-native/scripts/react_native_pods.rb", + {paths: [process.argv[1]]}, + )', __dir__]).strip + +platform :ios, min_ios_version_supported +prepare_react_native_project! +#inhibit_all_warnings! +#use_frameworks! + +linkage = ENV['USE_FRAMEWORKS'] +if linkage != nil + Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green + use_frameworks! :linkage => linkage.to_sym + + # https://github.com/software-mansion/react-native-screens/issues/1963#issuecomment-1848246731 + pre_install do |installer| + installer.pod_targets.each do |pod| + if pod.name.eql?('RNReanimated') # add more pod names here + def pod.build_type; + Pod::BuildType.static_library + end + end + end + end +end + +target 'Mammoth' do + config = use_native_modules! + + use_react_native!( + :path => config[:reactNativePath], + # An absolute path to your application root. + :app_path => "#{Pod::Config.instance.installation_root}/.." + ) + + target 'MammothTests' do + inherit! :complete + # Pods for testing + end + + post_install do |installer| + # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202 + react_native_post_install( + installer, + config[:reactNativePath], + :mac_catalyst_enabled => false, + # :ccache_enabled => true + ) + end +end diff --git a/ios/Podfile.lock b/ios/Podfile.lock new file mode 100644 index 000000000..7e1c8895b --- /dev/null +++ b/ios/Podfile.lock @@ -0,0 +1,1461 @@ +PODS: + - boost (1.83.0) + - DoubleConversion (1.1.6) + - FBLazyVector (0.73.3) + - fmt (6.2.1) + - glog (0.3.5) + - hermes-engine (0.73.3): + - hermes-engine/Pre-built (= 0.73.3) + - hermes-engine/Pre-built (0.73.3) + - libevent (2.1.12) + - RCT-Folly (2022.05.16.00): + - boost + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - RCT-Folly/Default (= 2022.05.16.00) + - RCT-Folly/Default (2022.05.16.00): + - boost + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - RCT-Folly/Fabric (2022.05.16.00): + - boost + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - RCT-Folly/Futures (2022.05.16.00): + - boost + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - libevent + - RCTRequired (0.73.3) + - RCTTypeSafety (0.73.3): + - FBLazyVector (= 0.73.3) + - RCTRequired (= 0.73.3) + - React-Core (= 0.73.3) + - React (0.73.3): + - React-Core (= 0.73.3) + - React-Core/DevSupport (= 0.73.3) + - React-Core/RCTWebSocket (= 0.73.3) + - React-RCTActionSheet (= 0.73.3) + - React-RCTAnimation (= 0.73.3) + - React-RCTBlob (= 0.73.3) + - React-RCTImage (= 0.73.3) + - React-RCTLinking (= 0.73.3) + - React-RCTNetwork (= 0.73.3) + - React-RCTSettings (= 0.73.3) + - React-RCTText (= 0.73.3) + - React-RCTVibration (= 0.73.3) + - React-callinvoker (0.73.3) + - React-Codegen (0.73.3): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-graphics + - React-jsi + - React-jsiexecutor + - React-NativeModulesApple + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-Core (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default (= 0.73.3) + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/CoreModulesHeaders (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/Default (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/DevSupport (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default (= 0.73.3) + - React-Core/RCTWebSocket (= 0.73.3) + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-jsinspector (= 0.73.3) + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/RCTActionSheetHeaders (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/RCTAnimationHeaders (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/RCTBlobHeaders (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/RCTImageHeaders (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/RCTLinkingHeaders (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/RCTNetworkHeaders (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/RCTSettingsHeaders (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/RCTTextHeaders (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/RCTVibrationHeaders (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-Core/RCTWebSocket (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Core/Default (= 0.73.3) + - React-cxxreact + - React-hermes + - React-jsi + - React-jsiexecutor + - React-perflogger + - React-runtimescheduler + - React-utils + - SocketRocket (= 0.6.1) + - Yoga + - React-CoreModules (0.73.3): + - RCT-Folly (= 2022.05.16.00) + - RCTTypeSafety (= 0.73.3) + - React-Codegen + - React-Core/CoreModulesHeaders (= 0.73.3) + - React-jsi (= 0.73.3) + - React-NativeModulesApple + - React-RCTBlob + - React-RCTImage (= 0.73.3) + - ReactCommon + - SocketRocket (= 0.6.1) + - React-cxxreact (0.73.3): + - boost (= 1.83.0) + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-callinvoker (= 0.73.3) + - React-debug (= 0.73.3) + - React-jsi (= 0.73.3) + - React-jsinspector (= 0.73.3) + - React-logger (= 0.73.3) + - React-perflogger (= 0.73.3) + - React-runtimeexecutor (= 0.73.3) + - React-debug (0.73.3) + - React-Fabric (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/animations (= 0.73.3) + - React-Fabric/attributedstring (= 0.73.3) + - React-Fabric/componentregistry (= 0.73.3) + - React-Fabric/componentregistrynative (= 0.73.3) + - React-Fabric/components (= 0.73.3) + - React-Fabric/core (= 0.73.3) + - React-Fabric/imagemanager (= 0.73.3) + - React-Fabric/leakchecker (= 0.73.3) + - React-Fabric/mounting (= 0.73.3) + - React-Fabric/scheduler (= 0.73.3) + - React-Fabric/telemetry (= 0.73.3) + - React-Fabric/templateprocessor (= 0.73.3) + - React-Fabric/textlayoutmanager (= 0.73.3) + - React-Fabric/uimanager (= 0.73.3) + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/animations (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/attributedstring (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistry (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/componentregistrynative (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/components/inputaccessory (= 0.73.3) + - React-Fabric/components/legacyviewmanagerinterop (= 0.73.3) + - React-Fabric/components/modal (= 0.73.3) + - React-Fabric/components/rncore (= 0.73.3) + - React-Fabric/components/root (= 0.73.3) + - React-Fabric/components/safeareaview (= 0.73.3) + - React-Fabric/components/scrollview (= 0.73.3) + - React-Fabric/components/text (= 0.73.3) + - React-Fabric/components/textinput (= 0.73.3) + - React-Fabric/components/unimplementedview (= 0.73.3) + - React-Fabric/components/view (= 0.73.3) + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/inputaccessory (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/legacyviewmanagerinterop (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/modal (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/rncore (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/root (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/safeareaview (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/scrollview (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/text (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/textinput (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/unimplementedview (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/components/view (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - Yoga + - React-Fabric/core (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/imagemanager (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/leakchecker (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/mounting (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/scheduler (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/telemetry (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/templateprocessor (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/textlayoutmanager (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-Fabric/uimanager + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-Fabric/uimanager (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Core + - React-cxxreact + - React-debug + - React-graphics + - React-jsi + - React-jsiexecutor + - React-logger + - React-rendererdebug + - React-runtimescheduler + - React-utils + - ReactCommon/turbomodule/core + - React-FabricImage (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - RCTRequired (= 0.73.3) + - RCTTypeSafety (= 0.73.3) + - React-Fabric + - React-graphics + - React-ImageManager + - React-jsi + - React-jsiexecutor (= 0.73.3) + - React-logger + - React-rendererdebug + - React-utils + - ReactCommon + - Yoga + - React-graphics (0.73.3): + - glog + - RCT-Folly/Fabric (= 2022.05.16.00) + - React-Core/Default (= 0.73.3) + - React-utils + - React-hermes (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCT-Folly/Futures (= 2022.05.16.00) + - React-cxxreact (= 0.73.3) + - React-jsi + - React-jsiexecutor (= 0.73.3) + - React-jsinspector (= 0.73.3) + - React-perflogger (= 0.73.3) + - React-ImageManager (0.73.3): + - glog + - RCT-Folly/Fabric + - React-Core/Default + - React-debug + - React-Fabric + - React-graphics + - React-rendererdebug + - React-utils + - React-jserrorhandler (0.73.3): + - RCT-Folly/Fabric (= 2022.05.16.00) + - React-debug + - React-jsi + - React-Mapbuffer + - React-jsi (0.73.3): + - boost (= 1.83.0) + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-jsiexecutor (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-cxxreact (= 0.73.3) + - React-jsi (= 0.73.3) + - React-perflogger (= 0.73.3) + - React-jsinspector (0.73.3) + - React-jsitracing (0.73.3): + - React-jsi + - React-logger (0.73.3): + - glog + - React-Mapbuffer (0.73.3): + - glog + - React-debug + - react-native-menu (0.9.1): + - React + - react-native-safe-area-context (4.8.2): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - react-native-safe-area-context/common (= 4.8.2) + - react-native-safe-area-context/fabric (= 4.8.2) + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-safe-area-context/common (4.8.2): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-safe-area-context/fabric (4.8.2): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - react-native-safe-area-context/common + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - react-native-webview (13.6.4): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - React-nativeconfig (0.73.3) + - React-NativeModulesApple (0.73.3): + - glog + - hermes-engine + - React-callinvoker + - React-Core + - React-cxxreact + - React-jsi + - React-runtimeexecutor + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - React-perflogger (0.73.3) + - React-RCTActionSheet (0.73.3): + - React-Core/RCTActionSheetHeaders (= 0.73.3) + - React-RCTAnimation (0.73.3): + - RCT-Folly (= 2022.05.16.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTAnimationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTAppDelegate (0.73.3): + - RCT-Folly + - RCTRequired + - RCTTypeSafety + - React-Core + - React-CoreModules + - React-debug + - React-Fabric + - React-graphics + - React-hermes + - React-nativeconfig + - React-NativeModulesApple + - React-RCTFabric + - React-RCTImage + - React-RCTNetwork + - React-rendererdebug + - React-RuntimeApple + - React-RuntimeCore + - React-RuntimeHermes + - React-runtimescheduler + - React-utils + - ReactCommon + - React-RCTBlob (0.73.3): + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-Codegen + - React-Core/RCTBlobHeaders + - React-Core/RCTWebSocket + - React-jsi + - React-NativeModulesApple + - React-RCTNetwork + - ReactCommon + - React-RCTFabric (0.73.3): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - React-Core + - React-debug + - React-Fabric + - React-FabricImage + - React-graphics + - React-ImageManager + - React-jsi + - React-nativeconfig + - React-RCTImage + - React-RCTText + - React-rendererdebug + - React-runtimescheduler + - React-utils + - Yoga + - React-RCTImage (0.73.3): + - RCT-Folly (= 2022.05.16.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTImageHeaders + - React-jsi + - React-NativeModulesApple + - React-RCTNetwork + - ReactCommon + - React-RCTLinking (0.73.3): + - React-Codegen + - React-Core/RCTLinkingHeaders (= 0.73.3) + - React-jsi (= 0.73.3) + - React-NativeModulesApple + - ReactCommon + - ReactCommon/turbomodule/core (= 0.73.3) + - React-RCTNetwork (0.73.3): + - RCT-Folly (= 2022.05.16.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTNetworkHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTSettings (0.73.3): + - RCT-Folly (= 2022.05.16.00) + - RCTTypeSafety + - React-Codegen + - React-Core/RCTSettingsHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-RCTText (0.73.3): + - React-Core/RCTTextHeaders (= 0.73.3) + - Yoga + - React-RCTVibration (0.73.3): + - RCT-Folly (= 2022.05.16.00) + - React-Codegen + - React-Core/RCTVibrationHeaders + - React-jsi + - React-NativeModulesApple + - ReactCommon + - React-rendererdebug (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - RCT-Folly (= 2022.05.16.00) + - React-debug + - React-rncore (0.73.3) + - React-RuntimeApple (0.73.3): + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - React-callinvoker + - React-Core/Default + - React-CoreModules + - React-cxxreact + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-Mapbuffer + - React-NativeModulesApple + - React-RCTFabric + - React-RuntimeCore + - React-runtimeexecutor + - React-RuntimeHermes + - React-utils + - React-RuntimeCore (0.73.3): + - glog + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - React-cxxreact + - React-jserrorhandler + - React-jsi + - React-jsiexecutor + - React-runtimeexecutor + - React-runtimescheduler + - React-runtimeexecutor (0.73.3): + - React-jsi (= 0.73.3) + - React-RuntimeHermes (0.73.3): + - hermes-engine + - RCT-Folly/Fabric (= 2022.05.16.00) + - React-jsi + - React-jsitracing + - React-nativeconfig + - React-utils + - React-runtimescheduler (0.73.3): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-callinvoker + - React-cxxreact + - React-debug + - React-jsi + - React-rendererdebug + - React-runtimeexecutor + - React-utils + - React-utils (0.73.3): + - glog + - RCT-Folly (= 2022.05.16.00) + - React-debug + - ReactCommon (0.73.3): + - React-logger (= 0.73.3) + - ReactCommon/turbomodule (= 0.73.3) + - ReactCommon/turbomodule (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-callinvoker (= 0.73.3) + - React-cxxreact (= 0.73.3) + - React-jsi (= 0.73.3) + - React-logger (= 0.73.3) + - React-perflogger (= 0.73.3) + - ReactCommon/turbomodule/bridging (= 0.73.3) + - ReactCommon/turbomodule/core (= 0.73.3) + - ReactCommon/turbomodule/bridging (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-callinvoker (= 0.73.3) + - React-cxxreact (= 0.73.3) + - React-jsi (= 0.73.3) + - React-logger (= 0.73.3) + - React-perflogger (= 0.73.3) + - ReactCommon/turbomodule/core (0.73.3): + - DoubleConversion + - fmt (~> 6.2.1) + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - React-callinvoker (= 0.73.3) + - React-cxxreact (= 0.73.3) + - React-jsi (= 0.73.3) + - React-logger (= 0.73.3) + - React-perflogger (= 0.73.3) + - RNScreens (3.29.0): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - RNScreens/common (= 3.29.0) + - Yoga + - RNScreens/common (3.29.0): + - glog + - hermes-engine + - RCT-Folly (= 2022.05.16.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-graphics + - React-ImageManager + - React-NativeModulesApple + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga + - SocketRocket (0.6.1) + - Yoga (1.14.0) + +DEPENDENCIES: + - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) + - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) + - 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`) + - RCT-Folly/Fabric (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-debug (from `../node_modules/react-native/ReactCommon/react/debug`) + - React-Fabric (from `../node_modules/react-native/ReactCommon`) + - React-FabricImage (from `../node_modules/react-native/ReactCommon`) + - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`) + - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`) + - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`) + - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`) + - 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-modern`) + - React-jsitracing (from `../node_modules/react-native/ReactCommon/hermes/executor/`) + - React-logger (from `../node_modules/react-native/ReactCommon/logger`) + - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) + - "react-native-menu (from `../node_modules/@react-native-menu/menu`)" + - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`) + - react-native-webview (from `../node_modules/react-native-webview`) + - React-nativeconfig (from `../node_modules/react-native/ReactCommon`) + - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`) + - 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-RCTFabric (from `../node_modules/react-native/React`) + - 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-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`) + - React-rncore (from `../node_modules/react-native/ReactCommon`) + - React-RuntimeApple (from `../node_modules/react-native/ReactCommon/react/runtime/platform/ios`) + - React-RuntimeCore (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`) + - React-RuntimeHermes (from `../node_modules/react-native/ReactCommon/react/runtime`) + - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`) + - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`) + - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`) + - RNScreens (from `../node_modules/react-native-screens`) + - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) + +SPEC REPOS: + trunk: + - fmt + - libevent + - SocketRocket + +EXTERNAL SOURCES: + boost: + :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" + DoubleConversion: + :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + FBLazyVector: + :path: "../node_modules/react-native/Libraries/FBLazyVector" + glog: + :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec" + hermes-engine: + :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec" + :tag: hermes-2023-11-17-RNv0.73.0-21043a3fc062be445e56a2c10ecd8be028dd9cc5 + 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-debug: + :path: "../node_modules/react-native/ReactCommon/react/debug" + React-Fabric: + :path: "../node_modules/react-native/ReactCommon" + React-FabricImage: + :path: "../node_modules/react-native/ReactCommon" + React-graphics: + :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics" + React-hermes: + :path: "../node_modules/react-native/ReactCommon/hermes" + React-ImageManager: + :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios" + React-jserrorhandler: + :path: "../node_modules/react-native/ReactCommon/jserrorhandler" + 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-modern" + React-jsitracing: + :path: "../node_modules/react-native/ReactCommon/hermes/executor/" + React-logger: + :path: "../node_modules/react-native/ReactCommon/logger" + React-Mapbuffer: + :path: "../node_modules/react-native/ReactCommon" + react-native-menu: + :path: "../node_modules/@react-native-menu/menu" + react-native-safe-area-context: + :path: "../node_modules/react-native-safe-area-context" + react-native-webview: + :path: "../node_modules/react-native-webview" + React-nativeconfig: + :path: "../node_modules/react-native/ReactCommon" + React-NativeModulesApple: + :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios" + 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-RCTFabric: + :path: "../node_modules/react-native/React" + 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-rendererdebug: + :path: "../node_modules/react-native/ReactCommon/react/renderer/debug" + React-rncore: + :path: "../node_modules/react-native/ReactCommon" + React-RuntimeApple: + :path: "../node_modules/react-native/ReactCommon/react/runtime/platform/ios" + React-RuntimeCore: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimeexecutor: + :path: "../node_modules/react-native/ReactCommon/runtimeexecutor" + React-RuntimeHermes: + :path: "../node_modules/react-native/ReactCommon/react/runtime" + React-runtimescheduler: + :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler" + React-utils: + :path: "../node_modules/react-native/ReactCommon/react/utils" + ReactCommon: + :path: "../node_modules/react-native/ReactCommon" + RNScreens: + :path: "../node_modules/react-native-screens" + Yoga: + :path: "../node_modules/react-native/ReactCommon/yoga" + +SPEC CHECKSUMS: + boost: d3f49c53809116a5d38da093a8aa78bf551aed09 + DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953 + FBLazyVector: 70590b4f9e8ae9b0ce076efacea3abd7bc585ace + fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9 + glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 + hermes-engine: 5420539d016f368cd27e008f65f777abd6098c56 + libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913 + RCT-Folly: 7169b2b1c44399c76a47b5deaaba715eeeb476c0 + RCTRequired: 9b898847f76977a6dfed2a08f4c5ed37add75ec0 + RCTTypeSafety: 0debdc4ba38c8138016d8d8ada4bdf9ec1b8aa82 + React: f8afb04431634ac7e9b876dc96d30af9871f5946 + React-callinvoker: 5ea86c3f93326867aa5114989d229db54d4759d0 + React-Codegen: 10896dfb43515fb5dfff957504f6d3dece0a0177 + React-Core: bbac074eba495788a01d1e5455b132872bf86843 + React-CoreModules: 92fee6d8f4095e151b9678e44fcf0dc8eabeae37 + React-cxxreact: e856e0370bf52aea71acce10007ad9ba6a63b66c + React-debug: c72219d497f675d547ce34cdc733e7e8fe2a5da3 + React-Fabric: 59afb9db1a31cb7864196fa46bea99ab0033e0b1 + React-FabricImage: 0ee33904487bbf1b96be2391195a059bbd416ead + React-graphics: 72181d50d637d5b982b6b8b8443390c84ca5147f + React-hermes: ac421eebea18bab58a57b70c590b7c11edaac00b + React-ImageManager: c9486ee6349a68aaa0d946ba65149590593bbd15 + React-jserrorhandler: cbc83431c5f91521e4b75efb0b687168080781ee + React-jsi: 57498df51dfb8a37a996f470a457d8797e931eaa + React-jsiexecutor: d83a7d7aea2ffc60dbda0f3d523578a76820f0e1 + React-jsinspector: 6fad0fe14882fb6b1c32e5cc8a4bd3d33a8b6790 + React-jsitracing: 9edac13633232bef1312760f967840c49bf078ea + React-logger: cb0dd15ac67b00e7b771ef15203edcb29d4a3f8e + React-Mapbuffer: ac7eff7bcdb1716d18eb7b305ee8c43a9a1ed7c8 + react-native-menu: 9728f90160c36b9a75481fc76e05354b99d54c59 + react-native-safe-area-context: 9d93b0322bebd4db7581b3d35af194f310acd364 + react-native-webview: 0d2c13fe0621314324e54b60d619ec0c01d2a18e + React-nativeconfig: 4662ac75a0a77789c9ed896ed77baa1a25cdf006 + React-NativeModulesApple: 92bc296f2ae166d10cb4d6a05498c80bf4ef9fa2 + React-perflogger: 27ccacf853ba725524ef2b4e444f14e34d0837b0 + React-RCTActionSheet: 77dd6a2a5cfab9e85b7f1add0f7e2e9cd697d936 + React-RCTAnimation: 977a25a4e8007ecc90e556abcceb1b25602eea7c + React-RCTAppDelegate: cc97947c6ccc96ae7b2413fad56771fa85c4e826 + React-RCTBlob: 1e18ab09f57cf3bd2b9681cbeedfca866d971f50 + React-RCTFabric: e52f9be153856408a06475bc90e97be0ba5a00b5 + React-RCTImage: b1eac9526111cf7e37c304f94e81b76a5ae6a984 + React-RCTLinking: d7f7dc665af6442ff38e18e34308da7865347bb1 + React-RCTNetwork: c2c1df3a3c838e9547259e3638f6b290aebb3b72 + React-RCTSettings: f3074b14047a57fa95499c28fb89028a894d3c18 + React-RCTText: 9d48b2bbce5e1ed9c4d9514414dc6d99731d1b0a + React-RCTVibration: 394ea84082b08b5b3c211dc2bc9c0c4c163e7f23 + React-rendererdebug: 5fb3c0f487cf77a9c87e6f8c3db21b996b669571 + React-rncore: adf1cd6407dcca02ed206e290ba5a9a5a8987b0d + React-RuntimeApple: 09f36b72d278f02849a80aa5eaa755d7a1373967 + React-RuntimeCore: 20085f6f9e957d9418b49f637a464ab9afa7d7ad + React-runtimeexecutor: 7e71a40def8262ef7d82a1145d873ea61b1a27b5 + React-RuntimeHermes: c50b6204ee2a87c94ba9b6662307ca1f8646a475 + React-runtimescheduler: 06b3f2e3b3b6e9deb1fc63b543c7fd34177dbb07 + React-utils: 2d25ca0a6e635c095bc5e67ac1202c7939ec4af3 + ReactCommon: 8564d71cf76b1715740cb8bdc5b382d1ddd12dd1 + RNScreens: d851f8b82b7d65ee1a3175c8e4f8a8782a2c5d96 + SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17 + Yoga: ff0382b894475dba0b4d2a5fda860bfee5a9afad + +PODFILE CHECKSUM: eb0a5f30a70bbc36b2a64fdd9136d4c5f854b14d + +COCOAPODS: 1.14.3 diff --git a/bin/arkana b/ios/bin/arkana similarity index 100% rename from bin/arkana rename to ios/bin/arkana diff --git a/sample.env b/ios/sample.env similarity index 100% rename from sample.env rename to ios/sample.env diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 000000000..8eb675e9b --- /dev/null +++ b/jest.config.js @@ -0,0 +1,3 @@ +module.exports = { + preset: 'react-native', +}; diff --git a/metro.config.js b/metro.config.js new file mode 100644 index 000000000..ad8f87b6d --- /dev/null +++ b/metro.config.js @@ -0,0 +1,11 @@ +const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config'); + +/** + * Metro configuration + * https://facebook.github.io/metro/docs/configuration + * + * @type {import('metro-config').MetroConfig} + */ +const config = {}; + +module.exports = mergeConfig(getDefaultConfig(__dirname), config); diff --git a/package.json b/package.json new file mode 100644 index 000000000..3f81c74e3 --- /dev/null +++ b/package.json @@ -0,0 +1,45 @@ +{ + "name": "mammoth-mobile", + "version": "0.0.1", + "author": "TheBLVD, Inc.", + "private": true, + "engines": { + "node": "20.10.*" + }, + "scripts": { + "android": "react-native run-android", + "ios": "react-native run-ios", + "lint": "eslint .", + "start": "react-native start", + "test": "jest" + }, + "dependencies": { + "@react-native-menu/menu": "^0.9.1", + "@react-navigation/native": "^6.1.9", + "@react-navigation/native-stack": "^6.9.17", + "react": "^18.2.0", + "react-native": "^0.73.3", + "react-native-pell-rich-editor": "^1.9.0", + "react-native-safe-area-context": "^4.8.2", + "react-native-screens": "^3.29.0", + "react-native-webview": "^13.6.4" + }, + "devDependencies": { + "@babel/core": "^7.20.0", + "@babel/preset-env": "^7.20.0", + "@babel/runtime": "^7.20.0", + "@react-native/babel-preset": "0.73.20", + "@react-native/eslint-config": "0.73.2", + "@react-native/metro-config": "0.73.4", + "@react-native/typescript-config": "0.73.1", + "@types/react": "^18.2.6", + "@types/react-test-renderer": "^18.0.0", + "babel-jest": "^29.6.3", + "eslint": "^8.19.0", + "jest": "^29.6.3", + "prettier": "2.8.8", + "react-test-renderer": "18.2.0", + "typescript": "^5.3.3" + }, + "packageManager": "yarn@4.1.0" +} diff --git a/src/components/MetaTextView.ios.tsx b/src/components/MetaTextView.ios.tsx new file mode 100644 index 000000000..5bb91b467 --- /dev/null +++ b/src/components/MetaTextView.ios.tsx @@ -0,0 +1,49 @@ +import React, {useCallback, useEffect, useRef} from 'react'; +import { + findNodeHandle, + requireNativeComponent, + NativeModules, + NativeEventEmitter, +} from 'react-native'; +import {callNativeViewMethod} from '../utils/UIManagerHelpers'; + +const NativeComponent = requireNativeComponent('NativeMetaText'); +const eventEmitter = new NativeEventEmitter( + NativeModules.ReactNativeEventEmitter, +); + +type Props = { + emojis: any[]; + style: any; +}; + +export const MetaTextView = React.forwardRef( + (props: Props, _ref: React.ForwardedRef) => { + const reactTag = useRef(); + + const onTextChange = useCallback(() => { + callNativeViewMethod('onTextChange', 'NativeMetaText', reactTag.current); + }, [reactTag]); + + useEffect(() => { + const subscription = eventEmitter.addListener( + 'onMetaTextChange', + onTextChange, + ); + setTimeout(() => { + onTextChange(); + }); + + return () => { + subscription.remove(); + }; + }, [onTextChange]); + + return ( + (reactTag.current = findNodeHandle(nativeRef))} + /> + ); + }, +); diff --git a/src/components/PostCardView.ios.tsx b/src/components/PostCardView.ios.tsx new file mode 100644 index 000000000..dd09c6502 --- /dev/null +++ b/src/components/PostCardView.ios.tsx @@ -0,0 +1,33 @@ +import React, {useCallback, useEffect, useRef} from 'react'; +import {findNodeHandle, requireNativeComponent} from 'react-native'; +import {callNativeViewMethod} from '../utils/UIManagerHelpers'; +const NativeComponent = requireNativeComponent('NativePostCardView'); + +export const PostCardView = React.forwardRef( + (props: any, ref: React.ForwardedRef) => { + const reactTag = useRef(); + + const configure = useCallback( + (text: string) => { + callNativeViewMethod( + 'configure', + 'NativePostCardView', + reactTag.current, + [text], + ); + }, + [reactTag], + ); + + useEffect(() => { + (ref as any).current = {configure}; + }, [configure, ref]); + + return ( + (reactTag.current = findNodeHandle(nativeRef))} + /> + ); + }, +); diff --git a/src/components/_navigation/registerCustomButtons.ts b/src/components/_navigation/registerCustomButtons.ts new file mode 100644 index 000000000..23cf54b1d --- /dev/null +++ b/src/components/_navigation/registerCustomButtons.ts @@ -0,0 +1,36 @@ +import {AppRegistry} from 'react-native'; + +type NavigatorButton = { + id: string; + title?: string; + component?: React.ComponentType; + image?: any; + disabled?: boolean; +}; + +export const registerCustomButtons = (buttons: NavigatorButton[]) => { + if (!buttons) { + return; + } + // Iterate through currentRoute's navigator buttons to register any custom nav button components + return buttons.map(button => { + if (button.component) { + AppRegistry.registerComponent(button.id, () => button.component!); + return { + ...button, + // Replace the component with an id so native can use it to fetch the RN view + component: button.id, + }; + } + // Handle images + if (button.image) { + const resolveAssetSource = require('react-native/Libraries/Image/resolveAssetSource'); + const resolvedImage = resolveAssetSource(button.image); + return { + ...button, + image: resolvedImage, + }; + } + return button; + }); +}; diff --git a/src/components/_screens/Composer/components/LeftButton.tsx b/src/components/_screens/Composer/components/LeftButton.tsx new file mode 100644 index 000000000..6f352c70a --- /dev/null +++ b/src/components/_screens/Composer/components/LeftButton.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import {Button, NativeModules} from 'react-native'; +const nativeNavigator = NativeModules.Navigator; + +type Props = { + screenId: number; +}; + +export const LeftButton = ({screenId}: Props) => { + return ( +