diff --git a/apps/mobile/App.js b/apps/mobile/App.js
index 113ae436f..e0a0a61ec 100644
--- a/apps/mobile/App.js
+++ b/apps/mobile/App.js
@@ -13,6 +13,7 @@ import * as RNIap from 'react-native-iap';
import {enabled} from 'react-native-privacy-snapshot';
import {SafeAreaProvider} from 'react-native-safe-area-context';
import SplashScreen from 'react-native-splash-screen';
+import {RootView} from './initializer.root';
import {useTracked} from './src/provider';
import {Actions} from './src/provider/Actions';
import Backup from './src/services/Backup';
@@ -43,16 +44,14 @@ import {
eOpenPendingDialog,
eOpenProgressDialog,
eOpenSideMenu,
- eStartSyncer,
refreshNotesPage,
} from './src/utils/Events';
import {MMKV} from './src/utils/mmkv';
import {tabBarRef} from './src/utils/Refs';
import {sleep} from './src/utils/TimeUtils';
-import {getNote} from './src/views/Editor/Functions';
+import {getIntent, getNote, setIntent} from './src/views/Editor/Functions';
const {ReceiveSharingIntent} = NativeModules;
-let AppRootView = require('./initializer.root').RootView;
let Sentry = null;
let appIsInitialized = false;
let intentOnAppLoadProcessed = false;
@@ -106,6 +105,8 @@ const onAppStateChanged = async (state) => {
function loadIntent(event) {
if (event) {
+ setIntent();
+ console.log(event, getIntent());
eSendEvent(eOnLoadNote, event);
tabBarRef.current?.goToPage(1);
Navigation.closeDrawer();
@@ -131,9 +132,7 @@ const onNetworkStateChanged = (netInfo) => {
};
const App = () => {
- const [, dispatch] = useTracked(),
- [init, setInit] = useState(true),
- [intent, setIntent] = useState(false);
+ const [, dispatch] = useTracked();
let subsriptionSuccessListerner;
let subsriptionErrorListener;
@@ -157,7 +156,6 @@ const App = () => {
EV.unsubscribe('user:loggedOut', onLogout);
EV.unsubscribe('db:sync', partialSync);
EV.unsubscribe('user:checkStatus', PremiumService.onUserStatusCheck);
- eUnSubscribeEvent(eStartSyncer, startSyncer);
eUnSubscribeEvent(eDispatchAction, (type) => {
dispatch(type);
});
@@ -272,8 +270,8 @@ const App = () => {
};
const loadMainApp = () => {
+ dispatch({type: Actions.INTENT_MODE, state: false});
dispatch({type: Actions.ALL});
- AppRootView = require('./initializer.root').RootView;
setCurrentUser().then(console.log).catch(console.log);
Backup.checkAndRun().then((r) => r);
sleep(500).then(() => (appIsInitialized = true));
@@ -314,17 +312,20 @@ const App = () => {
let isIntent = false;
IntentService.getIntent()
.then(() => {
- AppRootView = require('./initializer.intent').IntentView;
- setInit(false);
- intentOnAppLoadProcessed = true;
- dispatch({type: Actions.ALL});
- setIntent(true);
- isIntent = true;
- ReceiveSharingIntent.clearFileNames();
+ IntentService.check((event) => {
+ SplashScreen.hide();
+ loadIntent(event);
+ intentOnAppLoadProcessed = true;
+ dispatch({type: Actions.ALL});
+ isIntent = true;
+ dispatch({type: Actions.INTENT_MODE, state: true});
+ ReceiveSharingIntent.clearFileNames();
+ });
})
.catch((e) => console.log)
.finally(() => {
if (!isIntent) {
+ dispatch({type: Actions.INTENT_MODE, state: false});
ReceiveSharingIntent.clearFileNames();
intentOnAppLoadProcessed = true;
loadMainApp();
@@ -372,8 +373,7 @@ const App = () => {
return (
- {intent ? : null}
- {init && !intent ? : null}
+
);
};
diff --git a/apps/mobile/initializer.intent.js b/apps/mobile/initializer.intent.js
deleted file mode 100644
index 9de44a320..000000000
--- a/apps/mobile/initializer.intent.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import React from 'react';
-import {DialogManager} from './src/components/DialogManager';
-import {DummyText} from './src/components/DummyText';
-import {Toast} from './src/components/Toast';
-import {useTracked} from './src/provider';
-import {EditorWrapper} from './src/views/Editor/EditorWrapper';
-
-export const IntentView = () => {
- const [state] = useTracked();
- const {colors} = state;
-
- return (
- <>
-
-
-
-
- >
- );
-};
diff --git a/apps/mobile/initializer.root.js b/apps/mobile/initializer.root.js
index d91733ed3..5ea5b918c 100644
--- a/apps/mobile/initializer.root.js
+++ b/apps/mobile/initializer.root.js
@@ -55,11 +55,20 @@ const onChangeTab = async (obj) => {
export const RootView = () => {
const [state] = useTracked();
- const {colors} = state;
+ const {colors, intentMode} = state;
return (
<>
-
+ {intentMode ? (
+
+ ) : (
+
+ )}
diff --git a/apps/mobile/src/provider/Actions.js b/apps/mobile/src/provider/Actions.js
index 0ea5e5ca9..c835271be 100644
--- a/apps/mobile/src/provider/Actions.js
+++ b/apps/mobile/src/provider/Actions.js
@@ -32,5 +32,6 @@ export const Actions = {
FULLSCREEN:"fullscreen",
DEVICE_MODE:"deviceMode",
MENU_PINS:"menuPins",
- LAST_SYNC:"lastSynced"
+ LAST_SYNC:"lastSynced",
+ INTENT_MODE: "intentMode"
};
diff --git a/apps/mobile/src/provider/DefaultState.js b/apps/mobile/src/provider/DefaultState.js
index 7367078c4..b2c677a9c 100644
--- a/apps/mobile/src/provider/DefaultState.js
+++ b/apps/mobile/src/provider/DefaultState.js
@@ -82,5 +82,6 @@ export const defaultState = {
},
keyword: [],
menuPins:[],
- lastSynced:"Never"
+ lastSynced:"Never",
+ intentMode:true
};
diff --git a/apps/mobile/src/provider/Reducer.js b/apps/mobile/src/provider/Reducer.js
index 8ab9b8f02..d85655806 100644
--- a/apps/mobile/src/provider/Reducer.js
+++ b/apps/mobile/src/provider/Reducer.js
@@ -266,6 +266,13 @@ export const reducer = (state, action) => {
menuPins: action.lastSync,
};
}
+ case Actions.INTENT_MODE: {
+
+ return {
+ ...state,
+ intentMode: action.state,
+ };
+ }
default:
throw new Error('unknown action type');
}
diff --git a/apps/mobile/src/views/Editor/EditorHeader.js b/apps/mobile/src/views/Editor/EditorHeader.js
index d9f709fb7..959516072 100644
--- a/apps/mobile/src/views/Editor/EditorHeader.js
+++ b/apps/mobile/src/views/Editor/EditorHeader.js
@@ -121,7 +121,7 @@ const EditorHeader = () => {
};
const _onBackPress = async () => {
- if (getIntent() && sideMenuRef.current === null) {
+ if (sideMenuRef.current === null) {
if (tapCount > 0) {
tapCount = 0;
setIntent(false);
diff --git a/apps/mobile/src/views/Editor/Functions.js b/apps/mobile/src/views/Editor/Functions.js
index a43c0b520..9adebc3bf 100644
--- a/apps/mobile/src/views/Editor/Functions.js
+++ b/apps/mobile/src/views/Editor/Functions.js
@@ -155,13 +155,12 @@ function clearNote() {
let currentEditingTimer = null;
-export async function loadNote(item) {
+export const loadNote = async (item) => {
editing.currentlyEditing = true;
post('blur');
-
if (item && item.type === 'new') {
- intent = false;
+ if (intent) return;
await clearEditor();
clearNote();
noteEdited = false;
@@ -177,11 +176,11 @@ export async function loadNote(item) {
await clearEditor();
clearNote();
id = null;
- intent = true;
content = {
data: item.data,
type: 'delta',
};
+ intent = true;
if (webviewInit) {
await loadNoteInEditor();
}
@@ -193,9 +192,8 @@ export async function loadNote(item) {
await loadNoteInEditor();
}
updateEvent({type: Actions.CURRENT_EDITING_NOTE, id: item.id});
-
}
-}
+};
export function setIntentNote(item) {
id = null;
@@ -277,7 +275,7 @@ export async function clearEditor() {
});
saveCounter = 0;
clearNote();
- intent = false;
+ //intent = false;
}
function checkIfContentIsSavable() {
@@ -382,7 +380,7 @@ export async function saveNote(canPost = true) {
}
saveCounter++;
} else {
- await db.vault.save({
+ let note = await db.vault.save({
title,
content: {
type: content.type,
@@ -424,7 +422,7 @@ async function loadEditorState() {
}
}
} else {
- IntentService.check((event) => {
+ /* IntentService.check((event) => {
if (event) {
intent = true;
eSendEvent(eOnLoadNote, event);
@@ -433,7 +431,7 @@ async function loadEditorState() {
} else {
eSendEvent('nointent');
}
- });
+ }); */
}
}
@@ -443,18 +441,17 @@ const loadNoteInEditor = async () => {
if (!webviewInit) return;
saveCounter = 0;
if (intent) {
- await sleep(1500);
post('delta', content.data);
- intent = true;
+ intent = false;
await saveNote();
} else if (note?.id) {
post('title', title);
intent = false;
setColors();
post('delta', content.data);
- await sleep(100);
+ await sleep(10);
post('dateEdited', timeConverter(note.dateEdited));
}
- await sleep(50);
+ await sleep(10);
post('clearHistory');
};