mobile: update mobile app to react-native 0.72.0 (#2814)

* mobile: upgrade to react-native 0.71

* mobile: update to react-native 0.72.0

* mobile: fix release build on android

* mobile: fix editor stuck in loading state

* mobile: fix bootsplash logo in dark mode

* mobile: update patch files

* mobile: cleanup

* mobile: increase delay

* mobile: add logs on upload

* mobile: ensure editor is ready before note loading

* mobile: fix ui

* mobile: fix

* ci: update workflow

* ci: undo workflow changes

---------

Signed-off-by: Ammar Ahmed <40239442+ammarahm-ed@users.noreply.github.com>
This commit is contained in:
Ammar Ahmed
2023-06-26 21:50:20 +05:00
committed by GitHub
parent ebc28bca62
commit 4843d1c39e
84 changed files with 28498 additions and 54997 deletions

View File

@@ -14,7 +14,9 @@ build_cache/
.yarnrc.yml
.yarn
*.log
.cxx/
*.keystore
!debug.keystore
# Xcode
#

View File

@@ -3,6 +3,7 @@
*/
import "react-native";
import { it } from "@jest/globals";
// Note: test renderer must be required after react-native.
import renderer from "react-test-renderer";
import Heading from "../app/components/ui/typography/heading";

View File

@@ -46,6 +46,7 @@ export async function downloadFile(filename, data, cancelToken) {
if (!downloadUrl) throw new Error("Unable to resolve download url");
let totalSize = 0;
console.log("Download starting");
let request = RNFetchBlob.config({
path: path,
IOSBackgroundTask: true

View File

@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import RNFetchBlob from "react-native-blob-util";
import { useAttachmentStore } from "../../stores/use-attachment-store";
import { db } from "../database";
import { DatabaseLogger, db } from "../database";
import { cacheDir } from "./utils";
import { isImage, isDocument } from "@notesnook/core/utils/filename";
import { Platform } from "react-native";
@@ -29,7 +29,8 @@ export async function uploadFile(filename, data, cancelToken) {
if (!data) return false;
let { url, headers } = data;
console.log("uploading file: ", filename, headers);
DatabaseLogger.info(`Preparing to upload file: ${filename}`);
try {
let res = await fetch(url, {
method: "PUT",
@@ -37,7 +38,7 @@ export async function uploadFile(filename, data, cancelToken) {
});
if (!res.ok) throw new Error(`${res.status}: Unable to resolve upload url`);
const uploadUrl = await res.text();
if (!uploadUrl) throw new Error("Unable to resolve upload url");
if (!uploadUrl) throw new Error("Unable to resolve attachment upload url");
let uploadFilePath = `${cacheDir}/${filename}`;
const iosAppGroup =
@@ -49,6 +50,7 @@ export async function uploadFile(filename, data, cancelToken) {
if (!exists && Platform.OS === "ios") {
uploadFilePath = appGroupPath;
}
DatabaseLogger.info(`Starting upload: ${filename}`);
let request = RNFetchBlob.config({
IOSBackgroundTask: !globalThis["IS_SHARE_EXTENSION"]
})
@@ -64,7 +66,7 @@ export async function uploadFile(filename, data, cancelToken) {
useAttachmentStore
.getState()
.setProgress(sent, total, filename, 0, "upload");
console.log("uploading: ", sent, total);
DatabaseLogger.info(`uploading file: ${sent}/${total}`);
});
cancelToken.cancel = request.cancel;
let response = await request;
@@ -83,11 +85,12 @@ export async function uploadFile(filename, data, cancelToken) {
RNFetchBlob.fs.unlink(`${cacheDir}/${filename}`).catch(console.log);
}
}
DatabaseLogger.info(`File uploaded: ${filename}`);
return result;
} catch (e) {
useAttachmentStore.getState().remove(filename);
console.log("upload file: ", e, url, headers);
DatabaseLogger.info(`File upload error: ${filename}, ${e}`);
DatabaseLogger.error(e);
return false;
}
}

View File

@@ -202,7 +202,7 @@ const AppLockedOverlay = () => {
width={250}
onPress={onUnlockAppRequested}
icon={"fingerprint"}
type={user ? "grayAccent" : "accent"}
type="transparent"
/>
</View>
</View>

View File

@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import React, { useRef, useState } from "react";
import { ActivityIndicator, ScrollView, View } from "react-native";
import { FlatList } from "react-native-actions-sheet";
import Icon from "react-native-vector-icons/MaterialCommunityIcons";
import { db } from "../../common/database";
import filesystem from "../../common/filesystem";
@@ -41,10 +41,12 @@ import {
isImage,
isVideo
} from "@notesnook/core/utils/filename";
import { useSettingStore } from "../../stores/use-setting-store";
import { FlashList } from "react-native-actions-sheet/dist/src/views/FlashList";
export const AttachmentDialog = ({ note }) => {
const colors = useThemeStore((state) => state.colors);
const { height } = useSettingStore((state) => state.dimensions);
const [attachments, setAttachments] = useState(
note
? db.attachments.ofNote(note.id, "all")
@@ -159,7 +161,8 @@ export const AttachmentDialog = ({ note }) => {
style={{
width: "100%",
alignSelf: "center",
paddingHorizontal: 12
paddingHorizontal: 12,
height: height * 0.85
}}
>
<SheetProvider context="attachments-list" />
@@ -228,51 +231,48 @@ export const AttachmentDialog = ({ note }) => {
}}
/>
<FlatList
<View>
<ScrollView
style={{
width: "100%",
height: 50,
flexDirection: "row",
backgroundColor: colors.bg
}}
contentContainerStyle={{
minWidth: "100%",
height: 50
}}
horizontal
>
{attachmentTypes.map((item) => (
<Button
type={currentFilter === item.filterBy ? "grayAccent" : "gray"}
key={item.title}
title={
item.title +
` (${filterAttachments(item.filterBy)?.length || 0})`
}
style={{
borderRadius: 0,
borderBottomWidth: 1,
flexGrow: 1,
borderBottomColor:
currentFilter !== item.filterBy
? "transparent"
: colors.accent
}}
onPress={() => {
setCurrentFilter(item.filterBy);
setAttachments(filterAttachments(item.filterBy));
}}
/>
))}
</ScrollView>
</View>
<FlashList
keyboardDismissMode="none"
keyboardShouldPersistTaps="always"
maxToRenderPerBatch={10}
initialNumToRender={10}
windowSize={5}
stickyHeaderIndices={[0]}
ListHeaderComponent={
<ScrollView
style={{
width: "100%",
height: 50,
flexDirection: "row",
backgroundColor: colors.bg
}}
contentContainerStyle={{
minWidth: "100%"
}}
horizontal
>
{attachmentTypes.map((item) => (
<Button
type={currentFilter === item.filterBy ? "grayAccent" : "gray"}
key={item.title}
title={
item.title +
` (${filterAttachments(item.filterBy)?.length || 0})`
}
style={{
borderRadius: 0,
borderBottomWidth: 1,
flexGrow: 1,
borderBottomColor:
currentFilter !== item.filterBy
? "transparent"
: colors.accent
}}
onPress={() => {
setCurrentFilter(item.filterBy);
setAttachments(filterAttachments(item.filterBy));
}}
/>
))}
</ScrollView>
}
ListEmptyComponent={
<View
style={{
@@ -294,8 +294,8 @@ export const AttachmentDialog = ({ note }) => {
}}
/>
}
estimatedItemSize={50}
data={attachments}
keyExtractor={(item) => item.id}
renderItem={renderItem}
/>

View File

@@ -93,6 +93,7 @@ const AuthModal = () => {
contentContainerStyle={{
height: Platform.OS === "android" ? "100%" : "100%"
}}
keyboardShouldPersistTaps="handled"
bounces={false}
>
{currentAuthMode !== AuthMode.login ? (

View File

@@ -63,6 +63,7 @@ export const SessionExpired = () => {
() => {
eSendEvent(eUserLoggedIn, true);
setVisible(false);
setFocused(false);
}
);
@@ -87,7 +88,6 @@ export const SessionExpired = () => {
const sub = eSubscribeEvent(eLoginSessionExpired, open);
return () => {
sub.unsubscribe?.();
setFocused(false);
};
}, [visible, open]);
@@ -103,6 +103,7 @@ export const SessionExpired = () => {
if (!user) return;
email.current = user.email;
setVisible(true);
setFocused(false);
return;
}
SettingsService.set({
@@ -115,6 +116,7 @@ export const SessionExpired = () => {
let user = await db.user.getUser();
if (!user) return;
email.current = user.email;
setFocused(false);
setVisible(true);
}
}, [email]);

View File

@@ -23,7 +23,6 @@ import NetInfo from "@react-native-community/netinfo";
import React, { useCallback, useEffect, useRef } from "react";
import {
AppState,
Appearance,
Keyboard,
Linking,
NativeEventEmitter,
@@ -37,6 +36,9 @@ import * as RNIap from "react-native-iap";
import { enabled } from "react-native-privacy-snapshot";
import { DatabaseLogger, db } from "../common/database";
import { MMKV } from "../common/database/mmkv";
import Migrate from "../components/sheets/migrate";
import NewFeature from "../components/sheets/new-feature";
import { Update } from "../components/sheets/update";
import { Walkthrough } from "../components/walkthroughs";
import {
clearAppState,
@@ -78,12 +80,9 @@ import {
eUserLoggedIn,
refreshNotesPage
} from "../utils/events";
import { getGithubVersion } from "../utils/github-version";
import { tabBarRef } from "../utils/global-refs";
import { sleep } from "../utils/time";
import Migrate from "../components/sheets/migrate";
import NewFeature from "../components/sheets/new-feature";
import { getGithubVersion } from "../utils/github-version";
import { Update } from "../components/sheets/update";
const onCheckSyncStatus = async (type) => {
const { disableSync, disableAutoSync } = SettingsService.get();
@@ -291,7 +290,6 @@ export const useAppEvents = () => {
useEffect(() => {
let eventSubscriptions = [
Appearance.addChangeListener(SettingsService.setTheme),
Linking.addEventListener("url", onAppOpenedFromURL),
SodiumEventEmitter.addListener(
"onSodiumProgress",
@@ -596,9 +594,12 @@ export const useAppEvents = () => {
useEffect(() => {
if (!loading) {
doAppLoadActions();
(async () => {
onUserUpdated();
doAppLoadActions();
})();
}
}, [loading]);
}, [loading, onUserUpdated]);
const initializeDatabase = useCallback(async () => {
if (!db.isInitialized) {
@@ -606,15 +607,28 @@ export const useAppEvents = () => {
DatabaseLogger.info("Initializing database");
await db.init();
}
await onUserUpdated();
if (IsDatabaseMigrationRequired()) return;
loadNotes();
}, [IsDatabaseMigrationRequired, loadNotes, onUserUpdated]);
}, [IsDatabaseMigrationRequired, loadNotes]);
useEffect(() => {
if (appLocked || !db.isInitialized || !loading) return;
initializeDatabase();
}, [initializeDatabase, appLocked, loading]);
let sub;
if (appLocked) {
const sub = useUserStore.subscribe((state) => {
if (
!state.appLocked &&
db.isInitialized &&
useNoteStore.getState().loading
) {
initializeDatabase();
sub();
}
});
}
return () => {
sub?.();
};
}, [appLocked, initializeDatabase]);
return initializeDatabase;
};
@@ -631,7 +645,6 @@ const doAppLoadActions = async () => {
if (await checkAppUpdateAvailable()) return;
if (await checkForRateAppRequest()) return;
if (await PremiumService.getRemainingTrialDaysStatus()) return;
if (SettingsService.get().introCompleted) {
useMessageStore.subscribe((state) => {
let dialogs = state.dialogs;

View File

@@ -7,7 +7,6 @@
"@flyerhq/react-native-link-preview": "^1.6.0",
"@mdi/js": "^6.7.96",
"absolutify": "^0.1.0",
"buffer": "^6.0.3",
"dayjs": "^1.10.4",
"entities": "^3.0.1",
"html-to-text": "9.0.5",
@@ -30,7 +29,9 @@
"react-native-blob-util": "0.17.3",
"react-native-swiper-flatlist": "3.2.2",
"@streetwriters/showdown": "^3.0.1-alpha.2",
"react-native-keyboard-aware-scroll-view": "^0.9.5"
"react-native-keyboard-aware-scroll-view": "^0.9.5",
"buffer": "^6.0.3",
"deprecated-react-native-prop-types": "^4.1.0"
},
"sideEffects": false
}

View File

@@ -128,6 +128,7 @@ const Editor = React.memo(
const onError = useCallback(() => {
renderKey.current =
renderKey.current === `editor-0` ? `editor-1` : `editor-0`;
editor.state.current.ready = false;
editor.setLoading(true);
}, [editor]);

View File

@@ -72,7 +72,7 @@ const EditorOverlay = ({ editorId = "", editor }) => {
translateValue.value = 0;
timers.current.error = setTimeout(() => {
setError(true);
}, 15 * 1000);
}, 60 * 1000);
} else {
clearTimers();
const timeDiffSinceLoadStarted =
@@ -109,7 +109,7 @@ const EditorOverlay = ({ editorId = "", editor }) => {
clearTimers();
eUnSubscribeEvent("loadingNote" + editorId, load);
};
}, [editorId, load, translateValue]);
}, [editorId, load, translateValue, opacity]);
const animatedStyle = useAnimatedStyle(() => {
return {

View File

@@ -87,7 +87,7 @@ class Commands {
this.ref?.current?.requestFocus();
}, 1);
} else {
await sleep(200);
await sleep(400);
await this.doAsync("editor.commands.focus()");
}
};

View File

@@ -344,6 +344,14 @@ export const useEditor = (
) => {
state.current.currentlyEditing = true;
const editorState = useEditorStore.getState();
if (
!state.current.ready &&
(await isEditorLoaded(editorRef, sessionIdRef.current))
) {
state.current.ready = true;
}
if (item && item.type === "new") {
currentNote.current && (await reset());
const nextSessionId = makeSessionId(item as NoteType);
@@ -369,6 +377,10 @@ export const useEditor = (
} else {
overlay(true);
}
if (!state.current.ready) {
currentNote.current = item as NoteType;
return;
}
lastContentChangeTime.current = item.dateEdited;
const nextSessionId = makeSessionId(item as NoteType);
lockedSessionId.current = nextSessionId;
@@ -611,14 +623,14 @@ export const useEditor = (
);
await commands.setSessionId(sessionIdRef.current);
await onReady();
state.current.ready = true;
await commands.setSettings();
if (currentNote.current) {
loadNote({ ...currentNote.current, forced: true });
} else {
await commands.setPlaceholder(placeholderTip.current);
}
state.current.ready = true;
}, 300);
}, 1000);
}, [
onReady,
postMessage,

View File

@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import React, { useEffect } from "react";
import React, { useEffect, useRef } from "react";
import {
AppState,
KeyboardAvoidingView,
@@ -47,11 +47,18 @@ export const EditorWrapper = ({ width }) => {
(state) => state.settings.introCompleted
);
const keyboard = useKeyboard();
const prevState = useRef();
const onAppStateChanged = async (state) => {
if (!prevState.current) {
prevState.current = state;
return;
}
if (state === "active") {
editorController.current.onReady();
editorController.current.overlay(false);
} else {
prevState.current = state;
}
};

View File

@@ -74,6 +74,8 @@ const Group = ({
data={route.params.sections}
keyExtractor={keyExtractor}
renderItem={renderItem}
enableOnAndroid
enableAutomaticScroll
/>
) : null}
{route.params.component ? components[route.params.component] : null}

View File

@@ -1,6 +0,0 @@
[android]
target = Google Inc.:Google APIs:23
[maven_repositories]
central = https://repo1.maven.org/maven2

View File

@@ -1,75 +0,0 @@
[ignore]
; We fork some components by platform
.*/*[.]android.js
; Ignore "BUCK" generated dirs
<PROJECT_ROOT>/\.buckd/
; Ignore polyfills
node_modules/react-native/Libraries/polyfills/.*
; These should not be required directly
; require from fbjs/lib instead: require('fbjs/lib/warning')
node_modules/warning/.*
; Flow doesn't support platforms
.*/Libraries/Utilities/LoadingView.js
.*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$
[untyped]
.*/node_modules/@react-native-community/cli/.*/.*
[include]
[libs]
node_modules/react-native/interface.js
node_modules/react-native/flow/
[options]
emoji=true
format.bracket_spacing=false
module.file_ext=.js
module.file_ext=.json
module.file_ext=.ios.js
munge_underscores=true
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1'
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub'
suppress_type=$FlowIssue
suppress_type=$FlowFixMe
suppress_type=$FlowFixMeProps
suppress_type=$FlowFixMeState
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
[lints]
sketchy-null-number=warn
sketchy-null-mixed=warn
sketchy-number=warn
untyped-type-import=warn
nonstrict-import=warn
deprecated-type=warn
unsafe-getters-setters=warn
inexact-spread=warn
unnecessary-invariant=warn
signature-verification-failure=warn
deprecated-utility=error
[strict]
deprecated-type
nonstrict-import
sketchy-null
unclear-type
unsafe-getters-setters
untyped-import
untyped-type-import
[version]
^0.176.3

View File

@@ -1,4 +1,4 @@
source 'https://rubygems.org'
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby '2.7.5'
gem 'cocoapods', '~> 1.11', '>= 1.11.2'
ruby ">= 2.6.10"
gem 'cocoapods', '~> 1.12'

View File

@@ -1,96 +1,53 @@
apply plugin: "com.android.application"
apply plugin: "com.facebook.react"
apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"
import com.android.build.OutputFile
import groovy.json.JsonSlurper
import org.apache.tools.ant.taskdefs.condition.Os
/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
* and bundleReleaseJsAndAssets).
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation. If none specified and
* // "index.android.js" exists, it will be used. Otherwise "index.js" is
* // default. Can be overridden with ENTRY_FILE environment variable.
* entryFile: "index.android.js",
*
* // https://reactnative.dev/docs/performance#enable-the-ram-format
* bundleCommand: "ram-bundle",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // whether to disable dev mode in custom build variants (by default only disabled in release)
* // for example: to disable dev mode in the staging build type (if configured)
* devDisabledInStaging: true,
* // The configuration property can be in the following formats
* // 'devDisabledIn${productFlavor}${buildType}'
* // 'devDisabledIn${buildType}'
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"],
*
* // override which node gets called and with what additional arguments
* nodeExecutableAndArgs: ["node"],
*
* // supply additional arguments to the packager
* extraPackagerArgs: []
* ]
*/
project.ext.react = [
enableHermes: true, // clean and rebuild if changing
bundleCommand: "webpack-bundle",
bundleInDebug: false,
cliPath: "../../../node_modules/react-native/cli.js",
hermesCommand: "../../../node_modules/react-native/sdks/hermesc/%OS-BIN%/hermesc",
composeSourceMapsPath: "../node_modules/react-native/scripts/compose-source-maps.js"
]
apply from: "../../../node_modules/react-native/react.gradle"
react {
/* Folders */
// The root of your project, i.e. where "package.json" lives. Default is '..'
root = file("$rootDir/../")
// The folder where the react-native NPM package is. Default is ../node_modules/react-native
reactNativeDir = file("$rootDir/../../node_modules/react-native")
// The folder where the react-native Codegen package is. Default is ../node_modules/react-native-codegen
codegenDir = file("$rootDir/../../node_modules/react-native-codegen")
// The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
cliFile = file("$rootDir/../../node_modules/react-native/cli.js")
/* Variants */
// The list of variants to that are debuggable. For those we're going to
// skip the bundling of the JS bundle and the assets. By default is just 'debug'.
// If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
// debuggableVariants = ["liteDebug", "prodDebug"]
/* Bundling */
// A list containing the node command and its flags. Default is just 'node'.
// nodeExecutableAndArgs = ["node"]
//
// The command to run when bundling. By default is 'bundle'
bundleCommand = "webpack-bundle"
//
// The path to the CLI configuration file. Default is empty.
// bundleConfig = file(../rn-cli.config.js)
//
// The name of the generated asset file containing your JS bundle
// bundleAssetName = "MyApplication.android.bundle"
//
// The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
// entryFile = file("../js/MyApplication.android.js")
//
// A list of extra flags to pass to the 'bundle' commands.
// See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
// extraPackagerArgs = []
/* Hermes Commands */
// The hermes compiler command to run. By default it is 'hermesc'
hermesCommand = "$rootDir/../../node_modules/react-native/sdks/hermesc/%OS-BIN%/hermesc"
//
// The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
hermesFlags = ["-O", "-output-source-map"]
}
println(projectDir);
/**
* Set this to true to create two separate APKs instead of one:
@@ -120,17 +77,6 @@ def enableProguardInReleaseBuilds = true
*/
def jscFlavor = 'org.webkit:android-jsc:+'
/**
* Whether to enable the Hermes VM.
*
* This should be set on project.ext.react and mirrored here. If it is not set
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
* and the benefits of using Hermes will therefore be sharply reduced.
*/
def enableHermes = project.ext.react.get("enableHermes", true);
/**
* Architectures to build native code for.
*/
@@ -158,7 +104,8 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
namespace "com.streetwriters.notesnook"
defaultConfig {
applicationId "com.streetwriters.notesnook"
minSdkVersion rootProject.ext.minSdkVersion
@@ -169,73 +116,6 @@ android {
testBuildType System.getProperty('testBuildType', 'debug')
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
missingDimensionStrategy "store", "play"
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
if (isNewArchitectureEnabled()) {
// We configure the NDK build only if you decide to opt-in for the New Architecture.
externalNativeBuild {
ndkBuild {
arguments "APP_PLATFORM=android-21",
"APP_STL=c++_shared",
"NDK_TOOLCHAIN_VERSION=clang",
"GENERATED_SRC_DIR=$buildDir/generated/source",
"PROJECT_BUILD_DIR=$buildDir",
"REACT_ANDROID_DIR=$rootDir/../../node_modules/react-native/ReactAndroid",
"REACT_ANDROID_BUILD_DIR=$rootDir/../../node_modules/react-native/ReactAndroid/build",
"NODE_MODULES_DIR=$rootDir/../../node_modules"
cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
cppFlags "-std=c++17"
// Make sure this target name is the same you specify inside the
// src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.
targets "notesnook_appmodules"
}
}
if (!enableSeparateBuildPerCPUArchitecture) {
ndk {
abiFilters (*reactNativeArchitectures())
}
}
}
}
if (isNewArchitectureEnabled()) {
// We configure the NDK build only if you decide to opt-in for the New Architecture.
externalNativeBuild {
ndkBuild {
path "$projectDir/src/main/jni/Android.mk"
}
}
def reactAndroidProjectDir = project(':ReactAndroid').projectDir
def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
afterEvaluate {
// If you wish to add a custom TurboModule or component locally,
// you should uncomment this line.
// preBuild.dependsOn("generateCodegenArtifactsFromSchema")
preDebugBuild.dependsOn(packageReactNdkDebugLibs)
preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
// Due to a bug inside AGP, we have to explicitly set a dependency
// between configureNdkBuild* tasks and the preBuild tasks.
// This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
configureNdkBuildRelease.dependsOn(preReleaseBuild)
configureNdkBuildDebug.dependsOn(preDebugBuild)
reactNativeArchitectures().each { architecture ->
tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure {
dependsOn("preDebugBuild")
}
tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure {
dependsOn("preReleaseBuild")
}
}
}
}
splits {
@@ -309,63 +189,34 @@ android {
}
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0")
implementation("androidx.core:core-splashscreen:1.0.0")
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'com.squareup.okhttp3:okhttp:4.9.2'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.2'
implementation 'com.squareup.okhttp3:okhttp-urlconnection:4.9.2'
implementation "androidx.core:core-splashscreen:1.0.0-rc01"
androidTestImplementation('com.wix:detox:+')
implementation 'com.tencent:mmkv-static:1.2.7'
implementation 'androidx.appcompat:appcompat:1.1.0'
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
}
androidTestImplementation('com.wix:detox:+')
implementation 'androidx.appcompat:appcompat:1.1.0'
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
exclude group:'com.squareup.okhttp3', module:'okhttp'
}
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
if (enableHermes) {
implementation("com.facebook.react:hermes-engine:+") { // From node_modules
exclude group:'com.facebook.fbjni'
}
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}")
if (hermesEnabled.toBoolean()) {
implementation("com.facebook.react:hermes-android")
} else {
implementation jscFlavor
}
}
if (isNewArchitectureEnabled()) {
// If new architecture is enabled, we let you build RN from source
// Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
// This will be applied to all the imported transtitive dependency.
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute(module("com.facebook.react:react-native"))
.using(project(":ReactAndroid")).because("On New Architecture we're building React Native from source")
substitute(module("com.facebook.react:hermes-engine"))
.using(project(":ReactAndroid:hermes-engine"))
.because("On New Architecture we're building Hermes from source")
}
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.implementation
into 'libs'
}
task deleteFiles(type: Delete) {
delete './src/main/assets/static'
@@ -388,12 +239,5 @@ apply from: "../../../node_modules/react-native-vector-icons/fonts.gradle"
apply from: file("../../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
def isNewArchitectureEnabled() {
// To opt-in for the New Architecture, you can either:
// - Set `newArchEnabled` to true inside the `gradle.properties` file
// - Invoke gradle with `-newArchEnabled=true`
// - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
}

View File

@@ -17,7 +17,6 @@ import com.facebook.flipper.plugins.inspector.DescriptorMapping;
import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
import com.facebook.react.ReactInstanceEventListener;
import com.facebook.react.ReactInstanceManager;
@@ -31,7 +30,6 @@ public class ReactNativeFlipper {
final FlipperClient client = AndroidFlipperClient.getInstance(context);
client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
client.addPlugin(new ReactFlipperPlugin());
client.addPlugin(new DatabasesFlipperPlugin(context));
client.addPlugin(new SharedPreferencesFlipperPlugin(context));
client.addPlugin(CrashReporterPlugin.getInstance());

View File

@@ -1,23 +1,23 @@
package com.streetwriters.notesnook;
import com.facebook.react.ReactActivity;
import android.content.Intent;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Bundle;
import android.webkit.WebView;
import com.facebook.react.ReactActivityDelegate;
import com.zoontek.rnbootsplash.RNBootSplash;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
import com.facebook.react.defaults.DefaultReactActivityDelegate;
import com.zoontek.rnbootsplash.RNBootSplash;
public class MainActivity extends ReactActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
RNBootSplash.init(this);
super.onCreate(null);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && BuildConfig.DEBUG) {
WebView.setWebContentsDebuggingEnabled(true);
}
@@ -30,42 +30,19 @@ public class MainActivity extends ReactActivity {
}
/**
* Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and
* you can specify the rendered you wish to use (Fabric or the older renderer).
/**
* Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link
* DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React
* (aka React 18) with two boolean flags.
*/
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new MainActivityDelegate(this, getMainComponentName());
return new DefaultReactActivityDelegate(
this,
getMainComponentName(),
DefaultNewArchitectureEntryPoint.getFabricEnabled());
}
public static class MainActivityDelegate extends ReactActivityDelegate {
public MainActivityDelegate(ReactActivity activity, String mainComponentName) {
super(activity, mainComponentName);
}
@Override
protected ReactRootView createRootView() {
ReactRootView reactRootView = new ReactRootView(getContext());
// If you opted-in for the New Architecture, we enable the Fabric Renderer.
reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);
return reactRootView;
}
@Override
protected boolean isConcurrentRootEnabled() {
// If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
// More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
}
@Override
protected void loadApp(String appKey) {
RNBootSplash.init(getPlainActivity());
super.loadApp(appKey);
}
}
@Override
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
@@ -91,5 +68,5 @@ public void onConfigurationChanged(Configuration newConfig) {
public void invokeDefaultOnBackPressed() {
moveTaskToBack(true);
}
}

View File

@@ -1,117 +1,32 @@
package com.streetwriters.notesnook;
import android.app.Application;
import android.content.Context;
import android.util.Log;
import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.soloader.SoLoader;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import androidx.multidex.MultiDexApplication;
import com.facebook.react.bridge.JavaScriptExecutorFactory;
//import com.facebook.react.modules.systeminfo.AndroidInfoHelpers;
import com.facebook.react.TurboReactPackage;
import com.facebook.react.module.model.ReactModuleInfo;
import com.facebook.react.module.model.ReactModuleInfoProvider;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.onibenjo.htmltopdf.RNHTMLtoPDFModule;
import com.reactnativedocumentpicker.DocumentPickerModule;
import com.vinzscam.reactnativefileviewer.RNFileViewerModule;
import com.facebook.react.config.ReactFeatureFlags;
import com.streetwriters.notesnook.newarchitecture.MainApplicationReactNativeHost;
import cl.json.RNShareModule;
import px.tooltips.RNTooltipsModule;
//import io.csie.kudo.reactnative.v8.executor.V8ExecutorFactory;
import androidx.annotation.Nullable;
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
import com.facebook.react.defaults.DefaultReactNativeHost;
public class MainApplication extends MultiDexApplication implements ReactApplication {
private final ReactNativeHost mNewArchitectureNativeHost =
new MainApplicationReactNativeHost(this);
private final ReactNativeHost mReactNativeHost =
new ReactNativeHost(this) {
new DefaultReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
// @Nullable
// @Override
// protected String getBundleAssetName() {
// final String v8BundleAssetName = V8ExecutorFactory.getBundleAssetName(getApplicationContext(), getUseDeveloperSupport());
// if (v8BundleAssetName != null) {
// return v8BundleAssetName;
// }
// return super.getBundleAssetName();
// }
// @Override
// protected JavaScriptExecutorFactory getJavaScriptExecutorFactory() {
// return new V8ExecutorFactory(
// getApplicationContext(),
// getPackageName(),
// AndroidInfoHelpers.getFriendlyDeviceName(),
// getUseDeveloperSupport());
// }
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
packages.add(new TurboReactPackage() {
@Override
public NativeModule getModule(String name, ReactApplicationContext reactContext) {
switch (name) {
case "NNativeModule":
return new RCTNNativeModule(reactContext);
case "RNTooltips":
return new RNTooltipsModule(reactContext);
case "RNHTMLtoPDF":
return new RNHTMLtoPDFModule(reactContext);
case "RNFileViewer":
return new RNFileViewerModule(reactContext);
case "RNDocumentPicker":
return new DocumentPickerModule(reactContext);
case "RNShare":
return new RNShareModule(reactContext);
default:
throw new IllegalArgumentException("Could not find module $name");
}
}
@Override
public ReactModuleInfoProvider getReactModuleInfoProvider() {
return new ReactModuleInfoProvider() {
@Override
public Map<String, ReactModuleInfo> getReactModuleInfos() {
Map<String, ReactModuleInfo> map = new HashMap<String, ReactModuleInfo>();
map.put("NNativeModule", getModuleInfo("NNativeModule", "com.streetwriters.notesnook.NNativeModule"));
map.put("RNTooltips", getModuleInfo("RNTooltips", "px.tooltips.RNTooltipsModule"));
map.put("RNHTMLtoPDF", getModuleInfo("RNHTMLtoPDF", "com.onibenjo.htmltopdf.RNHTMLtoPDFModule"));
map.put("RNFileViewer", getModuleInfo("RNFileViewer", "com.vinzscam.reactnativefileviewer.RNFileViewerModule"));
map.put("RNDocumentPicker", getModuleInfo("RNDocumentPicker", "io.github.elyx0.reactnativedocumentpicker.DocumentPickerModule"));
map.put("RNShare", getModuleInfo("RNShare", "cl.json.RNShareModule"));
return map;
}
};
}
});
packages.add(new NNativeModulePackage());
return packages;
}
@@ -119,60 +34,32 @@ public class MainApplication extends MultiDexApplication implements ReactApplica
protected String getJSMainModuleName() {
return "index";
}
@Override
protected boolean isNewArchEnabled() {
return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
}
@Override
protected Boolean isHermesEnabled() {
return BuildConfig.IS_HERMES_ENABLED;
}
};
/**
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
*
* @param context
* @param reactInstanceManager
*/
private static void initializeFlipper(
Context context, ReactInstanceManager reactInstanceManager) {
if (BuildConfig.DEBUG) {
try {
/*
We use reflection here to pick up the class that initializes Flipper,
since Flipper library is not available in release mode
*/
Class<?> aClass = Class.forName("com.streetwriters.notesnook.ReactNativeFlipper");
aClass
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
.invoke(null, context, reactInstanceManager);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
public ReactModuleInfo getModuleInfo(String reactClass, String className) {
return new ReactModuleInfo(reactClass, className, true, false, false, false, true);
}
@Override
public ReactNativeHost getReactNativeHost() {
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
return mNewArchitectureNativeHost;
} else {
return mReactNativeHost;
}
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
// If you opted-in for the New Architecture, we enable the TurboModule system
ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
SoLoader.init(this, /* native exopackage */ false);
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
// If you opted-in for the New Architecture, we load the native entry point for this app.
DefaultNewArchitectureEntryPoint.load();
}
com.streetwriters.notesnook.ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
}
}

View File

@@ -3,7 +3,8 @@ import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import com.tencent.mmkv.MMKV;
import com.ammarahmed.mmkv.MMKV;
public class OnClearFromRecentService extends Service {
@@ -33,7 +34,6 @@ public class OnClearFromRecentService extends Service {
} catch (Exception e) {
}
//System.exit(0);
}
}

View File

@@ -9,7 +9,6 @@ import com.facebook.react.bridge.ReactContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactMethod;
;
public class RCTNNativeModule extends ReactContextBaseJavaModule {

View File

@@ -1,38 +1,29 @@
package com.streetwriters.notesnook;
import android.os.Bundle;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
import com.facebook.react.defaults.DefaultReactActivityDelegate;
public class ShareActivity extends ReactActivity {
public static class ShareActivityDelegate extends ReactActivityDelegate {
public ShareActivityDelegate(ReactActivity activity, String mainComponentName) {
super(activity, mainComponentName);
}
@Override
protected ReactRootView createRootView() {
ReactRootView reactRootView = new ReactRootView(getContext());
// If you opted-in for the New Architecture, we enable the Fabric Renderer.
reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);
return reactRootView;
}
@Override
protected boolean isConcurrentRootEnabled() {
// If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
// More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
}
}
/**
* Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and
* you can specify the rendered you wish to use (Fabric or the older renderer).
* Returns the instance of the {@link ReactActivityDelegate}. Here we use a util class {@link
* DefaultReactActivityDelegate} which allows you to easily enable Fabric and Concurrent React
* (aka React 18) with two boolean flags.
*/
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ShareActivity.ShareActivityDelegate(this, getMainComponentName());
return new DefaultReactActivityDelegate(
this,
getMainComponentName(),
// If you opted-in for the New Architecture, we enable the Fabric Renderer.
DefaultNewArchitectureEntryPoint.getFabricEnabled(), // fabricEnabled
// If you opted-in for the New Architecture, we enable Concurrent React (i.e. React 18).
DefaultNewArchitectureEntryPoint.getConcurrentReactEnabled() // concurrentRootEnabled
);
}
@Override

View File

@@ -1,116 +0,0 @@
package com.streetwriters.notesnook.newarchitecture;
import android.app.Application;
import androidx.annotation.NonNull;
import com.facebook.react.PackageList;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
import com.facebook.react.bridge.JSIModulePackage;
import com.facebook.react.bridge.JSIModuleProvider;
import com.facebook.react.bridge.JSIModuleSpec;
import com.facebook.react.bridge.JSIModuleType;
import com.facebook.react.bridge.JavaScriptContextHolder;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.UIManager;
import com.facebook.react.fabric.ComponentFactory;
import com.facebook.react.fabric.CoreComponentsRegistry;
import com.facebook.react.fabric.FabricJSIModuleProvider;
import com.facebook.react.uimanager.ViewManagerRegistry;
import com.streetwriters.notesnook.BuildConfig;
import com.streetwriters.notesnook.newarchitecture.components.MainComponentsRegistry;
import com.streetwriters.notesnook.newarchitecture.modules.MainApplicationTurboModuleManagerDelegate;
import java.util.ArrayList;
import java.util.List;
import com.facebook.react.fabric.ReactNativeConfig;
/**
* A {@link ReactNativeHost} that helps you load everything needed for the New Architecture, both
* TurboModule delegates and the Fabric Renderer.
*
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
* `newArchEnabled` property). Is ignored otherwise.
*/
public class MainApplicationReactNativeHost extends ReactNativeHost {
public MainApplicationReactNativeHost(Application application) {
super(application);
}
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
// TurboModules must also be loaded here providing a valid TurboReactPackage implementation:
// packages.add(new TurboReactPackage() { ... });
// If you have custom Fabric Components, their ViewManagers should also be loaded here
// inside a ReactPackage.
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
@NonNull
@Override
protected ReactPackageTurboModuleManagerDelegate.Builder
getReactPackageTurboModuleManagerDelegateBuilder() {
// Here we provide the ReactPackageTurboModuleManagerDelegate Builder. This is necessary
// for the new architecture and to use TurboModules correctly.
return new MainApplicationTurboModuleManagerDelegate.Builder();
}
@Override
protected JSIModulePackage getJSIModulePackage() {
return new JSIModulePackage() {
@Override
public List<JSIModuleSpec> getJSIModules(
final ReactApplicationContext reactApplicationContext,
final JavaScriptContextHolder jsContext) {
final List<JSIModuleSpec> specs = new ArrayList<>();
// Here we provide a new JSIModuleSpec that will be responsible of providing the
// custom Fabric Components.
specs.add(
new JSIModuleSpec() {
@Override
public JSIModuleType getJSIModuleType() {
return JSIModuleType.UIManager;
}
@Override
public JSIModuleProvider<UIManager> getJSIModuleProvider() {
final ComponentFactory componentFactory = new ComponentFactory();
CoreComponentsRegistry.register(componentFactory);
// Here we register a Components Registry.
// The one that is generated with the template contains no components
// and just provides you the one from React Native core.
MainComponentsRegistry.register(componentFactory);
final ReactInstanceManager reactInstanceManager = getReactInstanceManager();
ViewManagerRegistry viewManagerRegistry =
new ViewManagerRegistry(
reactInstanceManager.getOrCreateViewManagers(reactApplicationContext));
return new FabricJSIModuleProvider(
reactApplicationContext,
componentFactory,
ReactNativeConfig.DEFAULT_CONFIG,
viewManagerRegistry);
}
});
return specs;
}
};
}
}

View File

@@ -1,36 +0,0 @@
package com.streetwriters.notesnook.newarchitecture.components;
import com.facebook.jni.HybridData;
import com.facebook.proguard.annotations.DoNotStrip;
import com.facebook.react.fabric.ComponentFactory;
import com.facebook.soloader.SoLoader;
/**
* Class responsible to load the custom Fabric Components. This class has native methods and needs a
* corresponding C++ implementation/header file to work correctly (already placed inside the jni/
* folder for you).
*
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
* `newArchEnabled` property). Is ignored otherwise.
*/
@DoNotStrip
public class MainComponentsRegistry {
static {
SoLoader.loadLibrary("fabricjni");
}
@DoNotStrip private final HybridData mHybridData;
@DoNotStrip
private native HybridData initHybrid(ComponentFactory componentFactory);
@DoNotStrip
private MainComponentsRegistry(ComponentFactory componentFactory) {
mHybridData = initHybrid(componentFactory);
}
@DoNotStrip
public static MainComponentsRegistry register(ComponentFactory componentFactory) {
return new MainComponentsRegistry(componentFactory);
}
}

View File

@@ -1,48 +0,0 @@
package com.streetwriters.notesnook.newarchitecture.modules;
import com.facebook.jni.HybridData;
import com.facebook.react.ReactPackage;
import com.facebook.react.ReactPackageTurboModuleManagerDelegate;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.soloader.SoLoader;
import java.util.List;
/**
* Class responsible to load the TurboModules. This class has native methods and needs a
* corresponding C++ implementation/header file to work correctly (already placed inside the jni/
* folder for you).
*
* <p>Please note that this class is used ONLY if you opt-in for the New Architecture (see the
* `newArchEnabled` property). Is ignored otherwise.
*/
public class MainApplicationTurboModuleManagerDelegate
extends ReactPackageTurboModuleManagerDelegate {
private static volatile boolean sIsSoLibraryLoaded;
protected MainApplicationTurboModuleManagerDelegate(
ReactApplicationContext reactApplicationContext, List<ReactPackage> packages) {
super(reactApplicationContext, packages);
}
protected native HybridData initHybrid();
native boolean canCreateTurboModule(String moduleName);
public static class Builder extends ReactPackageTurboModuleManagerDelegate.Builder {
protected MainApplicationTurboModuleManagerDelegate build(
ReactApplicationContext context, List<ReactPackage> packages) {
return new MainApplicationTurboModuleManagerDelegate(context, packages);
}
}
@Override
protected synchronized void maybeLoadOtherSoLibraries() {
if (!sIsSoLibraryLoaded) {
// If you change the name of your application .so file in the Android.mk file,
// make sure you update the name here as well.
SoLoader.loadLibrary("rndiffapp_appmodules");
sIsSoLibraryLoaded = true;
}
}
}

View File

@@ -1,48 +0,0 @@
THIS_DIR := $(call my-dir)
include $(REACT_ANDROID_DIR)/Android-prebuilt.mk
# If you wish to add a custom TurboModule or Fabric component in your app you
# will have to include the following autogenerated makefile.
# include $(GENERATED_SRC_DIR)/codegen/jni/Android.mk
include $(CLEAR_VARS)
LOCAL_PATH := $(THIS_DIR)
# You can customize the name of your application .so file here.
LOCAL_MODULE := notesnook_appmodules
LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
# If you wish to add a custom TurboModule or Fabric component in your app you
# will have to uncomment those lines to include the generated source
# files from the codegen (placed in $(GENERATED_SRC_DIR)/codegen/jni)
#
# LOCAL_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni
# LOCAL_SRC_FILES += $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)
# LOCAL_EXPORT_C_INCLUDES += $(GENERATED_SRC_DIR)/codegen/jni
# Here you should add any native library you wish to depend on.
LOCAL_SHARED_LIBRARIES := \
libfabricjni \
libfbjni \
libfolly_runtime \
libglog \
libjsi \
libreact_codegen_rncore \
libreact_debug \
libreact_nativemodule_core \
libreact_render_componentregistry \
libreact_render_core \
libreact_render_debug \
libreact_render_graphics \
librrc_view \
libruntimeexecutor \
libturbomodulejsijni \
libyoga
LOCAL_CFLAGS := -DLOG_TAG=\"ReactNative\" -fexceptions -frtti -std=c++17 -Wall
include $(BUILD_SHARED_LIBRARY)

View File

@@ -1,24 +0,0 @@
#include "MainApplicationModuleProvider.h"
#include <rncore.h>
namespace facebook {
namespace react {
std::shared_ptr<TurboModule> MainApplicationModuleProvider(
const std::string moduleName,
const JavaTurboModule::InitParams &params) {
// Here you can provide your own module provider for TurboModules coming from
// either your application or from external libraries. The approach to follow
// is similar to the following (for a library called `samplelibrary`:
//
// auto module = samplelibrary_ModuleProvider(moduleName, params);
// if (module != nullptr) {
// return module;
// }
// return rncore_ModuleProvider(moduleName, params);
return rncore_ModuleProvider(moduleName, params);
}
} // namespace react
} // namespace facebook

View File

@@ -1,16 +0,0 @@
#pragma once
#include <memory>
#include <string>
#include <ReactCommon/JavaTurboModule.h>
namespace facebook {
namespace react {
std::shared_ptr<TurboModule> MainApplicationModuleProvider(
const std::string moduleName,
const JavaTurboModule::InitParams &params);
} // namespace react
} // namespace facebook

View File

@@ -1,45 +0,0 @@
#include "MainApplicationTurboModuleManagerDelegate.h"
#include "MainApplicationModuleProvider.h"
namespace facebook {
namespace react {
jni::local_ref<MainApplicationTurboModuleManagerDelegate::jhybriddata>
MainApplicationTurboModuleManagerDelegate::initHybrid(
jni::alias_ref<jhybridobject>) {
return makeCxxInstance();
}
void MainApplicationTurboModuleManagerDelegate::registerNatives() {
registerHybrid({
makeNativeMethod(
"initHybrid", MainApplicationTurboModuleManagerDelegate::initHybrid),
makeNativeMethod(
"canCreateTurboModule",
MainApplicationTurboModuleManagerDelegate::canCreateTurboModule),
});
}
std::shared_ptr<TurboModule>
MainApplicationTurboModuleManagerDelegate::getTurboModule(
const std::string name,
const std::shared_ptr<CallInvoker> jsInvoker) {
// Not implemented yet: provide pure-C++ NativeModules here.
return nullptr;
}
std::shared_ptr<TurboModule>
MainApplicationTurboModuleManagerDelegate::getTurboModule(
const std::string name,
const JavaTurboModule::InitParams &params) {
return MainApplicationModuleProvider(name, params);
}
bool MainApplicationTurboModuleManagerDelegate::canCreateTurboModule(
std::string name) {
return getTurboModule(name, nullptr) != nullptr ||
getTurboModule(name, {.moduleName = name}) != nullptr;
}
} // namespace react
} // namespace facebook

View File

@@ -1,38 +0,0 @@
#include <memory>
#include <string>
#include <ReactCommon/TurboModuleManagerDelegate.h>
#include <fbjni/fbjni.h>
namespace facebook {
namespace react {
class MainApplicationTurboModuleManagerDelegate
: public jni::HybridClass<
MainApplicationTurboModuleManagerDelegate,
TurboModuleManagerDelegate> {
public:
// Adapt it to the package you used for your Java class.
static constexpr auto kJavaDescriptor =
"Lcom/rndiffapp/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;";
static jni::local_ref<jhybriddata> initHybrid(jni::alias_ref<jhybridobject>);
static void registerNatives();
std::shared_ptr<TurboModule> getTurboModule(
const std::string name,
const std::shared_ptr<CallInvoker> jsInvoker) override;
std::shared_ptr<TurboModule> getTurboModule(
const std::string name,
const JavaTurboModule::InitParams &params) override;
/**
* Test-only method. Allows user to verify whether a TurboModule can be
* created by instances of this class.
*/
bool canCreateTurboModule(std::string name);
};
} // namespace react
} // namespace facebook

View File

@@ -1,61 +0,0 @@
#include "MainComponentsRegistry.h"
#include <CoreComponentsRegistry.h>
#include <fbjni/fbjni.h>
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
#include <react/renderer/components/rncore/ComponentDescriptors.h>
namespace facebook {
namespace react {
MainComponentsRegistry::MainComponentsRegistry(ComponentFactory *delegate) {}
std::shared_ptr<ComponentDescriptorProviderRegistry const>
MainComponentsRegistry::sharedProviderRegistry() {
auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();
// Custom Fabric Components go here. You can register custom
// components coming from your App or from 3rd party libraries here.
//
// providerRegistry->add(concreteComponentDescriptorProvider<
// AocViewerComponentDescriptor>());
return providerRegistry;
}
jni::local_ref<MainComponentsRegistry::jhybriddata>
MainComponentsRegistry::initHybrid(
jni::alias_ref<jclass>,
ComponentFactory *delegate) {
auto instance = makeCxxInstance(delegate);
auto buildRegistryFunction =
[](EventDispatcher::Weak const &eventDispatcher,
ContextContainer::Shared const &contextContainer)
-> ComponentDescriptorRegistry::Shared {
auto registry = MainComponentsRegistry::sharedProviderRegistry()
->createComponentDescriptorRegistry(
{eventDispatcher, contextContainer});
auto mutableRegistry =
std::const_pointer_cast<ComponentDescriptorRegistry>(registry);
mutableRegistry->setFallbackComponentDescriptor(
std::make_shared<UnimplementedNativeViewComponentDescriptor>(
ComponentDescriptorParameters{
eventDispatcher, contextContainer, nullptr}));
return registry;
};
delegate->buildRegistryFunction = buildRegistryFunction;
return instance;
}
void MainComponentsRegistry::registerNatives() {
registerHybrid({
makeNativeMethod("initHybrid", MainComponentsRegistry::initHybrid),
});
}
} // namespace react
} // namespace facebook

View File

@@ -1,32 +0,0 @@
#pragma once
#include <ComponentFactory.h>
#include <fbjni/fbjni.h>
#include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
#include <react/renderer/componentregistry/ComponentDescriptorRegistry.h>
namespace facebook {
namespace react {
class MainComponentsRegistry
: public facebook::jni::HybridClass<MainComponentsRegistry> {
public:
// Adapt it to the package you used for your Java class.
constexpr static auto kJavaDescriptor =
"Lcom/rndiffapp/newarchitecture/components/MainComponentsRegistry;";
static void registerNatives();
MainComponentsRegistry(ComponentFactory *delegate);
private:
static std::shared_ptr<ComponentDescriptorProviderRegistry const>
sharedProviderRegistry();
static jni::local_ref<jhybriddata> initHybrid(
jni::alias_ref<jclass>,
ComponentFactory *delegate);
};
} // namespace react
} // namespace facebook

View File

@@ -1,11 +0,0 @@
#include <fbjni/fbjni.h>
#include "MainApplicationTurboModuleManagerDelegate.h"
#include "MainComponentsRegistry.h"
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
return facebook::jni::initialize(vm, [] {
facebook::react::MainApplicationTurboModuleManagerDelegate::
registerNatives();
facebook::react::MainComponentsRegistry::registerNatives();
});
}

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/logo_dark_background"/>
<foreground android:drawable="@mipmap/logo_dark_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="light_blue_50">#FFE1F5FE</color>
<color name="light_blue_200">#FF81D4FA</color>
<color name="light_blue_600">#FF039BE5</color>
<color name="light_blue_900">#FF01579B</color>
<color name="bootsplash_background">#1f1f1f</color>
</resources>

View File

@@ -1,8 +1,39 @@
<resources>
<!-- BootTheme should inherit from Theme.SplashScreen -->
<style name="BootTheme" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/bootsplash_background_dark</item>
<item name="windowSplashScreenAnimatedIcon">@mipmap/logo_dark</item>
<item name="postSplashScreenTheme">@style/AppTheme</item>
</style>
</resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:windowDisablePreview">true</item>
<item name="android:editTextBackground">@drawable/edit_text</item>
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:datePickerDialogTheme">@style/DialogDatePicker.Theme</item>
</style>
<style name="Share.Window" parent="Theme.AppCompat">
<item name="android:windowEnterAnimation">@null</item>
<item name="android:windowExitAnimation">@null</item>
<item name="android:editTextBackground">@drawable/edit_text</item>
</style>
<!-- BootTheme should inherit from Theme.SplashScreen -->
<style name="BootTheme" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/bootsplash_background</item>
<item name="windowSplashScreenAnimatedIcon">@mipmap/bootsplash_logo_dark</item>
<item name="postSplashScreenTheme">@style/AppTheme</item>
</style>
<!-- Base application theme. -->
<style name="AppThemeB" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">true</item>
<item name="android:editTextBackground">@drawable/edit_text</item>
</style>
<style name="DialogDatePicker.Theme" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">#2b2b2b</item>
</style>
</resources>

View File

@@ -1,7 +0,0 @@
<resources>
<style name="ThemeOverlay.Notesnook.AppWidgetContainer" parent="">
<item name="appWidgetBackgroundColor">@color/light_blue_900</item>
<item name="appWidgetTextColor">@color/light_blue_200</item>
</style>
</resources>

View File

@@ -5,5 +5,4 @@
<color name="light_blue_600">#FF039BE5</color>
<color name="light_blue_900">#FF01579B</color>
<color name="bootsplash_background">#FFFFFF</color>
<color name="bootsplash_background_dark">#1f1f1f</color>
</resources>

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="logo_dark_background">#1F1F1F</color>
</resources>

View File

@@ -3,5 +3,4 @@
<string name="title_activity_share">NotesnookShare</string>
<string name="appwidget_text">EXAMPLE</string>
<string name="add_widget">Add widget</string>
</resources>

View File

@@ -17,11 +17,11 @@
</style>
<!-- BootTheme should inherit from Theme.SplashScreen -->
<style name="BootTheme" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/bootsplash_background</item>
<item name="windowSplashScreenAnimatedIcon">@mipmap/bootsplash_logo</item>
<item name="postSplashScreenTheme">@style/AppTheme</item>
</style>
<style name="BootTheme" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">@color/bootsplash_background</item>
<item name="windowSplashScreenAnimatedIcon">@mipmap/bootsplash_logo</item>
<item name="postSplashScreenTheme">@style/AppTheme</item>
</style>
<!-- Base application theme. -->

View File

@@ -0,0 +1,19 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
* directory of this source tree.
*/
package com.streetwriters.notesnook;
import android.content.Context;
import com.facebook.react.ReactInstanceManager;
/**
* Class responsible of loading Flipper inside your React Native application. This is the release
* flavor of it so it's empty as we don't want to load Flipper.
*/
public class ReactNativeFlipper {
public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
// Do nothing as we don't want to initialize Flipper on Release.
}
}

View File

@@ -12,67 +12,18 @@ buildscript {
androidXCoreVersion = "1.7.0"
androidXCore = "1.7.0"
androidXBrowser = "1.0.0"
if (System.properties['os.arch'] == "aarch64") {
// For M1 Users we need to use the NDK 24 which added support for aarch64
ndkVersion = "24.0.8215888"
} else if (Os.isFamily(Os.FAMILY_WINDOWS)) {
// For Android Users, we need to use NDK 23, otherwise the build will
// fail due to paths longer than the OS limit
ndkVersion = "23.1.7779620"
} else {
// Otherwise we default to the side-by-side NDK version from AGP.
ndkVersion = "21.4.7075529"
}
ndkVersion = "23.1.7779620"
}
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:7.1.1")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("de.undercouch:gradle-download-task:5.0.1")
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
}
}
allprojects {
repositories {
google()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../../node_modules/react-native/android")
}
maven {
// All of Detox' artifacts are provided via the npm module
url "$rootDir/../../node_modules/detox/Detox-android"
}
maven {
// Android JSC is installed from npm
url("$rootDir/../../node_modules/jsc-android/dist")
}
mavenCentral {
// We don't want to fetch react-native from Maven Central as there are
// older versions over there.
content {
excludeGroup "com.facebook.react"
}
}
maven { url 'https://www.jitpack.io' }
// maven {
// url("${project(':react-native-background-fetch').projectDir}/libs")
// }
}
}

