deckerst / aves

Aves is a gallery and metadata explorer app, built for Android with Flutter.
BSD 3-Clause "New" or "Revised" License
2.58k stars 97 forks source link

The "Edit With" button says that no apps are available #165

Closed flexagoon closed 1 year ago

flexagoon commented 2 years ago

Describe the bug When I click the "Edit With" button, Aves says that no apps that can handle this are found. However, when I click the edit button in my camera app, it does detect my stock gallery (which has basic image editing capabilities).

To Reproduce Steps to reproduce the behavior:

  1. Go to any photo
  2. Click on three dots at the top
  3. Click "Edit With"

Expected behavior Aves detects the stock gallery app and opens it in edit mode.

System information and logs:

Aves version: 1.5.10-izzy (Build 1064)
Flutter version: 2.8.1 (Channel stable)
Android version: 11 (SDK 30)
Android build: lineage_hotdog-userdebug 11 RQ3A.211001.001 eng.root.20211105.121655 dev-keys
Device: OnePlus HD1917
Google Play services: ready

aves-logs-20220121_230222.txt

Additional context It looks like the camera app uses the android.intent.action.EDIT intent to find apps which can edit images. What does Aves use for this?

deckerst commented 2 years ago

Thanks for the report!

Aves also uses this intent, but there are other pieces to this puzzle (one is the provided MIME type). I need to investigate.

On my Samsung device, Aves does find other apps for image editing, but does not for video editing. This is consistent with other gallery apps like F-Stop, but Samsung Gallery will allow editing videos by sending it to its video editor. Stock apps don't always follow standard intents.

Could you let me know the following?

By the way, is it a problem for all types of images and videos?

flexagoon commented 2 years ago

@deckerst

Also, I have an app installed that lets me intercept the sent intents and inspect them. It is displayed as a "matching app" for any intent that any app sends... Except the edit intent from Aves for some reason.

Here is the intercepted intent from the camera app:

URI intent://media/external_primary/images/media/54995#Intent;scheme=content;action=android.intent.action.EDIT;launchFlags=0x3000001;end

VERSION 1
ACTION  android.intent.action.EDIT
DATA    content://media/external_primary/images/media/54995
FLAGS   0x3000001
EXTRA   android.intent.extra.STREAM 15  content://media/external_primary/images/media/54995

MATCHING ACTIVITIES 2
0   LABEL   Gallery
    NAME    com.android.gallery3d.filtershow.FilterShowActivity
    PACKAGE com.android.gallery3d
1   LABEL   Interceptor
    NAME    io.github.muntashirakon.AppManager.intercept.ActivityInterceptor
    PACKAGE io.github.muntashirakon.AppManager

And I can't check what gets sent by Aves because of the reason mentioned above (the Interceptor app doesnt see it at all)

deckerst commented 2 years ago

Nice, thanks for all the details! The interceptor app could be useful to me too. How is it called?

edit: Aves checks first whether the intent has possible recipients, before actually triggering it. In your case, Android tells Aves there's no recipient, so Aves does not trigger it, and it's normal your interceptor does not see it. I need to see why it does not find recipients.

edit2: just saw the name of the interceptor at the end of your comment >.<

lyaaz commented 1 year ago

same behavior when com.google.android.markup is the only editor installed.

Package: deckers.thibault.aves
Aves version: 1.8.2-izzy
Aves build: 9302
Flutter version: 3.7.5
Flutter channel: stable
Android version: 12
Android API: 32
Android build: SQ3A.220705.004 dev-keys
Device: Xiaomi MI 9
Geocoder: ready
Mobile services: ready
System locales: en_US
Aves locale: system -> en
Installer: com.android.packageinstaller
Accessibility: accessibleNavigation=false, disableAnimations=false

aves-logs-20230312_230049.txt

com.google.android.markup.zip

deckerst commented 1 year ago

@lyaaz i suppose that app does not handle the standard "edit" intent, but you can probably share the image to it instead.

lyaaz commented 1 year ago

@lyaaz i suppose that app does not handle the standard "edit" intent, but you can probably share the image to it instead.

it works when click share sheet edit button or when there is any other editor installed. And you can find it handles the "edit" intent from the manifest.

part of the manifest:

<activity android:theme="resourceId:0x7f14019a" android:name="com.google.android.markup.AnnotateActivity">
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />
                <action android:name="android.intent.action.EDIT" />
                <data android:mimeType="image/*" />
</intent-filter>
</activity>
deckerst commented 1 year ago

I didn't install the APK you provided, but i installed the first one on that thread. And i see Markup as an option when i press "edit" for a JPEG.

If your APK is not coming from that thread, would you mind letting me know where you got it?

lyaaz commented 1 year ago

I didn't install the APK you provided, but i installed the first one on that thread. And i see Markup as an option when i press "edit" for a JPEG.

If your APK is not coming from that thread, would you mind letting me know where you got it?

The wired thing is tithat it works when there are multiple editors, but doesn't when it's the only one.

deckerst commented 1 year ago

Oh you mean, that if you have, say, Markup and Snapseed installed, and you press "edit", you see both apps as options. But if you only have Markup, Aves fails to open the file with Markup? That's interesting, then I'll try again.

lyaaz commented 1 year ago

Oh you mean, that if you have, say, Markup and Snapseed installed, and you press "edit", you see both apps as options. But if you only have Markup, Aves fails to open the file with Markup?

yes

deckerst commented 1 year ago

@lyaaz fixed!

lyaaz commented 1 year ago

@lyaaz fixed!

Thanks for your work!

djdmx85 commented 7 months ago

Same bug on my Fairphone 5 with Aves: when I click the edit button in an image I obtain "There are no apps that can handle this". How to fix it?

Package: deckers.thibault.aves.libre Installer: org.fdroid.fdroid Aves version: 1.10.5-libre, build 11402 Flutter: stable 3.19.1 Android version: 13, API 33 Android build: FP5.TT45.A.141.20240115 Device: Fairphone FP5 Support: dynamic colors=true, geocoder=true, HDR=true Mobile services: not available System locales: it_IT Storage volumes: /storage/emulated/0/, /storage/3986-180B/ Storage grants: /storage/emulated/0/Pictures/, /storage/emulated/0/DCIM/, /storage/3986-180B/DCIM/, /storage/emulated/0/Android/media/ Error reporting: false

deckerst commented 7 months ago

Do you have an app installed on your phone that can edit images (or videos)? For example, Snapseed.

djdmx85 commented 7 months ago

No.

-------- Messaggio originale -------- Il 3 mar 2024, 17:46, Thibault Deckers ha scritto:

Do you have an app installed on your phone that can edit images (or videos)? For example, Snapseed.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

deckerst commented 7 months ago

So it's not a bug. Aves does not bundle an editor. If you want to edit images or videos, you need to install apps that can handle that.

djdmx85 commented 7 months ago

Thank you so much! -------- Messaggio originale -------- Il 3 mar 2024, 19:54, Thibault Deckers ha scritto:

So it's not a bug. Aves does not bundle an editor. If you want to edit images or videos, you need to install apps that can handle that.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>