Skip to content
This repository was archived by the owner on Mar 27, 2026. It is now read-only.

Commit 6b1c7f5

Browse files
Merge pull request #63 from Beaver-Notes/development
1.5.0 r.c 1
2 parents 1467dbc + 65b582f commit 6b1c7f5

55 files changed

Lines changed: 1255 additions & 874 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-android_testing.yml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,6 @@ jobs:
1010
build:
1111
name: Build Android Testing
1212
runs-on: ubuntu-latest
13-
env:
14-
VITE_DROPBOX_CLIENT_ID: ${{ secrets.DROPBOX_CLIENT_ID }}
15-
VITE_DROPBOX_CLIENT_SECRET: ${{ secrets.DROPBOX_CLIENT_SECRET }}
16-
VITE_IOS_GOOGLE_CLIENT_ID: ${{ secrets.IOS_GOOGLE_CLIENT_ID }}
17-
VITE_ANDROID_GOOGLE_CLIENT_ID: ${{ secrets.ANDROID_GOOGLE_CLIENT_ID }}
18-
VITE_ONEDRIVE_CLIENT_ID: ${{ secrets.ONEDRIVE_CLIENT_ID }}
19-
VITE_ONEDRIVE_ANDROID_HASH: ${{ secrets.ONEDRIVE_ANDROID_HASH }}
2013

2114
steps:
2215
- name: Checkout source
@@ -41,6 +34,13 @@ jobs:
4134
cache: "yarn"
4235

4336
- name: Create .env file
37+
env:
38+
VITE_DROPBOX_CLIENT_ID: ${{ secrets.DROPBOX_CLIENT_ID }}
39+
VITE_DROPBOX_CLIENT_SECRET: ${{ secrets.DROPBOX_CLIENT_SECRET }}
40+
VITE_IOS_GOOGLE_CLIENT_ID: ${{ secrets.IOS_GOOGLE_CLIENT_ID }}
41+
VITE_ANDROID_GOOGLE_CLIENT_ID: ${{ secrets.ANDROID_GOOGLE_CLIENT_ID }}
42+
VITE_ONEDRIVE_CLIENT_ID: ${{ secrets.ONEDRIVE_CLIENT_ID }}
43+
VITE_ONEDRIVE_ANDROID_HASH: ${{ secrets.ONEDRIVE_ANDROID_HASH }}
4444
run: |
4545
cat <<EOF > .env
4646
VITE_DROPBOX_CLIENT_ID=${VITE_DROPBOX_CLIENT_ID}
@@ -64,6 +64,8 @@ jobs:
6464
env:
6565
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
6666
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
67+
ONEDRIVE_SHA1: ${{ secrets.ONEDRIVE_ANDROID_HASH }}
68+
GOOGLE_CLIENT_ID: ${{ secrets.GOOGLE_CLIENT_ID }}
6769
run: |
6870
echo "${{ secrets.RELEASE_KEYSTORE }}" > android/app/release.jks.base64
6971
base64 -d android/app/release.jks.base64 > android/app/release.jks

android/app/build.gradle

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
android.buildFeatures.buildConfig true
99
minSdkVersion rootProject.ext.minSdkVersion
1010
targetSdkVersion rootProject.ext.targetSdkVersion
11-
versionCode 3
12-
versionName "1.4.0"
11+
versionCode 1
12+
versionName "1.5.0"
1313
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1414
def googleClientId = project.hasProperty("GOOGLE_CLIENT_ID") ? project.GOOGLE_CLIENT_ID : System.getenv("GOOGLE_CLIENT_ID") ?: ""
1515
buildConfigField "String", "SERVER_CLIENT_ID", "\"${googleClientId}\""
@@ -54,6 +54,8 @@ dependencies {
5454
androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
5555
androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
5656
implementation("com.squareup.okhttp3:okhttp:4.12.0")
57+
implementation("io.opentelemetry:opentelemetry-api:1.18.0")
58+
implementation("io.opentelemetry:opentelemetry-context:1.18.0")
5759
}
5860