View File

@@ -12,8 +12,6 @@
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
@@ -27,7 +25,7 @@ android.useAndroidX=true
android.enableJetifier=true
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.125.0
FLIPPER_VERSION=0.182.0
# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
@@ -40,6 +38,10 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# are providing them.
newArchEnabled=false
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true
# V8 Cache Mode Config
# v8.cacheMode=none
# v8.android.tools.dir=/home/ammarahm-ed/Repos/notesnook-mobile/node_modules/v8-android-jit-nointl/dist/tools/android

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -80,10 +80,10 @@ do
esac
done
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_NAME="Gradle"
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
@@ -143,12 +143,16 @@ fi
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@@ -205,6 +209,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.

View File

@@ -14,7 +14,7 @@
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@@ -25,7 +25,8 @@
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal

View File

@@ -1,10 +1,4 @@
rootProject.name = 'Notesnook'
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app'
includeBuild('../../node_modules/react-native-gradle-plugin')
if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") {
include(":ReactAndroid")
project(":ReactAndroid").projectDir = file('../../node_modules/react-native/ReactAndroid');
include(":ReactAndroid:hermes-engine")
project(":ReactAndroid:hermes-engine").projectDir = file('../../node_modules/react-native/ReactAndroid/hermes-engine')
}
includeBuild('../../node_modules/@react-native/gradle-plugin')

