diff --git a/apps/mobile/app/common/filesystem/upload.js b/apps/mobile/app/common/filesystem/upload.js
index bef25c8ae..96cbbe3b9 100644
--- a/apps/mobile/app/common/filesystem/upload.js
+++ b/apps/mobile/app/common/filesystem/upload.js
@@ -76,6 +76,9 @@ export async function uploadFile(filename, data, cancelToken) {
let result = status >= 200 && status < 300 && text.length === 0;
useAttachmentStore.getState().remove(filename);
if (result) {
+ DatabaseLogger.info(
+ `File upload status: ${filename}, ${status}, ${text}`
+ );
let attachment = db.attachments.attachment(filename);
if (!attachment) return result;
if (
@@ -84,8 +87,13 @@ export async function uploadFile(filename, data, cancelToken) {
) {
RNFetchBlob.fs.unlink(`${cacheDir}/${filename}`).catch(console.log);
}
+ } else {
+ const fileInfo = await RNFetchBlob.fs.stat(uploadFilePath);
+ throw new Error(
+ `${status}, ${text}, name: ${fileInfo.filename}, length: ${fileInfo}`
+ );
}
- DatabaseLogger.info(`File upload status: ${filename}, ${status}, ${text}`);
+
return result;
} catch (e) {
useAttachmentStore.getState().remove(filename);
diff --git a/apps/mobile/app/hooks/use-app-events.js b/apps/mobile/app/hooks/use-app-events.js
index 8add889c0..8cf63ca19 100644
--- a/apps/mobile/app/hooks/use-app-events.js
+++ b/apps/mobile/app/hooks/use-app-events.js
@@ -58,7 +58,8 @@ import {
setEmailVerifyMessage,
setLoginMessage,
setRateAppMessage,
- setRecoveryKeyMessage
+ setRecoveryKeyMessage,
+ setUpdateAvailableMessage
} from "../services/message";
import PremiumService from "../services/premium";
import SettingsService from "../services/settings";
@@ -424,9 +425,7 @@ export const useAppEvents = () => {
await PremiumService.setPremiumStatus();
setLastSynced(await db.lastSynced());
await useDragState.getState().init();
- if (!user) {
- return setLoginMessage();
- }
+ if (!user) return;
let userEmailConfirmed = SettingsService.get().userEmailConfirmed;
setUser(user);
@@ -623,7 +622,6 @@ export const useAppEvents = () => {
};
const doAppLoadActions = async () => {
- await sleep(500);
if (SettingsService.get().sessionExpired) {
eSendEvent(eLoginSessionExpired);
return;
@@ -632,6 +630,10 @@ const doAppLoadActions = async () => {
await useMessageStore.getState().setAnnouncement();
if (NewFeature.present()) return;
if (await checkAppUpdateAvailable()) return;
+ if (!(await db.user.getUser())) {
+ setLoginMessage();
+ return;
+ }
if (await checkForRateAppRequest()) return;
if (await PremiumService.getRemainingTrialDaysStatus()) return;
if (SettingsService.get().introCompleted) {
@@ -652,9 +654,8 @@ const checkAppUpdateAvailable = async () => {
? await getGithubVersion()
: await checkVersion();
if (!version || !version?.needsUpdate) return false;
- presentSheet({
- component: (ref) =>
- });
+
+ setUpdateAvailableMessage(version);
return true;
} catch (e) {
return false;
diff --git a/apps/mobile/app/services/message.js b/apps/mobile/app/services/message.js
index dfc84517c..11cc8459c 100644
--- a/apps/mobile/app/services/message.js
+++ b/apps/mobile/app/services/message.js
@@ -25,9 +25,10 @@ import {
eOpenRateDialog,
eOpenRecoveryKeyDialog
} from "../utils/events";
-import { eSendEvent } from "./event-manager";
+import { eSendEvent, presentSheet } from "./event-manager";
import PremiumService from "./premium";
import SettingsService from "./settings";
+import { Update } from "../components/sheets/update";
const rateAppMessage = {
visible: true,
@@ -136,3 +137,21 @@ const autoBackupsOff = {
export function setAutobackOffMessage() {
useMessageStore.getState().setMessage(autoBackupsOff);
}
+
+const updateAvailableMessage = (version) => ({
+ visible: true,
+ message: "New update available",
+ actionText: "Tap here to update to the latest version",
+ onPress: () => {
+ presentSheet({
+ component: (ref) =>
+ });
+ },
+ data: {},
+ icon: "update",
+ type: "normal"
+});
+
+export function setUpdateAvailableMessage(version) {
+ useMessageStore.getState().setMessage(updateAvailableMessage(version));
+}