5961
apply from: 'capacitor.build.gradle'

ios/App/App.xcodeproj/project.pbxproj

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -298,13 +298,9 @@
298298
);
299299
inputFileListPaths = (
300300
);
301-
inputPaths = (
302-
);
303301
name = "[CP] Embed Pods Frameworks";
304302
outputFileListPaths = (
305303
);
306-
outputPaths = (
307-
);
308304
runOnlyForDeploymentPostprocessing = 0;
309305
shellPath = /bin/sh;
310306
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-App/Pods-App-frameworks.sh\"\n";
@@ -488,7 +484,7 @@
488484
CODE_SIGN_IDENTITY = "Apple Development";
489485
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
490486
CODE_SIGN_STYLE = Manual;
491-
CURRENT_PROJECT_VERSION = 9;
487+
CURRENT_PROJECT_VERSION = 1;
492488
DEVELOPMENT_TEAM = "";
493489
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = F8U6VTU2DJ;
494490
GOOGLE_CLIENT_ID = "$(GOOGLE_CLIENT_ID)";
@@ -500,7 +496,7 @@
500496
"$(inherited)",
501497
"@executable_path/Frameworks",
502498
);
503-
MARKETING_VERSION = 1.4.0;
499+
MARKETING_VERSION = 1.5.0;
504500
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
505501
PRODUCT_BUNDLE_IDENTIFIER = beaver.notes.pocket;
506502
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -524,7 +520,7 @@
524520
CODE_SIGN_IDENTITY = "Apple Development";
525521
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
526522
CODE_SIGN_STYLE = Manual;
527-
CURRENT_PROJECT_VERSION = 9;
523+
CURRENT_PROJECT_VERSION = 1;
528524
DEVELOPMENT_TEAM = "";
529525
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = F8U6VTU2DJ;
530526
GOOGLE_CLIENT_ID = "$(GOOGLE_CLIENT_ID)";
@@ -536,7 +532,7 @@
536532
"$(inherited)",
537533
"@executable_path/Frameworks",
538534
);
539-
MARKETING_VERSION = 1.4.0;
535+
MARKETING_VERSION = 1.5.0;
540536
PRODUCT_BUNDLE_IDENTIFIER = beaver.notes.pocket;
541537
PRODUCT_NAME = "$(TARGET_NAME)";
542538
PROVISIONING_PROFILE_SPECIFIER = "";

src/App.tsx

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import { useNavigate, useLocation } from "react-router-dom";
44
import Router from "./router";
55
import { Auth0Provider } from "@auth0/auth0-react";
66
import Auth0Config from "./utils/auth0-config";
7-
import BottomNavBar from "./components/App/BottomNavBar";
8-
import CommandPrompt from "./components/App/CommandPrompt";
7+
import BottomNavBar from "./components/app/BottomNavBar";
8+
import CommandPrompt from "./components/app/CommandPrompt";
99
import { setStoreRemotePath } from "./store/useDataPath";
1010
import { loadNotes } from "./store/notes";
1111
import { useNotesState } from "./store/Activenote";
@@ -14,7 +14,7 @@ import { Keyboard, KeyboardResize } from "@capacitor/keyboard";
1414
import { Capacitor } from "@capacitor/core";
1515
import { Filesystem, FilesystemDirectory } from "@capacitor/filesystem";
1616
import { SplashScreen } from "@capacitor/splash-screen";
17-
import Dialog from "./components/UI/Dialog";
17+
import Dialog from "./components/ui/Dialog";
1818