View File

@@ -1613,7 +1613,7 @@
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
@@ -1662,13 +1662,16 @@
"$(inherited)",
);
LIBRARY_SEARCH_PATHS = (
"$(SDKROOT)/usr/lib/swift",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.2/$(PLATFORM_NAME)\"",
"\"$(inherited)\"",
);
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
OTHER_CFLAGS = "$(inherited)";
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../node_modules/react-native";
SDKROOT = iphoneos;
};
name = Debug;
@@ -1679,7 +1682,7 @@
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
@@ -1721,13 +1724,16 @@
"$(inherited)",
);
LIBRARY_SEARCH_PATHS = (
"$(SDKROOT)/usr/lib/swift",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.2/$(PLATFORM_NAME)\"",
"\"$(inherited)\"",
);
MTL_ENABLE_DEBUG_INFO = NO;
ONLY_ACTIVE_ARCH = NO;
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
OTHER_CFLAGS = "$(inherited)";
OTHER_CPLUSPLUSFLAGS = "$(inherited)";
REACT_NATIVE_PATH = "${PODS_ROOT}/../../../node_modules/react-native";
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
};

View File

@@ -1,8 +1,6 @@
#import <React/RCTBridgeDelegate.h>
#import <RCTAppDelegate.h>
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate, RCTBridgeDelegate>
@property (nonatomic, strong) UIWindow *window;
@interface AppDelegate : RCTAppDelegate
@end

