Merge branch 'release-3.6' into dev

This commit is contained in:
Laurent Cozic committed 2026-05-22 12:01:31 +01:00
commit c015adfa22
6 files changed
+31 -36

No files matched your search

+1 -1
View File
@@ -83,7 +83,7 @@ android {
applicationId "net.cozic.joplin"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 2097807
versionCode 2097808
versionName "3.7.0"
buildConfigField "String", "REACT_NATIVE_RELEASE_LEVEL", "\"${findProperty('reactNativeReleaseLevel') ?: 'stable'}\""
@@ -520,7 +520,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Joplin/Joplin.entitlements;
CURRENT_PROJECT_VERSION = 157;
CURRENT_PROJECT_VERSION = 158;
DEVELOPMENT_TEAM = A9BXAFS6CT;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Joplin/Info.plist;
@@ -555,7 +555,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Joplin/Joplin.entitlements;
CURRENT_PROJECT_VERSION = 157;
CURRENT_PROJECT_VERSION = 158;
DEVELOPMENT_TEAM = A9BXAFS6CT;
INFOPLIST_FILE = Joplin/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 15.6;
@@ -758,7 +758,7 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 157;
CURRENT_PROJECT_VERSION = 158;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = A9BXAFS6CT;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -801,7 +801,7 @@
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 157;
CURRENT_PROJECT_VERSION = 158;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = A9BXAFS6CT;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -126,29 +126,29 @@ export default class FsDriverRN extends FsDriverBase {
throw new Error(`Could not read directory: ${path}: ${error.message}`);
}
const toRelativePath = (stat: RnfsStatLike) => {
let relativePath = isScoped ? (stat as DocumentFileDetail).uri : (stat as StatResultT | ReadDirResItemT).path;
// Workaround: Paths returned by RNFS.readDir can include a leading /private/, when this isn't included
// in the original path variable:
if (relativePath.startsWith('/private/') && !path.startsWith('/private/')) {
relativePath = relativePath.replace(/^\/private/, '');
}
if (!relativePath.startsWith(path)) {
logger.warn('readDirStats: Relative path does not start with original:', { relativePath, path });
}
relativePath = relativePath.substring(path.length + 1);
return relativePath;
};
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Output combines DocumentFileDetail (SAF) or normalized Stat (RNFS) entries
let output: any[] = [];
for (let i = 0; i < stats.length; i++) {
const stat = stats[i];
let relativePath;
if (isScoped) {
relativePath = (stat as DocumentFileDetail).uri;
} else {
const rnfsStat = stat as StatResultT | ReadDirResItemT;
relativePath = rnfsStat.path;
// Workaround: Paths returned by RNFS.readDir can include a leading /private/, when this isn't included
// in the original path variable:
if (rnfsStat.path.startsWith('/private/') && !path.startsWith('/private/')) {
relativePath = relativePath.replace(/^\/private/, '');
}
if (!relativePath.startsWith(path)) {
logger.warn('readDirStats: Relative path does not start with original:', { relativePath, path });
}
relativePath = relativePath.substring(path.length + 1);
}
const relativePath = toRelativePath(stat);
const standardStat = this.rnfsStatToStd_(stat, relativePath);
output.push(standardStat);
@@ -174,19 +174,6 @@ const searchExtension = (onEvent: OnEventCallback, settings: EditorSettings): Ex
},
} : undefined),
// On mobile, scrolling is handled externally (page-level native scroll), so
// .cm-scroller has no internal scroll. A @codemirror/view upgrade (6.35→6.41)
// added rect-clipping after each failed scroll attempt, which prevents the
// fallback window.scrollBy from firing. Use native element.scrollIntoView to
// fix findNext/findPrevious and GoDocEnd.
settings.useExternalSearch ? EditorView.scrollHandler.of((view, range) => {
const { node } = view.domAtPos(range.head);
const el = node.nodeType === Node.ELEMENT_NODE ? node as Element : node.parentElement;
if (!el) return false;
el.scrollIntoView({ block: 'nearest', inline: 'nearest' });
return true;
}) : [],
autoScrollToMatchPlugin,
EditorState.transactionExtender.of((tr) => {
+4
View File
@@ -1,5 +1,9 @@
# Joplin Android Changelog
## [android-v3.6.20](https://github.com/laurent22/joplin/releases/tag/android-v3.6.20) - 2026-05-22T10:08:40Z
- Fixed: Fix file system sync (#15500) (#15496 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
## [android-v3.6.19](https://github.com/laurent22/joplin/releases/tag/android-v3.6.19) - 2026-05-19T14:44:15Z
- New: Add padding to the bottom of the viewer and editor (#15418 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
+4
View File
@@ -1,5 +1,9 @@
# Joplin iOS Changelog
## [ios-v13.6.9](https://github.com/laurent22/joplin/releases/tag/ios-v13.6.9) - 2026-05-22T10:09:34Z
- Fixed: Fix scroll jumps while editing long paragraphs (#15495) (#15490 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
## [ios-v13.6.8](https://github.com/laurent22/joplin/releases/tag/ios-v13.6.8) - 2026-05-19T14:45:16Z
- New: Add padding to the bottom of the viewer and editor (#15418 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))