1919
// Import styles
2020
import "./assets/css/main.css";
@@ -48,6 +48,7 @@ const App: React.FC = () => {
4848
const location = useLocation();
4949
const platform = Capacitor.getPlatform();
5050
const initialTheme = useMemo(() => getInitialTheme(), []);
51+
const [syncStatus, setSyncStatus] = useState<"idle" | "syncing" | "error">("idle");
5152
const [themeMode, setThemeMode] = useState<string>(initialTheme.mode);
5253
const [darkMode, setDarkMode] = useState<boolean>(initialTheme.isDark);
5354
const [isCommandPromptOpen, setIsCommandPromptOpen] = useState(false);
@@ -171,19 +172,25 @@ const App: React.FC = () => {
171172
return () => clearTimeout(timeoutId);
172173
}, [navigate]);
173174

174-
const handleSync = () => {
175-
const syncValue = localStorage.getItem("sync");
176-
if (syncValue === "dropbox") {
177-
syncDropbox();
178-
} else if (syncValue === "iCloud") {
179-
synciCloud();
180-
} else if (syncValue === "onedrive") {
181-
syncOneDrive();
182-
} else if (syncValue === "webdav") {
183-
syncWebDAV();
184-
} else if (syncValue === "googledrive") {
185-
console.log("Syncing with Google Drive");
186-
syncDrive();
175+
const handleSync = async () => {
176+
setSyncStatus("syncing");
177+
try {
178+
const syncValue = localStorage.getItem("sync");
179+
if (syncValue === "dropbox") {
180+
await syncDropbox();
181+
} else if (syncValue === "iCloud") {
182+
await synciCloud();
183+
} else if (syncValue === "onedrive") {
184+
await syncOneDrive();
185+
} else if (syncValue === "webdav") {
186+
await syncWebDAV();
187+
} else if (syncValue === "googledrive") {
188+
await syncDrive();
189+
}
190+
setSyncStatus("idle"); // done
191+
} catch (error) {
192+
console.error("Sync error:", error);
193+
setSyncStatus("error");
187194
}
188195
};
189196

@@ -299,6 +306,7 @@ const App: React.FC = () => {
299306
toggleTheme={toggleTheme}
300307
setAutoMode={setAutoMode}
301308
darkMode={darkMode}
309+
syncStatus={syncStatus}
302310
/>
303311
</Auth0Provider>
304312

src/Archive.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import React, { useState, useEffect } from "react";
22
import { Note } from "./store/types";
3-
import SearchBar from "./components/Home/Search";
3+
import SearchBar from "./components/home/Search";
44
import relativeTime from "dayjs/plugin/relativeTime";
55
import "dayjs/locale/it";
66
import { useNotesState } from "./store/Activenote";
77
import dayjs from "dayjs";
8-
import NoteCard from "./components/Home/NoteCard";
9-
import Icon from "./components/UI/Icon";
8+
import NoteCard from "./components/home/NoteCard";
9+
import Icon from "./components/ui/Icon";
1010
import { useTranslation } from "./utils/translations";
1111

1212
interface ArchiveProps {

src/Home.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import { Share } from "@capacitor/share";
55
import dayjs from "dayjs";
66
import "dayjs/locale/it";
77
import relativeTime from "dayjs/plugin/relativeTime";
8-
import SearchBar from "./components/Home/Search";
8+
import SearchBar from "./components/home/Search";
99
import { useNotesState } from "./store/Activenote";
1010
import { SendIntent } from "send-intent";
1111
import { useImportBea } from "./utils/share";
1212
import { loadNotes } from "./store/notes";
13-
import NoteCard from "./components/Home/NoteCard";
14-
import Icon from "./components/UI/Icon";
13+
import NoteCard from "./components/home/NoteCard";
14+
import Icon from "./components/ui/Icon";
1515

1616
interface HomeProps {
1717
notesState: Record<string, Note>;

src/Settings.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import deTranslations from "./assets/locales/de.json";
44
import { useNavigate } from "react-router-dom";
55
import { Capacitor } from "@capacitor/core";
66
import { useTranslation } from "./utils/translations";
7-
import Icon from "./components/UI/Icon";
7+
import Icon from "./components/ui/Icon";
88

99
interface SettingsProps {
1010
themeMode: string;

0 commit comments

Comments
 (0)