From 189f46cb3dfe96c647eb23dda7818a63fd4fa962 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Sun, 11 Feb 2024 00:02:00 +0500 Subject: [PATCH] mobile: fix share extension --- apps/mobile/app/common/database/storage.js | 3 ++- apps/mobile/app/services/notifications.ts | 3 ++- .../ios/Notesnook.xcodeproj/project.pbxproj | 27 ++++++++++++------- apps/mobile/native/ios/Podfile | 1 + apps/mobile/native/ios/Podfile.lock | 2 +- apps/mobile/share/index.js | 3 ++- apps/mobile/share/share.js | 14 ++++++---- apps/mobile/share/store.js | 4 ++- 8 files changed, 37 insertions(+), 20 deletions(-) diff --git a/apps/mobile/app/common/database/storage.js b/apps/mobile/app/common/database/storage.js index d039b344e..456225f0c 100644 --- a/apps/mobile/app/common/database/storage.js +++ b/apps/mobile/app/common/database/storage.js @@ -91,7 +91,8 @@ export class KV { } async removeMulti(keys) { - return this.storage.removeItems(...keys); + if (!keys) return true; + return this.storage.removeItems(keys); } async clear() { diff --git a/apps/mobile/app/services/notifications.ts b/apps/mobile/app/services/notifications.ts index 0a10b3926..65b72d6ba 100644 --- a/apps/mobile/app/services/notifications.ts +++ b/apps/mobile/app/services/notifications.ts @@ -34,7 +34,7 @@ import NetInfo from "@react-native-community/netinfo"; import dayjs, { Dayjs } from "dayjs"; import { encodeNonAsciiHTML } from "entities"; import { Platform } from "react-native"; -import { db } from "../common/database"; +import { db, setupDatabase } from "../common/database"; import { MMKV } from "../common/database/mmkv"; import { presentDialog } from "../components/dialog/functions"; import { editorState } from "../screens/editor/tiptap/utils"; @@ -96,6 +96,7 @@ function encodeLine(line: string) { async function initDatabase() { if (!db.isInitialized) { + await setupDatabase(); await db.init(); } } diff --git a/apps/mobile/native/ios/Notesnook.xcodeproj/project.pbxproj b/apps/mobile/native/ios/Notesnook.xcodeproj/project.pbxproj index 3f0783aeb..636507104 100644 --- a/apps/mobile/native/ios/Notesnook.xcodeproj/project.pbxproj +++ b/apps/mobile/native/ios/Notesnook.xcodeproj/project.pbxproj @@ -20,9 +20,9 @@ 6517B7C22B6838EB0079FF37 /* OpenSans-SemiBold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6517B7BF2B6838EB0079FF37 /* OpenSans-SemiBold.ttf */; }; 6517B7C32B6838EB0079FF37 /* OpenSans-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 6517B7C02B6838EB0079FF37 /* OpenSans-Bold.ttf */; }; 6529A13E279BC4C70048D4A8 /* BootSplash.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6529A13D279BC4C70048D4A8 /* BootSplash.storyboard */; }; - 656DD2AB2B1891DF00A362EA /* BuildFile in Resources */ = {isa = PBXBuildFile; }; - 656DD2AC2B1891DF00A362EA /* BuildFile in Resources */ = {isa = PBXBuildFile; }; - 656DD2AD2B1891DF00A362EA /* BuildFile in Resources */ = {isa = PBXBuildFile; }; + 656DD2AB2B1891DF00A362EA /* (null) in Resources */ = {isa = PBXBuildFile; }; + 656DD2AC2B1891DF00A362EA /* (null) in Resources */ = {isa = PBXBuildFile; }; + 656DD2AD2B1891DF00A362EA /* (null) in Resources */ = {isa = PBXBuildFile; }; 6593E4A3281C345400492C50 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6593E4A2281C345400492C50 /* AppDelegate.mm */; }; 659BE46725E11A5100E05671 /* notesnook-text.png in Resources */ = {isa = PBXBuildFile; fileRef = 659BE46625E11A5100E05671 /* notesnook-text.png */; }; 65AA857925E6DDEC00772A01 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 65AA857825E6DDEC00772A01 /* WidgetKit.framework */; }; @@ -582,9 +582,9 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 656DD2AB2B1891DF00A362EA /* BuildFile in Resources */, - 656DD2AC2B1891DF00A362EA /* BuildFile in Resources */, - 656DD2AD2B1891DF00A362EA /* BuildFile in Resources */, + 656DD2AB2B1891DF00A362EA /* (null) in Resources */, + 656DD2AC2B1891DF00A362EA /* (null) in Resources */, + 656DD2AD2B1891DF00A362EA /* (null) in Resources */, 65C400DF2A80B6B600AA3DF5 /* MaterialCommunityIcons.ttf in Resources */, 65C149872A61151B005C40F1 /* extension.bundle in Resources */, 65B5014725A672B200E2D264 /* MainInterface.storyboard in Resources */, @@ -1192,6 +1192,7 @@ PRODUCT_BUNDLE_IDENTIFIER = org.streetwriters.notesnook; PRODUCT_NAME = Notesnook; PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Notesnook App Distribution 2024"; SWIFT_OBJC_BRIDGING_HEADER = "Notesnook-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1380,11 +1381,13 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 2077; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 53CWBG3QUC; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 53CWBG3QUC; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = NotesWidget/Info.plist; @@ -1399,6 +1402,7 @@ PRODUCT_BUNDLE_IDENTIFIER = org.streetwriters.notesnook.notewidget; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Notesnook Widget Distribution 2024"; SKIP_INSTALL = YES; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; @@ -1525,11 +1529,13 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = "Make Note/Make Note.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 2077; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = 53CWBG3QUC; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=iphoneos*]" = 53CWBG3QUC; "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; GCC_C_LANGUAGE_STANDARD = gnu11; HEADER_SEARCH_PATHS = ( @@ -1606,6 +1612,7 @@ PRODUCT_BUNDLE_IDENTIFIER = org.streetwriters.notesnook.share; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; + "PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "Notesnook Share Distribution 2024"; SKIP_INSTALL = YES; SWIFT_OBJC_BRIDGING_HEADER = "Make Note/Make Note-Bridging-Header.h"; SWIFT_VERSION = 5.0; diff --git a/apps/mobile/native/ios/Podfile b/apps/mobile/native/ios/Podfile index e16ca2b6c..e96694f6e 100644 --- a/apps/mobile/native/ios/Podfile +++ b/apps/mobile/native/ios/Podfile @@ -98,6 +98,7 @@ target 'Make Note' do pod "react-native-quick-sqlite", :path => '../../node_modules/react-native-quick-sqlite' pod "RNDeviceInfo", :path => '../../node_modules/react-native-device-info' pod "RNPrivacySnapshot", :path => '../../node_modules/react-native-privacy-snapshot' + pod "react-native-theme-switch-animation", :path => '../../node_modules/react-native-theme-switch-animation' end diff --git a/apps/mobile/native/ios/Podfile.lock b/apps/mobile/native/ios/Podfile.lock index 5101d268b..1fdc4b00f 100644 --- a/apps/mobile/native/ios/Podfile.lock +++ b/apps/mobile/native/ios/Podfile.lock @@ -946,6 +946,6 @@ SPEC CHECKSUMS: toolbar-android: 2a73856e98b750d7e71ce4644d3f41cc98211719 Yoga: 1d6727ed193122f6adaf435c3de1a768326ff83b -PODFILE CHECKSUM: 9d0d4fe6f32acea3a0267f9f8ff4dd208803b220 +PODFILE CHECKSUM: 10c0cc8b6b8b01431d2b42fc7d21667cf36209f0 COCOAPODS: 1.14.2 diff --git a/apps/mobile/share/index.js b/apps/mobile/share/index.js index e8c377687..f2c9a12bc 100644 --- a/apps/mobile/share/index.js +++ b/apps/mobile/share/index.js @@ -17,11 +17,12 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ +import { ScopedThemeProvider } from "@notesnook/theme"; import React, { Fragment, useEffect, useState } from "react"; import { Modal, Platform } from "react-native"; import ShareView from "./share"; -import { ScopedThemeProvider } from "@notesnook/theme"; import "./store"; + const Wrapper = Platform.OS === "android" ? Modal : Fragment; const outerProps = Platform.OS === "android" diff --git a/apps/mobile/share/share.js b/apps/mobile/share/share.js index dc1941d17..64d5ffe48 100644 --- a/apps/mobile/share/share.js +++ b/apps/mobile/share/share.js @@ -44,7 +44,7 @@ import { } from "react-native-safe-area-context"; import Icon from "react-native-vector-icons/MaterialCommunityIcons"; import isURL from "validator/lib/isURL"; -import { db } from "../app/common/database"; +import { DatabaseLogger, db } from "../app/common/database"; import Storage from "../app/common/database/storage"; import { Button } from "../app/components/ui/button"; import Heading from "../app/components/ui/typography/heading"; @@ -244,10 +244,14 @@ const ShareView = () => { useEffect(() => { (async () => { - await initDatabase(); - setLoadingExtension(false); - loadData(); - useShareStore.getState().restore(); + try { + await initDatabase(); + setLoadingExtension(false); + loadData(); + useShareStore.getState().restore(); + } catch (e) { + DatabaseLogger.error(e); + } })(); }, [loadData]); diff --git a/apps/mobile/share/store.js b/apps/mobile/share/store.js index 1e77350f3..45f02bc76 100644 --- a/apps/mobile/share/store.js +++ b/apps/mobile/share/store.js @@ -20,10 +20,12 @@ along with this program. If not, see . import { ThemeDark, ThemeLight, useThemeEngineStore } from "@notesnook/theme"; import { Appearance } from "react-native"; import create from "zustand"; -import { db } from "../app/common/database"; +import { db, setupDatabase } from "../app/common/database"; import { MMKV } from "../app/common/database/mmkv"; + export async function initDatabase() { if (!db.isInitialized) { + await setupDatabase(); await db.init(); } }