View File

@@ -1,90 +1,23 @@
#import "AppDelegate.h"
#import <React/RCTBridge.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#import <RNBootSplash/RNBootSplash.h>
#import <React/RCTAppSetupUtils.h>
#import <React/RCTLinkingManager.h>
#import "RNShortcuts.h"
//#import <TSBackgroundFetch/TSBackgroundFetch.h>
#if RCT_NEW_ARCH_ENABLED
#import <React/CoreModulesPlugins.h>
#import <React/RCTCxxBridgeDelegate.h>
#import <React/RCTFabricSurfaceHostingProxyRootView.h>
#import <React/RCTSurfacePresenter.h>
#import <React/RCTSurfacePresenterBridgeAdapter.h>
#import <ReactCommon/RCTTurboModuleManager.h>
#import <react/config/ReactNativeConfig.h>
static NSString *const kRNConcurrentRoot = @"concurrentRoot";
@interface AppDelegate () <RCTCxxBridgeDelegate, RCTTurboModuleManagerDelegate> {
RCTTurboModuleManager *_turboModuleManager;
RCTSurfacePresenterBridgeAdapter *_bridgeAdapter;
std::shared_ptr<const facebook::react::ReactNativeConfig> _reactNativeConfig;
facebook::react::ContextContainer::Shared _contextContainer;
}
@end
#endif
#import "RNBootSplash.h"
@implementation AppDelegate
UINavigationController *navController;
UIViewController *rootViewController;
UIViewController *shareViewController;
RCTBridge *bridge;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
RCTAppSetupPrepareApp(application);
bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];
#if RCT_NEW_ARCH_ENABLED
_contextContainer = std::make_shared<facebook::react::ContextContainer const>();
_reactNativeConfig = std::make_shared<facebook::react::EmptyReactNativeConfig const>();
_contextContainer->insert("ReactNativeConfig", _reactNativeConfig);
_bridgeAdapter = [[RCTSurfacePresenterBridgeAdapter alloc] initWithBridge:bridge contextContainer:_contextContainer];
bridge.surfacePresenter = _bridgeAdapter.surfacePresenter;
#endif
rootViewController = [UIViewController new];
NSDictionary *initProps = [self prepareInitialProps];
UIView *rootView = RCTAppSetupDefaultRootView(bridge, @"Notesnook" , initProps);
if (@available(iOS 13.0, *)) {
rootView.backgroundColor = [UIColor systemBackgroundColor];
} else {
rootView.backgroundColor = [UIColor whiteColor];
}
rootViewController.view = rootView;
[RNBootSplash initWithStoryboard:@"BootSplash" rootView:rootView];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
self.moduleName = @"Notesnook";
// You can add your custom initial props in the dictionary below.
// They will be passed down to the ViewController used by React Native.
self.initialProps = @{};
//[[TSBackgroundFetch sharedInstance] didFinishLaunching];
return YES;
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}
/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off.
///
/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html
/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture).
/// @return: `true` if the `concurrentRoot` feture is enabled. Otherwise, it returns `false`.
- (BOOL)concurrentRootEnabled
{
// Switch this bool to turn on and off the concurrent root
return false;
}
- (NSDictionary *)prepareInitialProps
{
NSMutableDictionary *initProps = [NSMutableDictionary new];
#ifdef RCT_NEW_ARCH_ENABLED
initProps[kRNConcurrentRoot] = @([self concurrentRootEnabled]);
#endif
return initProps;
}
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
@@ -106,43 +39,16 @@ RCTBridge *bridge;
return [RCTLinkingManager application:application openURL:url options:options];
}
#if RCT_NEW_ARCH_ENABLED
- (UIView *)createRootViewWithBridge:(RCTBridge *)bridge
moduleName:(NSString *)moduleName
initProps:(NSDictionary *)initProps {
UIView *rootView = [super createRootViewWithBridge:bridge
moduleName:moduleName
initProps:initProps];
#pragma mark - RCTCxxBridgeDelegate
[RNBootSplash initWithStoryboard:@"BootSplash" rootView:rootView]; // ⬅️ initialize the splash screen
- (std::unique_ptr<facebook::react::JSExecutorFactory>)jsExecutorFactoryForBridge:(RCTBridge *)bridge
{
_turboModuleManager = [[RCTTurboModuleManager alloc] initWithBridge:bridge
delegate:self
jsInvoker:bridge.jsCallInvoker];
return RCTAppSetupDefaultJsExecutorFactory(bridge, _turboModuleManager);
return rootView;
}
#pragma mark RCTTurboModuleManagerDelegate
- (Class)getModuleClassFromName:(const char *)name
{
return RCTCoreModulesClassProvider(name);
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name
jsInvoker:(std::shared_ptr<facebook::react::CallInvoker>)jsInvoker
{
return nullptr;
}
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const std::string &)name
initParams:
(const facebook::react::ObjCTurboModule::InitParams &)params
{
return nullptr;
}
- (id<RCTTurboModule>)getModuleInstanceFromClass:(Class)moduleClass
{
return RCTAppSetupDefaultModuleFromClass(moduleClass);
}
#endif
@end

View File

@@ -1,8 +1,35 @@
require_relative '../../node_modules/react-native/scripts/react_native_pods'
require_relative '../../node_modules/@react-native-community/cli-platform-ios/native_modules'
# 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
require Pod::Executable.execute_command('node', ['-p',
'require.resolve(
"@react-native-community/cli-platform-ios/native_modules.rb",
{paths: [process.argv[1]]},
)', __dir__]).strip
platform :ios, min_ios_version_supported
prepare_react_native_project!
# If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
# because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
#
# To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
# ```js
# module.exports = {
# dependencies: {
# ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
# ```
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
use_frameworks! :linkage => linkage.to_sym
end
platform :ios, '12.4'
install! 'cocoapods', :deterministic_uuids => false
pod 'Base64'
pod 'SexyTooltip',:git => 'https://github.com/ammarahm-ed/SexyTooltip.git'
@@ -10,15 +37,22 @@ pod 'MMKV'
target 'Notesnook' do
config = use_native_modules!
# Flags change depending on the env values.
flags = get_default_flags()
config = use_native_modules!
use_react_native!(
:path => config[:reactNativePath],
# to enable hermes on iOS, change `false` to `true` and then install pods
# Hermes is now enabled by default. Disable by setting this flag to false.
# Upcoming versions of React Native may rely on get_default_flags(), but
# we make it explicit here to aid in the React Native upgrade process.
:hermes_enabled => false,
:fabric_enabled => flags[:fabric_enabled],
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable the next line.
# :flipper_configuration => flipper_config,
# An absolute path to your application root.
:app_path => "#{Pod::Config.instance.installation_root}/.."
)
@@ -32,16 +66,6 @@ target 'Notesnook' do
# Pods for testing
end
# Enables Flipper.
#
# Note that if you have use_frameworks! enabled, Flipper will not work and
# you should disable these next few lines.
# use_flipper!
# post_install do |installer|
# flipper_post_install(installer)
# end
end
@@ -57,7 +81,13 @@ end
post_install do |installer|
react_native_post_install(installer)
react_native_post_install(
installer,
react_native_path = "../../node_modules/react-native",
# Set `mac_catalyst_enabled` to `true` in order to apply patches
# necessary for Mac Catalyst builds
:mac_catalyst_enabled => false
)
__apply_Xcode_12_5_M1_post_install_workaround(installer)
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|

View File

@@ -1,19 +1,20 @@
PODS:
- Base64 (1.1.2)
- BEMCheckBox (1.4.1)
- boost (1.76.0)
- callstack-repack (3.2.0):
- JWTDecode (~> 3.0)
- React-Core
- SwiftyRSA
- DoubleConversion (1.1.6)
- FBLazyVector (0.69.7)
- FBReactNativeSpec (0.69.7):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.69.7)
- RCTTypeSafety (= 0.69.7)
- React-Core (= 0.69.7)
- React-jsi (= 0.69.7)
- ReactCommon/turbomodule/core (= 0.69.7)
- FBLazyVector (0.72.0)
- FBReactNativeSpec (0.72.0):
- RCT-Folly (= 2021.07.22.00)
- RCTRequired (= 0.72.0)
- RCTTypeSafety (= 0.72.0)
- React-Core (= 0.72.0)
- React-jsi (= 0.72.0)
- ReactCommon/turbomodule/core (= 0.72.0)
- fmt (6.2.1)
- glog (0.3.5)
- GZIP (1.3.0)
@@ -22,214 +23,275 @@ PODS:
- MMKVCore (~> 1.2.13)
- MMKVCore (1.2.13)
- pop (1.0.12)
- RCT-Folly (2021.06.28.00-v2):
- RCT-Folly (2021.07.22.00):
- boost
- DoubleConversion
- fmt (~> 6.2.1)
- glog
- RCT-Folly/Default (= 2021.06.28.00-v2)
- RCT-Folly/Default (2021.06.28.00-v2):
- RCT-Folly/Default (= 2021.07.22.00)
- RCT-Folly/Default (2021.07.22.00):
- boost
- DoubleConversion
- fmt (~> 6.2.1)
- glog
- RCTRequired (0.69.7)
- RCTTypeSafety (0.69.7):
- FBLazyVector (= 0.69.7)
- RCTRequired (= 0.69.7)
- React-Core (= 0.69.7)
- React (0.69.7):
- React-Core (= 0.69.7)
- React-Core/DevSupport (= 0.69.7)
- React-Core/RCTWebSocket (= 0.69.7)
- React-RCTActionSheet (= 0.69.7)
- React-RCTAnimation (= 0.69.7)
- React-RCTBlob (= 0.69.7)
- React-RCTImage (= 0.69.7)
- React-RCTLinking (= 0.69.7)
- React-RCTNetwork (= 0.69.7)
- React-RCTSettings (= 0.69.7)
- React-RCTText (= 0.69.7)
- React-RCTVibration (= 0.69.7)
- React-bridging (0.69.7):
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsi (= 0.69.7)
- React-callinvoker (0.69.7)
- React-Codegen (0.69.7):
- FBReactNativeSpec (= 0.69.7)
- RCT-Folly (= 2021.06.28.00-v2)
- RCTRequired (= 0.69.7)
- RCTTypeSafety (= 0.69.7)
- React-Core (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- ReactCommon/turbomodule/core (= 0.69.7)
- React-Core (0.69.7):
- RCTRequired (0.72.0)
- RCTTypeSafety (0.72.0):
- FBLazyVector (= 0.72.0)
- RCTRequired (= 0.72.0)
- React-Core (= 0.72.0)
- React (0.72.0):
- React-Core (= 0.72.0)
- React-Core/DevSupport (= 0.72.0)
- React-Core/RCTWebSocket (= 0.72.0)
- React-RCTActionSheet (= 0.72.0)
- React-RCTAnimation (= 0.72.0)
- React-RCTBlob (= 0.72.0)
- React-RCTImage (= 0.72.0)
- React-RCTLinking (= 0.72.0)
- React-RCTNetwork (= 0.72.0)
- React-RCTSettings (= 0.72.0)
- React-RCTText (= 0.72.0)
- React-RCTVibration (= 0.72.0)
- React-callinvoker (0.72.0)
- React-Codegen (0.72.0):
- DoubleConversion
- FBReactNativeSpec
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.69.7)
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- RCT-Folly
- RCTRequired
- RCTTypeSafety
- React-Core
- React-jsc
- React-jsi
- React-jsiexecutor
- React-NativeModulesApple
- React-rncore
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- React-Core (0.72.0):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default (= 0.72.0)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/CoreModulesHeaders (0.69.7):
- React-Core/CoreModulesHeaders (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/Default (0.69.7):
- React-Core/Default (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- RCT-Folly (= 2021.07.22.00)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/DevSupport (0.69.7):
- React-Core/DevSupport (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.69.7)
- React-Core/RCTWebSocket (= 0.69.7)
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-jsinspector (= 0.69.7)
- React-perflogger (= 0.69.7)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default (= 0.72.0)
- React-Core/RCTWebSocket (= 0.72.0)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-jsinspector (= 0.72.0)
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/RCTActionSheetHeaders (0.69.7):
- React-Core/RCTActionSheetHeaders (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/RCTAnimationHeaders (0.69.7):
- React-Core/RCTAnimationHeaders (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/RCTBlobHeaders (0.69.7):
- React-Core/RCTBlobHeaders (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/RCTImageHeaders (0.69.7):
- React-Core/RCTImageHeaders (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/RCTLinkingHeaders (0.69.7):
- React-Core/RCTLinkingHeaders (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/RCTNetworkHeaders (0.69.7):
- React-Core/RCTNetworkHeaders (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/RCTSettingsHeaders (0.69.7):
- React-Core/RCTSettingsHeaders (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/RCTTextHeaders (0.69.7):
- React-Core/RCTTextHeaders (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/RCTVibrationHeaders (0.69.7):
- React-Core/RCTVibrationHeaders (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-Core/RCTWebSocket (0.69.7):
- React-Core/RCTWebSocket (0.72.0):
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-Core/Default (= 0.69.7)
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsiexecutor (= 0.69.7)
- React-perflogger (= 0.69.7)
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default (= 0.72.0)
- React-cxxreact
- React-jsc
- React-jsi
- React-jsiexecutor
- React-perflogger
- React-runtimeexecutor
- React-utils
- SocketRocket (= 0.6.0)
- Yoga
- React-CoreModules (0.69.7):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.69.7)
- React-Codegen (= 0.69.7)
- React-Core/CoreModulesHeaders (= 0.69.7)
- React-jsi (= 0.69.7)
- React-RCTImage (= 0.69.7)
- ReactCommon/turbomodule/core (= 0.69.7)
- React-cxxreact (0.69.7):
- React-CoreModules (0.72.0):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.72.0)
- React-Codegen (= 0.72.0)
- React-Core/CoreModulesHeaders (= 0.72.0)
- React-jsi (= 0.72.0)
- React-RCTBlob
- React-RCTImage (= 0.72.0)
- ReactCommon/turbomodule/core (= 0.72.0)
- SocketRocket (= 0.6.0)
- React-cxxreact (0.72.0):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-callinvoker (= 0.69.7)
- React-jsi (= 0.69.7)
- React-jsinspector (= 0.69.7)
- React-logger (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-runtimeexecutor (= 0.69.7)
- React-jsi (0.69.7):
- RCT-Folly (= 2021.07.22.00)
- React-callinvoker (= 0.72.0)
- React-jsi (= 0.72.0)
- React-jsinspector (= 0.72.0)
- React-logger (= 0.72.0)
- React-perflogger (= 0.72.0)
- React-runtimeexecutor (= 0.72.0)
- React-debug (0.72.0)
- React-jsc (0.72.0):
- React-jsc/Fabric (= 0.72.0)
- React-jsi (= 0.72.0)
- React-jsc/Fabric (0.72.0):
- React-jsi (= 0.72.0)
- React-jsi (0.72.0):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsi/Default (= 0.69.7)
- React-jsi/Default (0.69.7):
- boost (= 1.76.0)
- RCT-Folly (= 2021.07.22.00)
- React-jsiexecutor (0.72.0):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-jsiexecutor (0.69.7):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-perflogger (= 0.69.7)
- React-jsinspector (0.69.7)
- React-logger (0.69.7):
- RCT-Folly (= 2021.07.22.00)
- React-cxxreact (= 0.72.0)
- React-jsi (= 0.72.0)
- React-perflogger (= 0.72.0)
- React-jsinspector (0.72.0)
- React-logger (0.72.0):
- glog
- react-native-actions-shortcuts (1.0.1):
- React
@@ -239,9 +301,9 @@ PODS:
- React
- react-native-blob-util (0.17.3):
- React-Core
- react-native-config (1.4.11):
- react-native-config/App (= 1.4.11)
- react-native-config/App (1.4.11):
- react-native-config (1.5.1):
- react-native-config/App (= 1.5.1)
- react-native-config/App (1.5.1):
- React-Core
- react-native-date-picker (4.2.6):
- React-Core
@@ -249,7 +311,7 @@ PODS:
- React-Core
- react-native-fingerprint-scanner (5.0.0):
- React-Core
- react-native-get-random-values (1.8.0):
- react-native-get-random-values (1.9.0):
- React-Core
- react-native-gzip (1.0.0):
- Base64
@@ -263,12 +325,12 @@ PODS:
- React-Core
- react-native-in-app-review (4.3.3):
- React-Core
- react-native-keep-awake (1.1.0):
- react-native-keep-awake (1.2.0):
- React-Core
- react-native-mmkv-storage (0.8.0):
- react-native-mmkv-storage (0.9.1):
- MMKV (= 1.2.13)
- React-Core
- react-native-netinfo (9.3.7):
- react-native-netinfo (9.3.10):
- React-Core
- react-native-notification-sounds (0.5.5):
- React
@@ -276,91 +338,131 @@ PODS:
- React
- react-native-pdf (6.6.2):
- React-Core
- react-native-safe-area-context (4.4.1):
- react-native-safe-area-context (4.6.3):
- RCT-Folly
- RCTRequired
- RCTTypeSafety
- React-Core
- ReactCommon/turbomodule/core
- react-native-share-extension (2.5.5):
- react-native-share-extension (2.5.6):
- React
- react-native-sodium (1.4.1):
- React
- react-native-webview (11.23.1):
- react-native-webview (11.26.1):
- React-Core
- React-perflogger (0.69.7)
- React-RCTActionSheet (0.69.7):
- React-Core/RCTActionSheetHeaders (= 0.69.7)
- React-RCTAnimation (0.69.7):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.69.7)
- React-Codegen (= 0.69.7)
- React-Core/RCTAnimationHeaders (= 0.69.7)
- React-jsi (= 0.69.7)
- ReactCommon/turbomodule/core (= 0.69.7)
- React-RCTBlob (0.69.7):
- RCT-Folly (= 2021.06.28.00-v2)
- React-Codegen (= 0.69.7)
- React-Core/RCTBlobHeaders (= 0.69.7)
- React-Core/RCTWebSocket (= 0.69.7)
- React-jsi (= 0.69.7)
- React-RCTNetwork (= 0.69.7)
- ReactCommon/turbomodule/core (= 0.69.7)
- React-RCTImage (0.69.7):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.69.7)
- React-Codegen (= 0.69.7)
- React-Core/RCTImageHeaders (= 0.69.7)
- React-jsi (= 0.69.7)
- React-RCTNetwork (= 0.69.7)
- ReactCommon/turbomodule/core (= 0.69.7)
- React-RCTLinking (0.69.7):
- React-Codegen (= 0.69.7)
- React-Core/RCTLinkingHeaders (= 0.69.7)
- React-jsi (= 0.69.7)
- ReactCommon/turbomodule/core (= 0.69.7)
- React-RCTNetwork (0.69.7):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.69.7)
- React-Codegen (= 0.69.7)
- React-Core/RCTNetworkHeaders (= 0.69.7)
- React-jsi (= 0.69.7)
- ReactCommon/turbomodule/core (= 0.69.7)
- React-RCTSettings (0.69.7):
- RCT-Folly (= 2021.06.28.00-v2)
- RCTTypeSafety (= 0.69.7)
- React-Codegen (= 0.69.7)
- React-Core/RCTSettingsHeaders (= 0.69.7)
- React-jsi (= 0.69.7)
- ReactCommon/turbomodule/core (= 0.69.7)
- React-RCTText (0.69.7):
- React-Core/RCTTextHeaders (= 0.69.7)
- React-RCTVibration (0.69.7):
- RCT-Folly (= 2021.06.28.00-v2)
- React-Codegen (= 0.69.7)
- React-Core/RCTVibrationHeaders (= 0.69.7)
- React-jsi (= 0.69.7)
- ReactCommon/turbomodule/core (= 0.69.7)
- React-runtimeexecutor (0.69.7):
- React-jsi (= 0.69.7)
- ReactCommon/turbomodule/core (0.69.7):
- React-NativeModulesApple (0.72.0):
- React-callinvoker
- React-Core
- React-cxxreact
- React-jsi
- React-runtimeexecutor
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- React-perflogger (0.72.0)
- React-RCTActionSheet (0.72.0):
- React-Core/RCTActionSheetHeaders (= 0.72.0)
- React-RCTAnimation (0.72.0):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.72.0)
- React-Codegen (= 0.72.0)
- React-Core/RCTAnimationHeaders (= 0.72.0)
- React-jsi (= 0.72.0)
- ReactCommon/turbomodule/core (= 0.72.0)
- React-RCTAppDelegate (0.72.0):
- RCT-Folly
- RCTRequired
- RCTTypeSafety
- React-Core
- React-CoreModules
- React-jsc
- React-NativeModulesApple
- React-RCTImage
- React-RCTNetwork
- React-runtimescheduler
- ReactCommon/turbomodule/core
- React-RCTBlob (0.72.0):
- RCT-Folly (= 2021.07.22.00)
- React-Codegen (= 0.72.0)
- React-Core/RCTBlobHeaders (= 0.72.0)
- React-Core/RCTWebSocket (= 0.72.0)
- React-jsi (= 0.72.0)
- React-RCTNetwork (= 0.72.0)
- ReactCommon/turbomodule/core (= 0.72.0)
- React-RCTImage (0.72.0):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.72.0)
- React-Codegen (= 0.72.0)
- React-Core/RCTImageHeaders (= 0.72.0)
- React-jsi (= 0.72.0)
- React-RCTNetwork (= 0.72.0)
- ReactCommon/turbomodule/core (= 0.72.0)
- React-RCTLinking (0.72.0):
- React-Codegen (= 0.72.0)
- React-Core/RCTLinkingHeaders (= 0.72.0)
- React-jsi (= 0.72.0)
- ReactCommon/turbomodule/core (= 0.72.0)
- React-RCTNetwork (0.72.0):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.72.0)
- React-Codegen (= 0.72.0)
- React-Core/RCTNetworkHeaders (= 0.72.0)
- React-jsi (= 0.72.0)
- ReactCommon/turbomodule/core (= 0.72.0)
- React-RCTSettings (0.72.0):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.72.0)
- React-Codegen (= 0.72.0)
- React-Core/RCTSettingsHeaders (= 0.72.0)
- React-jsi (= 0.72.0)
- ReactCommon/turbomodule/core (= 0.72.0)
- React-RCTText (0.72.0):
- React-Core/RCTTextHeaders (= 0.72.0)
- React-RCTVibration (0.72.0):
- RCT-Folly (= 2021.07.22.00)
- React-Codegen (= 0.72.0)
- React-Core/RCTVibrationHeaders (= 0.72.0)
- React-jsi (= 0.72.0)
- ReactCommon/turbomodule/core (= 0.72.0)
- React-rncore (0.72.0)
- React-runtimeexecutor (0.72.0):
- React-jsi (= 0.72.0)
- React-runtimescheduler (0.72.0):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-callinvoker
- React-debug
- React-jsi
- React-runtimeexecutor
- React-utils (0.72.0):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-debug
- ReactCommon/turbomodule/bridging (0.72.0):
- DoubleConversion
- glog
- RCT-Folly (= 2021.06.28.00-v2)
- React-bridging (= 0.69.7)
- React-callinvoker (= 0.69.7)
- React-Core (= 0.69.7)
- React-cxxreact (= 0.69.7)
- React-jsi (= 0.69.7)
- React-logger (= 0.69.7)
- React-perflogger (= 0.69.7)
- RCT-Folly (= 2021.07.22.00)
- React-callinvoker (= 0.72.0)
- React-cxxreact (= 0.72.0)
- React-jsi (= 0.72.0)
- React-logger (= 0.72.0)
- React-perflogger (= 0.72.0)
- ReactCommon/turbomodule/core (0.72.0):
- DoubleConversion
- glog
- RCT-Folly (= 2021.07.22.00)
- React-callinvoker (= 0.72.0)
- React-cxxreact (= 0.72.0)
- React-jsi (= 0.72.0)
- React-logger (= 0.72.0)
- React-perflogger (= 0.72.0)
- RNBootSplash (4.1.4):
- React-Core
- RNCCheckbox (0.5.12):
- RNCCheckbox (0.5.15):
- BEMCheckBox (~> 1.4)
- React-Core
- RNCClipboard (1.11.1):
- RNCClipboard (1.11.2):
- React-Core
- RNCMaskedView (0.2.8):
- RNCMaskedView (0.2.9):
- React-Core
- RNDateTimePicker (6.6.0):
- React-Core
@@ -372,7 +474,7 @@ PODS:
- React-Core
- RNFlashList (1.4.0):
- React-Core
- RNGestureHandler (2.7.1):
- RNGestureHandler (2.12.0):
- React-Core
- RNIap (7.5.6):
- React-Core
@@ -385,10 +487,9 @@ PODS:
- React-Core
- RNPrivacySnapshot (1.0.0):
- React-Core
- RNReanimated (2.13.0):
- RNReanimated (3.3.0):
- DoubleConversion
- FBLazyVector
- FBReactNativeSpec
- glog
- RCT-Folly
- RCTRequired
@@ -404,6 +505,7 @@ PODS:
- React-jsinspector
- React-RCTActionSheet
- React-RCTAnimation
- React-RCTAppDelegate
- React-RCTBlob
- React-RCTImage
- React-RCTLinking
@@ -412,14 +514,14 @@ PODS:
- React-RCTText
- ReactCommon/turbomodule/core
- Yoga
- RNScreens (3.18.2):
- RNScreens (3.21.1):
- React-Core
- React-RCTImage
- RNSecureRandom (1.0.1):
- React
- RNShare (7.9.1):
- React-Core
- RNSVG (12.4.4):
- RNSVG (12.5.1):
- React-Core
- RNTooltips (1.0.3):
- pop (~> 1.0)
@@ -434,6 +536,7 @@ PODS:
- SSZipArchive (~> 2.2)
- SexyTooltip (1.2.5):
- pop (~> 1.0)
- SocketRocket (0.6.0)
- SSZipArchive (2.4.3)
- SwiftyRSA (1.7.0):
- SwiftyRSA/ObjC (= 1.7.0)
@@ -455,13 +558,14 @@ DEPENDENCIES:
- RCTRequired (from `../../node_modules/react-native/Libraries/RCTRequired`)
- RCTTypeSafety (from `../../node_modules/react-native/Libraries/TypeSafety`)
- React (from `../../node_modules/react-native/`)
- React-bridging (from `../../node_modules/react-native/ReactCommon`)
- 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-jsc (from `../../node_modules/react-native/ReactCommon/jsc`)
- 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`)
@@ -490,9 +594,11 @@ DEPENDENCIES:
- "react-native-share-extension (from `../../node_modules/@ammarahmed/react-native-share-extension`)"
- "react-native-sodium (from `../../node_modules/@ammarahmed/react-native-sodium`)"
- react-native-webview (from `../../node_modules/react-native-webview`)
- 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-RCTImage (from `../../node_modules/react-native/Libraries/Image`)
- React-RCTLinking (from `../../node_modules/react-native/Libraries/LinkingIOS`)
@@ -500,7 +606,10 @@ DEPENDENCIES:
- 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-rncore (from `../../node_modules/react-native/ReactCommon`)
- React-runtimeexecutor (from `../../node_modules/react-native/ReactCommon/runtimeexecutor`)
- 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`)
- RNBootSplash (from `../../node_modules/react-native-bootsplash`)
- "RNCCheckbox (from `../../node_modules/@react-native-community/checkbox`)"
@@ -530,12 +639,14 @@ DEPENDENCIES:
SPEC REPOS:
trunk:
- Base64
- BEMCheckBox
- fmt
- GZIP
- JWTDecode
- MMKV
- MMKVCore
- pop
- SocketRocket
- SSZipArchive
- SwiftyRSA
@@ -560,8 +671,6 @@ EXTERNAL SOURCES:
:path: "../../node_modules/react-native/Libraries/TypeSafety"
React:
:path: "../../node_modules/react-native/"
React-bridging:
:path: "../../node_modules/react-native/ReactCommon"
React-callinvoker:
:path: "../../node_modules/react-native/ReactCommon/callinvoker"
React-Codegen:
@@ -572,6 +681,10 @@ EXTERNAL SOURCES:
: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-jsc:
:path: "../../node_modules/react-native/ReactCommon/jsc"
React-jsi:
:path: "../../node_modules/react-native/ReactCommon/jsi"
React-jsiexecutor:
@@ -628,12 +741,16 @@ EXTERNAL SOURCES:
:path: "../../node_modules/@ammarahmed/react-native-sodium"
react-native-webview:
:path: "../../node_modules/react-native-webview"
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-RCTImage:
@@ -648,8 +765,14 @@ EXTERNAL SOURCES:
:path: "../../node_modules/react-native/Libraries/Text"
React-RCTVibration:
:path: "../../node_modules/react-native/Libraries/Vibration"
React-rncore:
:path: "../../node_modules/react-native/ReactCommon"
React-runtimeexecutor:
:path: "../../node_modules/react-native/ReactCommon/runtimeexecutor"
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"
RNBootSplash:
@@ -708,95 +831,103 @@ CHECKOUT OPTIONS:
SPEC CHECKSUMS:
Base64: cecfb41a004124895a7bcee567a89bae5a89d49b
boost: a7c83b31436843459a1961bfd74b96033dc77234
BEMCheckBox: 5ba6e37ade3d3657b36caecc35c8b75c6c2b1a4e
boost: 57d2868c099736d80fcd648bf211b4431e51a558
callstack-repack: 3e48a96824e0e0411ae1f48749a2ab103aa62a3a
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
FBLazyVector: 6b7f5692909b4300d50e7359cdefbcd09dd30faa
FBReactNativeSpec: f53cf57758c70c6bfba5230b739cd1071e7a6824
FBLazyVector: bb17efca94c43508cbe54fb0a35e36df30da5213
FBReactNativeSpec: edc3d9b5ec9e8142e73f245a8f685b4593b95d5a
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
glog: 3d02b25ca00c2d456734d0bcff864cbc62f6ae1a
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
GZIP: 416858efbe66b41b206895ac6dfd5493200d95b3
JWTDecode: 2eed97c2fa46ccaf3049a787004eedf0be474a87
MMKV: aac95d817a100479445633f2b3ed8961b4ac5043
MMKVCore: 3388952ded307e41b3ed8a05892736a236ed1b8e
pop: d582054913807fd11fd50bfe6a539d91c7e1a55a
RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a
RCTRequired: 54bff6aa61efd9598ab59d2a823c382b4fe13d27
RCTTypeSafety: 47632bfa768df7befde08e339a9847e6cff6ff78
React: 72a676de573cc5ee0e375e5535238af9a4bd435c
React-bridging: 12b6677a30fbd46555a35aa6096331737a9af598
React-callinvoker: bb574a923c2281d01be23ed3b5d405caa583f56d
React-Codegen: d714637fe411291f96f933a535eaf03a774a21c9
React-Core: 138385d05068622b2b1873eee7dc5be9762f5383
React-CoreModules: 3a9be624998677db102b19090b1c33c7564ead6d
React-cxxreact: eb24a767b0b811259947f3d538e7c999467e7131
React-jsi: 9c1cc1173fc8a24b094e01c54d8e3b567fed7edc
React-jsiexecutor: a73bec0218ba959fc92f811b581ad6c2270c6b6f
React-jsinspector: 8134ee22182b8dd98dc0973db6266c398103ce6c
React-logger: 1e7ac909607ee65fd5c4d8bea8c6e644f66b8843
RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
RCTRequired: 656ef0536dd60a9740961ade6a64ba0cb0572d2b
RCTTypeSafety: 82bd23b63f043d1a6b8e80e72fd15c08e04528a4
React: 4f2c0b59d1a1c0ae02771deb69e5ee78999fee79
React-callinvoker: d5aa9fa6cd6b67d6033de2cb5af6de7ae3dac6ca
React-Codegen: 7dcfe258f856ac8381a905f0669435736bcfb5b9
React-Core: fce0e8a04de16c69e766f26b652e7ca9927eda9b
React-CoreModules: b02ca7a4fb869bcbe4c0ed2c939d433f13a120c5
React-cxxreact: 9738d95069cfbe030d5f44319c9b44028f442d82
React-debug: 77ab539975d81d27153e2998bc1214a2473cde01
React-jsc: 3c0b9256529613da65281effc9ddf1067a2e075f
React-jsi: 26276762f73bf53c33c3d5252664c32ba4509f8b
React-jsiexecutor: de4e98ab0f2661affeb54931806a79a93a34d1ea
React-jsinspector: 8d754fc957255a29d93e52fc67a895045cdc8703
React-logger: 454ffb01980778a43b0153ee98721d0275b56616
react-native-actions-shortcuts: 5d9cf0c9c308333dfcc1e05c3f9afa8c428e2533
react-native-background-actions: 2c251c986f23347f9c1722f05fd296938f60edb1
react-native-begin-background-task: 3b889e07458afc5822a7277cf9cbc7cd077e39ee
react-native-blob-util: 99f4d79189252f597fe0d810c57a3733b1b1dea6
react-native-config: bcafda5b4c51491ee1b0e1d0c4e3905bc7b56c1b
react-native-config: 86038147314e2e6d10ea9972022aa171e6b1d4d8
react-native-date-picker: 93e43b3084cea595b4d68b1405d6d99849663bd6
react-native-document-picker: ec07866a30707f23660c0f3ae591d669d3e89096
react-native-fingerprint-scanner: be63e626b31fb951780a5fac5328b065a61a3d6e
react-native-get-random-values: a6ea6a8a65dc93e96e24a11105b1a9c8cfe1d72a
react-native-get-random-values: dee677497c6a740b71e5612e8dbd83e7539ed5bb
react-native-gzip: 02f9968afa759e189f0414d41f8f4a951a86b4f1
react-native-html-to-pdf-lite: 21bfb169bf4cbcd7bec9f736975ee1b3f5292d4a
react-native-image-picker: 9c8a2687b69300ad9e95cec5d38f35ab9d32467d
react-native-image-resizer: 00ceb0e05586c7aadf061eea676957a6c2ec60fa
react-native-in-app-review: db8bb167a5f238e7ceca5c242d6b36ce8c4404a4
react-native-keep-awake: acbee258db16483744910f0da3ace39eb9ab47fd
react-native-mmkv-storage: 8ba3c0216a6df283ece11205b442a3e435aec4e5
react-native-netinfo: 2517ad504b3d303e90d7a431b0fcaef76d207983
react-native-keep-awake: caee3ff89eaa21dfe29010f0d143566874a04441
react-native-mmkv-storage: cfb6854594cfdc5f7383a9e464bb025417d1721c
react-native-netinfo: ccbe1085dffd16592791d550189772e13bf479e2
react-native-notification-sounds: da78c828fe1bcbb92d8b505d5261890ed315ff39
react-native-orientation: f1caf84d65f1a4fd4511a18f2b924e634ad7a628
react-native-pdf: 33c622cbdf776a649929e8b9d1ce2d313347c4fa
react-native-safe-area-context: 99b24a0c5acd0d5dcac2b1a7f18c49ea317be99a
react-native-share-extension: 8fa247810cc533c9d3bab6913f62ce7aec9bcf4a
react-native-safe-area-context: 36cc67648134e89465663b8172336a19eeda493d
react-native-share-extension: df66a2ee48a62277d79898375e2142bde0782063
react-native-sodium: f4e3986ddcb73482f8679e534b448a0675d0cf13
react-native-webview: d33e2db8925d090871ffeb232dfa50cb3a727581
React-perflogger: 8e832d4e21fdfa613033c76d58d7e617341e804b
React-RCTActionSheet: 9ca778182a9523991bff6381045885b6e808bb73
React-RCTAnimation: 9ced26ad20b96e532ac791a8ab92a7b1ce2266b8
React-RCTBlob: 2ca3402386d6ab8e9a9a39117305c7601ba2a7f8
React-RCTImage: 7be51899367082a49e7a7560247ab3961e4dd248
React-RCTLinking: 262229106f181d8187a5a041fa0dffe6e9726347
React-RCTNetwork: 428b6f17bf4684ede387422eb789ca89365e33d3
React-RCTSettings: eaef83489b80045528f1fe1ea5daefaa586ed763
React-RCTText: d197cff9d5d7f68bdb88468d94617bbf2aa6a48d
React-RCTVibration: 600a9f8b3537db360563d50fab3d040c262567d4
React-runtimeexecutor: 65cd2782a57e1d59a68aa5d504edf94278578e41
ReactCommon: 1e783348b9aa73ae68236271df972ba898560a95
react-native-webview: 9f111dfbcfc826084d6c507f569e5e03342ee1c1
React-NativeModulesApple: 1d81d927ef1a67a3545a01e14c2e98500bf9b199
React-perflogger: 684a11499a0589cc42135d6d5cc04d0e4e0e261a
React-RCTActionSheet: 00b0a4c382a13b834124fa3f541a7d8d1d56efb9
React-RCTAnimation: 10c24c66fb504f2faa53f4ec0666c4568255cff9
React-RCTAppDelegate: 0402b094e4f630aee6831570731759a43a69a28c
React-RCTBlob: 48aaf595ea4f209faa8a80f26c23a4b9c271248f
React-RCTImage: 2f609dd1c80c4aec8edf2ca235cba476fdd442ec
React-RCTLinking: d7f20b7d51246bf34790ce1362d124cc1b42671b
React-RCTNetwork: 6b0133de954b5eff5e6a6294eef5fca45df7e5e8
React-RCTSettings: 9a1f3f5f3e104c0617d953acc54e60e4bfaf11bd
React-RCTText: f5b4c03708c0283699c0dc23c7fb9f97ce7ac6bd
React-RCTVibration: fb4135690f091ac9bcfbeb8dc4388208ca0e18b1
React-rncore: 30cf94f2ab31fec17ffb8aeeee3d2c3d73fa63fe
React-runtimeexecutor: 56b9f7665138fe8cda0d6c210cf95ee3f625c237
React-runtimescheduler: 4a36521cc1ec1bc3997ae2462b6779dadaae376b
React-utils: c12d2e75c8bbc727939ddc4319ed95493395ed5a
ReactCommon: b9547f82aed45eccc1aa59034dc6c72809e37000
RNBootSplash: de2c568373a9c79a66e9918b8929eb6c9a35246f
RNCCheckbox: ed1b4ca295475b41e7251ebae046360a703b6eb5
RNCClipboard: 2834e1c4af68697089cdd455ee4a4cdd198fa7dd
RNCMaskedView: bc0170f389056201c82a55e242e5d90070e18e5a
RNCCheckbox: 43bcc6493611468af0e19f19f029dab3da8561c4
RNCClipboard: 3f0451a8100393908bea5c5c5b16f96d45f30bfc
RNCMaskedView: 949696f25ec596bfc697fc88e6f95cf0c79669b6
RNDateTimePicker: 818672afa85519722533d017b832ed09539d9ddb
RNDeviceInfo: aad3c663b25752a52bf8fce93f2354001dd185aa
RNExitApp: c4e052df2568b43bec8a37c7cd61194d4cfee2c3
RNFileViewer: ce7ca3ac370e18554d35d6355cffd7c30437c592
RNFlashList: 399bf6a0db68f594ad2c86aaff3ea39564f39f8a
RNGestureHandler: b7a872907ee289ada902127f2554fa1d2c076122
RNGestureHandler: dec4645026e7401a0899f2846d864403478ff6a5
RNIap: d248609d1b8937e63bd904e865c318e9b1457eff
RNKeychain: 840f8e6f13be0576202aefcdffd26a4f54bfe7b5
RNNotifee: 2ae3c18196e6f307fa62ae5c8e5305dea03ff147
RNPrivacySnapshot: 8eaf571478a353f2e5184f5c803164f22428b023
RNReanimated: f1b109fb8341505ace9d7d2eedd150da1686716b
RNScreens: 34cc502acf1b916c582c60003dc3089fa01dc66d
RNReanimated: d347d84b665039d88dbcb1feddb2aa59156c9bd2
RNScreens: d3675ab2878704de70c9dae57fa5d024802404cc
RNSecureRandom: 07efbdf2cd99efe13497433668e54acd7df49fef
RNShare: a5dc3b9c53ddc73e155b8cd9a94c70c91913c43c
RNSVG: ecd661f380a07ba690c9c5929c475a44f432d674
RNSVG: d7d7bc8229af3842c9cfc3a723c815a52cdd1105
RNTooltips: 5424d4bf0b3d441104127943b1115cc7f0616b1f
RNZipArchive: 68a0c6db4b1c103f846f1559622050df254a3ade
SexyTooltip: 5c9b4dec52bfb317938cb0488efd9da3717bb6fd
SocketRocket: fccef3f9c5cedea1353a9ef6ada904fde10d6608
SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef
SwiftyRSA: 8c6dd1ea7db1b8dc4fb517a202f88bb1354bc2c6
toolbar-android: 2a73856e98b750d7e71ce4644d3f41cc98211719
Yoga: 0b84a956f7393ef1f37f3bb213c516184e4a689d
Yoga: 1d6727ed193122f6adaf435c3de1a768326ff83b
PODFILE CHECKSUM: 5e50a51b68061d3da2f2af11cb058942f4ba26f7
PODFILE CHECKSUM: ceb52748ea756b5ee99a76ac8a9d0323ded50075
COCOAPODS: 1.11.3

View File

@@ -1,4 +1,3 @@
const path = require('path');
module.exports = {
preset: 'react-native',
testEnvironment: 'node',

View File

@@ -1,3 +1,4 @@
const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');
/**
* Metro configuration for React Native
* https://github.com/facebook/react-native
@@ -7,7 +8,7 @@
// eslint-disable-next-line @typescript-eslint/no-var-requires
const path = require('path');
const nodeModulesPaths = [path.resolve(path.join(__dirname, '../node_modules'))];
module.exports = {
const config = {
projectRoot: __dirname,
watchFolders: [
path.join(__dirname, '../app'),
@@ -15,33 +16,29 @@ module.exports = {
path.join(__dirname, '../node_modules'),
path.join(__dirname, '../e2e'),
path.join(__dirname, "../../../packages"),
],
resolver: {
sourceExts: ['jsx', 'js', 'ts', 'tsx', 'cjs'],
nodeModulesPaths,
extraNodeModules: {
"react": path.join(__dirname, "../node_modules/react"),
"react-dom": path.join(__dirname, "../node_modules/react-dom"),
"@notesnook": path.join(__dirname, "../../../packages"),
"@notifee/react-native": path.join(__dirname, "../node_modules/@ammarahmed/notifee-react-native"),
},
resolveRequest: (context, moduleName, platform) => {
if (moduleName ==='react') {
// Resolve react package from mobile app's node_modules folder always.
return {
filePath: path.resolve(path.join(__dirname, '../node_modules', "react","index.js")),
type: 'sourceFile',
};
}
return context.resolveRequest(context, moduleName, platform);
}
]
};
const mergedConfig = mergeConfig(getDefaultConfig(__dirname), config);
mergedConfig.resolver = {
sourceExts: ['jsx', 'js', 'ts', 'tsx', 'cjs', "json"],
nodeModulesPaths,
extraNodeModules: {
"react": path.join(__dirname, "../node_modules/react"),
"react-dom": path.join(__dirname, "../node_modules/react-dom"),
"@notesnook": path.join(__dirname, "../../../packages"),
"@notifee/react-native": path.join(__dirname, "../node_modules/@ammarahmed/notifee-react-native"),
},
transformer: {
getTransformOptions: async () => ({
transform: {
experimentalImportSupport: false,
inlineRequires: true
}
})
resolveRequest: (context, moduleName, platform) => {
if (moduleName ==='react') {
// Resolve react package from mobile app's node_modules folder always.
return {
filePath: path.resolve(path.join(__dirname, '../node_modules', "react","index.js")),
type: 'sourceFile',
};
}
return context.resolveRequest(context, moduleName, platform);
}
};
module.exports = mergedConfig;

View File

@@ -15,9 +15,8 @@
"@react-navigation/native": "^6.0.10",
"@react-navigation/native-stack": "6.6.2",
"@sayem314/react-native-keep-awake": "^1.0.4",
"deprecated-react-native-prop-types": "^2.3.0",
"react": "18.0.0",
"react-native": "0.69.7",
"react": "18.2.0",
"react-native": "0.72.0",
"react-native-background-actions": "^2.6.6",
"react-native-begin-background-task": "https://github.com/blockfirm/react-native-begin-background-task.git",
"react-native-bootsplash": "4.1.4",
@@ -28,16 +27,16 @@
"react-native-exit-app": "https://github.com/ammarahm-ed/react-native-exit-app.git",
"react-native-file-viewer": "^2.1.1",
"react-native-fingerprint-scanner": "https://github.com/ammarahm-ed/react-native-fingerprint-scanner.git",
"react-native-gesture-handler": "^2.5.0",
"react-native-gesture-handler": "^2.12.0",
"react-native-get-random-values": "^1.7.0",
"react-native-html-to-pdf-lite": "^0.9.1",
"react-native-iap": "7.5.6",
"react-native-image-picker": "4.1.2",
"react-native-keychain": "4.0.5",
"react-native-mmkv-storage": "^0.8.0",
"react-native-mmkv-storage": "^0.9.1",
"react-native-orientation": "https://github.com/yamill/react-native-orientation.git",
"react-native-privacy-snapshot": "https://github.com/standardnotes/react-native-privacy-snapshot.git",
"react-native-reanimated": "2.13.0",
"react-native-reanimated": "3.3.0",
"react-native-safe-area-context": "^4.3.1",
"react-native-scoped-storage": "^1.9.3",
"react-native-screens": "^3.13.1",
@@ -62,28 +61,38 @@
"react-native-pdf": "6.6.2",
"react-native-blob-util": "0.17.3",
"@ammarahmed/react-native-share-extension": "^2.5.5",
"react-native-in-app-review": "4.3.3"
"react-native-in-app-review": "4.3.3",
"react-native-swiper-flatlist": "3.2.2"
},
"devDependencies": {
"@babel/core": "^7.12.9",
"@react-native/eslint-config": "^0.72.2",
"@react-native/metro-config": "^0.72.6",
"@tsconfig/react-native": "^3.0.2",
"@types/metro-config": "^0.76.3",
"@types/react": "^18.0.24",
"@babel/eslint-parser": "^7.16.5",
"@babel/plugin-transform-named-capturing-groups-regex": "^7.16.5",
"@babel/preset-env": "^7.18.6",
"@babel/runtime": "^7.12.5",
"@react-native-community/eslint-config": "^2.0.0",
"@types/html-to-text": "^8.0.1",
"@types/jest": "^27.0.3",
"@types/react-native": "^0.69.1",
"@types/react-native-vector-icons": "^6.4.10",
"@types/react-test-renderer": "^17.0.1",
"@typescript-eslint/eslint-plugin": "^5.14.0",
"@typescript-eslint/parser": "^5.14.0",
"babel-jest": "^28.1.3",
"babel-loader": "^8.2.5",
"babel-plugin-module-resolver": "^4.1.0",
"babel-plugin-transform-remove-console": "6.9.4",
"@babel/core": "^7.20.0",
"@babel/preset-env": "^7.20.0",
"@babel/runtime": "^7.20.0",
"@types/jest": "^29.2.1",
"@types/react-test-renderer": "^18.0.0",
"babel-jest": "^29.2.1",
"eslint": "^8.19.0",
"jest": "^29.2.1",
"metro-react-native-babel-preset": "0.76.5",
"prettier": "^2.4.1",
"react-test-renderer": "18.2.0",
"typescript": "4.8.4",
"detox": "^19.9.1",
"eslint": "^8.7.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-react": "^7.28.0",
@@ -91,14 +100,11 @@
"eslint-plugin-unused-imports": "^2.0.0",
"react-native-actions-shortcuts": "^1.0.1",
"expect": "^28.1.3",
"jest": "^28.1.3",
"jest-circus": "^28.1.3",
"jest-image-snapshot": "^5.1.0",
"metro-react-native-babel-preset": "^0.70.3",
"pixelmatch": "^5.3.0",
"react-native-bundle-visualizer": "^3.1.1",
"react-native-cli-bump-version": "^1.3.0",
"react-test-renderer": "18.0.0",
"terser-webpack-plugin": "^5.3.5",
"ts-jest": "^28.0.7",
"webpack": "^5.74.0",

File diff suppressed because it is too large Load Diff

View File

@@ -24,15 +24,15 @@
},
"devDependencies": {
"otplib": "12.0.1",
"react-refresh": "0.14.0"
"react-refresh": "0.14.0",
"patch-package": "7.0.0"
},
"dependencies": {
"react": "18.0.0",
"react-native": "0.69.7",
"react": "18.2.0",
"react-native": "0.72.0",
"@notesnook/core": "*",
"@notesnook/editor": "*",
"@notesnook/editor-mobile": "*",
"react-native-swiper-flatlist": "3.2.2",
"@notesnook/logger": "*",
"@notesnook/common": "*"
}

View File

@@ -0,0 +1,24 @@
diff --git a/node_modules/@react-native-community/cli-plugin-metro/build/tools/loadMetroConfig.d.ts b/node_modules/@react-native-community/cli-plugin-metro/build/tools/loadMetroConfig.d.ts
index 6cbcc22..62d5422 100644
--- a/node_modules/@react-native-community/cli-plugin-metro/build/tools/loadMetroConfig.d.ts
+++ b/node_modules/@react-native-community/cli-plugin-metro/build/tools/loadMetroConfig.d.ts
@@ -12,6 +12,7 @@ export interface ConfigOptionsT {
reporter?: any;
config?: string;
}
+
/**
* Load Metro config.
*
diff --git a/node_modules/@react-native-community/cli-plugin-metro/build/tools/loadMetroConfig.js b/node_modules/@react-native-community/cli-plugin-metro/build/tools/loadMetroConfig.js
index f26ef52..233a7c9 100644
--- a/node_modules/@react-native-community/cli-plugin-metro/build/tools/loadMetroConfig.js
+++ b/node_modules/@react-native-community/cli-plugin-metro/build/tools/loadMetroConfig.js
@@ -82,6 +82,7 @@ async function loadMetroConfig(ctx, options = {}) {
(0, _getDefaultMetroConfig.default)(ctx));
return (0, _metroConfig().mergeConfig)(loadedConfig, overrideConfig);
}
+ if (!overrideConfig.resolver.resolveRequest) delete overrideConfig.resolver.resolveRequest;
return (0, _metroConfig().mergeConfig)(await (0, _metroConfig().loadConfig)({
cwd: ctx.root,
...options

View File

@@ -0,0 +1,70 @@
diff --git a/node_modules/react-native/ReactCommon/jsc/JSCRuntime.cpp b/node_modules/react-native/ReactCommon/jsc/JSCRuntime.cpp
index 7958519..25f58b1 100644
--- a/node_modules/react-native/ReactCommon/jsc/JSCRuntime.cpp
+++ b/node_modules/react-native/ReactCommon/jsc/JSCRuntime.cpp
@@ -409,12 +409,12 @@ JSCRuntime::~JSCRuntime() {
// has started.
ctxInvalid_ = true;
JSGlobalContextRelease(ctx_);
-#ifndef NDEBUG
- assert(
- objectCounter_ == 0 && "JSCRuntime destroyed with a dangling API object");
- assert(
- stringCounter_ == 0 && "JSCRuntime destroyed with a dangling API string");
-#endif
+//#ifndef NDEBUG
+// assert(
+// objectCounter_ == 0 && "JSCRuntime destroyed with a dangling API object");
+// assert(
+// stringCounter_ == 0 && "JSCRuntime destroyed with a dangling API string");
+//#endif
}
std::shared_ptr<const jsi::PreparedJavaScript> JSCRuntime::prepareJavaScript(
diff --git a/node_modules/react-native/scripts/.packager.env b/node_modules/react-native/scripts/.packager.env
new file mode 100644
index 0000000..361f5fb
--- /dev/null
+++ b/node_modules/react-native/scripts/.packager.env
@@ -0,0 +1 @@
+export RCT_METRO_PORT=8081
diff --git a/node_modules/react-native/scripts/launchPackager.command b/node_modules/react-native/scripts/launchPackager.command
index efd1f2e..c2fbbb3 100755
--- a/node_modules/react-native/scripts/launchPackager.command
+++ b/node_modules/react-native/scripts/launchPackager.command
@@ -10,7 +10,7 @@ clear
THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd)
-export PODS_ROOT="$THIS_DIR/../../../ios/Pods"
+export PODS_ROOT="$THIS_DIR/../../../native/ios/Pods"
WITH_ENVIRONMENT="$THIS_DIR/xcode/with-environment.sh"
source $WITH_ENVIRONMENT
diff --git a/node_modules/react-native/scripts/packager.sh b/node_modules/react-native/scripts/packager.sh
index cb8b101..519070a 100755
--- a/node_modules/react-native/scripts/packager.sh
+++ b/node_modules/react-native/scripts/packager.sh
@@ -8,17 +8,16 @@
THIS_DIR=$(cd -P "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")")" && pwd)
REACT_NATIVE_ROOT="$THIS_DIR/.."
# Application root directory - General use case: react-native is a dependency
-PROJECT_ROOT=${PROJECT_ROOT:-"$THIS_DIR/../../.."}
-
+PROJECT_ROOT=${PROJECT_ROOT:-"$THIS_DIR/../../../native"}
# check and assign NODE_BINARY env
# shellcheck disable=SC1090
source "${THIS_DIR}/node-binary.sh"
# When running react-native tests, react-native doesn't live in node_modules but in the PROJECT_ROOT
-if [ ! -d "$THIS_DIR/../../../node_modules/react-native" ];
-then
- PROJECT_ROOT="$THIS_DIR/../../.."
-fi
+# if [ ! -d "$THIS_DIR/../../../node_modules/react-native" ];
+# then
+# PROJECT_ROOT="$THIS_DIR/../../.."
+# fi
# Start packager from PROJECT_ROOT
cd "$PROJECT_ROOT" || exit
"$NODE_BINARY" "$REACT_NATIVE_ROOT/cli.js" start --custom-log-reporter-path "$THIS_DIR/packager-reporter.js" "$@"

View File

@@ -0,0 +1,17 @@
diff --git a/node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js b/node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js
index 03f46af..cad9ec7 100644
--- a/node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js
+++ b/node_modules/react-native-keyboard-aware-scroll-view/lib/KeyboardAwareHOC.js
@@ -423,11 +423,8 @@ function KeyboardAwareHOC(
if (textInputBottomPosition > keyboardPosition) {
// Since the system already scrolled the whole view up
// we should reduce that amount
- keyboardSpace =
- keyboardSpace -
- (textInputBottomPosition - keyboardPosition)
this.setState({ keyboardSpace })
- this.scrollForExtraHeightOnAndroid(totalExtraHeight)
+ this.scrollForExtraHeightOnAndroid(totalExtraHeight + (textInputBottomPosition - keyboardPosition))
} else if (
textInputBottomPosition >
keyboardPosition - totalExtraHeight

View File

@@ -0,0 +1,107 @@
diff --git a/node_modules/react-native-notification-sounds/android/build.gradle b/node_modules/react-native-notification-sounds/android/build.gradle
index cbbd583..cd322e4 100644
--- a/node_modules/react-native-notification-sounds/android/build.gradle
+++ b/node_modules/react-native-notification-sounds/android/build.gradle
@@ -15,7 +15,6 @@ buildscript {
}
apply plugin: 'com.android.library'
-apply plugin: 'maven-publish'
// Matches values in recent template from React Native 0.59 / 0.60
// https://github.com/facebook/react-native/blob/0.59-stable/template/android/build.gradle#L5-L9
@@ -41,93 +40,10 @@ android {
}
repositories {
- maven {
- // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
- // Matches recent template from React Native 0.59 / 0.60
- // https://github.com/facebook/react-native/blob/0.59-stable/template/android/build.gradle#L30
- // https://github.com/facebook/react-native/blob/0.60-stable/template/android/build.gradle#L28
- url "$projectDir/../node_modules/react-native/android"
- }
mavenCentral()
google()
}
dependencies {
- implementation "com.facebook.react:react-native:${safeExtGet('reactnativeVersion', '+')}"
-}
-
-def configureReactNativePom(def pom) {
- def packageJson = new groovy.json.JsonSlurper().parseText(file('../package.json').text)
-
- pom.project {
- name packageJson.title
- artifactId packageJson.name
- version = packageJson.version
- group = "com.reactlibrary"
- description packageJson.description
- url packageJson.repository.baseUrl
-
- licenses {
- license {
- name packageJson.license
- url packageJson.repository.baseUrl + '/blob/master/' + packageJson.licenseFilename
- distribution 'repo'
- }
- }
-
- developers {
- developer {
- id packageJson.author.username
- name packageJson.author.name
- }
- }
- }
-}
-
-afterEvaluate { project ->
-
- task androidJavadoc(type: Javadoc) {
- source = android.sourceSets.main.java.srcDirs
- classpath += files(android.bootClasspath)
- //classpath += files(project.getConfigurations().getByName('compile').asList())
- include '**/*.java'
- }
-
- task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
- classifier = 'javadoc'
- from androidJavadoc.destinationDir
- }
-
- task androidSourcesJar(type: Jar) {
- classifier = 'sources'
- from android.sourceSets.main.java.srcDirs
- include '**/*.java'
- }
-
- android.libraryVariants.all { variant ->
- def name = variant.name.capitalize()
- task "jar${name}"(type: Jar, dependsOn: variant.javaCompile) {
- from variant.javaCompile.destinationDir
- }
- }
-
- artifacts {
- archives androidSourcesJar
- archives androidJavadocJar
- }
-
- // task installArchives(type: Upload) {
- // configuration = configurations.archives
- // repositories.mavenDeployer {
- // // Deploy to react-native-event-bridge/maven, ready to publish to npm
- // repository url: "file://${projectDir}/../android/maven"
-
- // configureReactNativePom pom
- // }
- // }
-}
-subprojects { subproject ->
- if(project['name'] == 'react-native-notification-sounds'){
- project.configurations { compile { } }
- }
+ implementation "com.facebook.react:react-native:+"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,15 @@
diff --git a/node_modules/react-native-vector-icons/fonts.gradle b/node_modules/react-native-vector-icons/fonts.gradle
index 5485fac..ef3ccb3 100644
--- a/node_modules/react-native-vector-icons/fonts.gradle
+++ b/node_modules/react-native-vector-icons/fonts.gradle
@@ -26,6 +26,10 @@ afterEvaluate {
android.applicationVariants.all { def variant ->
def targetName = variant.name.capitalize()
+ def lintVitalAnalyzeTask = tasks.findByName("lintVitalAnalyze${targetName}")
+ if (lintVitalAnalyzeTask) {
+ lintVitalAnalyzeTask.dependsOn(fontCopyTask)
+ }
def generateAssetsTask = tasks.findByName("generate${targetName}Assets")
generateAssetsTask.dependsOn(fontCopyTask)
}

View File

@@ -1,12 +1,12 @@
{
"name": "@notesnook/web-clipper",
"version": "0.2.1",
"version": "0.2.2",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@notesnook/web-clipper",
"version": "0.2.1",
"version": "0.2.2",
"license": "GPL-3.0-or-later",
"dependencies": {
"@emotion/react": "^11.10.0",