From 747b11b12800b0f0fc50dc2f159016ebb2a342be Mon Sep 17 00:00:00 2001 From: EYHN Date: Thu, 7 Aug 2025 11:43:30 +0800 Subject: [PATCH] fix(android): fix android blob upload (#13435) ## Summary by CodeRabbit * **Bug Fixes** * Improved WebView configuration to allow loading mixed content (HTTP and HTTPS) in the Android app. * Enhanced robustness when retrieving upload timestamps, preventing potential errors if data is missing or undefined. --- .../App/app/src/main/java/app/affine/pro/MainActivity.kt | 2 ++ .../app/src/main/java/app/affine/pro/plugin/NbStorePlugin.kt | 4 ++-- packages/frontend/apps/android/src/plugins/nbstore/index.ts | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/MainActivity.kt b/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/MainActivity.kt index 90f2f2e36..634ca0079 100644 --- a/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/MainActivity.kt +++ b/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/MainActivity.kt @@ -4,6 +4,7 @@ import android.content.res.ColorStateList import android.os.Bundle import android.view.Gravity import android.view.View +import android.webkit.WebSettings import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.content.ContextCompat import androidx.core.graphics.drawable.DrawableCompat @@ -90,6 +91,7 @@ class MainActivity : BridgeActivity(), AIButtonPlugin.Callback, AFFiNEThemePlugi override fun load() { super.load() AuthInitializer.initialize(bridge) + bridge.webView.settings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW } override fun present() { diff --git a/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/plugin/NbStorePlugin.kt b/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/plugin/NbStorePlugin.kt index f5847ff40..84d1a8fc4 100644 --- a/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/plugin/NbStorePlugin.kt +++ b/packages/frontend/apps/android/App/app/src/main/java/app/affine/pro/plugin/NbStorePlugin.kt @@ -556,7 +556,7 @@ class NbStorePlugin : Plugin() { val id = call.getStringEnsure("id") val peer = call.getStringEnsure("peer") val blobId = call.getStringEnsure("blobId") - val uploadedAt = call.getLongEnsure("uploadedAt") + val uploadedAt = call.getLong("uploadedAt") docStoragePool.setBlobUploadedAt( universalId = id, peer = peer, @@ -582,4 +582,4 @@ class NbStorePlugin : Plugin() { } } } -} \ No newline at end of file +} diff --git a/packages/frontend/apps/android/src/plugins/nbstore/index.ts b/packages/frontend/apps/android/src/plugins/nbstore/index.ts index 449124096..926253785 100644 --- a/packages/frontend/apps/android/src/plugins/nbstore/index.ts +++ b/packages/frontend/apps/android/src/plugins/nbstore/index.ts @@ -321,7 +321,7 @@ export const NbStoreNativeDBApis: NativeDBApis = { peer, blobId, }); - return result.uploadedAt ? new Date(result.uploadedAt) : null; + return result?.uploadedAt ? new Date(result.uploadedAt) : null; }, setBlobUploadedAt: async function ( id: string,