diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index ff51d3d945..a255d96cd1 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -11,21 +11,21 @@
+ android:launchMode="singleTask"
+ android:theme="@style/AppTheme.NoActionBarLaunch">
@@ -34,6 +34,7 @@
+
@@ -42,8 +43,10 @@
+
+
@@ -53,7 +56,9 @@
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
-
+
diff --git a/src/main/frontend/mobile/intent.cljs b/src/main/frontend/mobile/intent.cljs
index e2d3875013..7792220a3f 100644
--- a/src/main/frontend/mobile/intent.cljs
+++ b/src/main/frontend/mobile/intent.cljs
@@ -83,18 +83,20 @@
(let [args (transform-args args)]
(state/pub-event! [:editor/quick-capture args])))
-(defn- embed-asset-file [url format]
+(defn- embed-asset-file [url _format]
(p/let [basename (node-path/basename url)
- label (-> basename util/node-path.name)
+ _label (-> basename util/node-path.name)
+ _path (assets-handler/get-asset-path basename)
time (date/get-current-time)
date-ref-name (date/today)
- path (assets-handler/get-asset-path basename)
- _file (p/catch
- (.copy Filesystem (clj->js {:from url :to path}))
- (fn [error]
- (log/error :copy-file-error {:error error})))
- url (util/format "../assets/%s" basename)
- url (assets-handler/get-asset-file-link format url label true)
+ file (.readFile Filesystem #js {:path url})
+ file-base64-str (some-> file (.-data))
+ file (some-> file-base64-str (util/base64string-to-unit8array)
+ (vector) (clj->js) (js/File. basename #js {}))
+ asset-entity (editor-handler/db-based-save-assets!
+ (state/get-current-repo) [file] {})
+ asset-entity (some-> asset-entity (first))
+ url (util/format "[[%s]]" (:block/uuid asset-entity))
template (get-in (state/get-config)
[:quick-capture-templates :media]
"**{time}** [[quick capture]]: {url}")]
@@ -182,17 +184,20 @@
(common-util/safe-decode-uri-component v)
v))])))
-(defn- handle-asset-file [url format]
- (p/let [basename (node-path/basename url)
- label (-> basename util/node-path.name)
- path (assets-handler/get-asset-path basename)
- _file (p/catch
- (.copy Filesystem (clj->js {:from url :to path}))
- (fn [error]
- (log/error :copy-file-error {:error error})))
- url (util/format "../assets/%s" basename)
- url-link (assets-handler/get-asset-file-link format url label true)]
- url-link))
+(defn- handle-asset-file [url _format]
+ (-> (p/let [basename (node-path/basename url)
+ _label (-> basename util/node-path.name)
+ _path (assets-handler/get-asset-path basename)
+ file (.readFile Filesystem #js {:path url})
+ file-base64-str (some-> file (.-data))
+ file (some-> file-base64-str (util/base64string-to-unit8array)
+ (vector) (clj->js) (js/File. basename #js {}))
+ asset-entity (editor-handler/db-based-save-assets!
+ (state/get-current-repo) [file] {})
+ asset-entity (some-> asset-entity (first))
+ url-link (util/format "[[%s]]" (:block/uuid asset-entity))]
+ url-link)
+ (p/catch #(js/console.error "Error(handle asset file):" %))))
(defn- handle-payload-resource
[{:keys [type name ext url] :as resource} format]