From 07ac3407331a42803bbd1313d52fea23eaa7ea42 Mon Sep 17 00:00:00 2001 From: Matthew Raymer Date: Wed, 28 May 2025 05:56:58 +0000 Subject: [PATCH] feat(capacitor): implement storage permission checks for file operations - Add permission checks before writeFile and writeAndShareFile operations - Reuse existing checkStoragePermissions method for Android devices - Maintain iOS-specific handling (early return for iOS permission model) - Improve error handling and logging for permission-related issues This change ensures proper storage permission handling on Android devices while maintaining the existing iOS behavior. The permission checks run before any file write operations, providing better error handling and user experience. --- src/services/platforms/CapacitorPlatformService.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/services/platforms/CapacitorPlatformService.ts b/src/services/platforms/CapacitorPlatformService.ts index 5c14d285..8df1985f 100644 --- a/src/services/platforms/CapacitorPlatformService.ts +++ b/src/services/platforms/CapacitorPlatformService.ts @@ -358,6 +358,9 @@ export class CapacitorPlatformService implements PlatformService { */ async writeFile(fileName: string, content: string): Promise { try { + // Check storage permissions before proceeding + await this.checkStoragePermissions(); + const logData = { targetFileName: fileName, contentLength: content.length, @@ -499,6 +502,9 @@ export class CapacitorPlatformService implements PlatformService { logger.log("[CapacitorPlatformService]", JSON.stringify(logData, null, 2)); try { + // Check storage permissions before proceeding + await this.checkStoragePermissions(); + const { uri } = await Filesystem.writeFile({ path: fileName, data: content,