iNPUTmice / Conversations

Conversations is an open source XMPP/Jabber client for Android

Home Page:https://conversations.im

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Video compression indicator does not disappear

SW-9000 opened this issue · comments

Description:
A video gets compressed before sending.
During that time, an hourglass indicator in the notification bar is shown and a progress bar displays the status of the compression.
After the video is sucessfully compressed, the hourglass indicator and progress bar (at 100%) stay visible forever (until reboot or killing of Conversations).

Issue might be specific to GrapheneOS ?! (haven't noticed that on stock Android phones...)

System:
Conversations 2.11.0+free: Pixel 5 / GrapheneOS / Android 13

Hint:
The issue exists at least since Conversations v2.10.10, maybe earlier, and is still present in v2.11.0

Log:

toggle forced foreground service after receiving event (action=ping)
ForegroundService: on
xxx@jabber.ccc.de send ping (action=ui,lowTimeout=false)
ConversationsOverviewFragment.onStart()
ConversationsOverviewFragment.onResume()
app switched into foreground
ConversationsOverviewFragment.onPause()
app switched into background
toggle forced foreground service after receiving event (action=ping)
ForegroundService: on
xxx@jabber.ccc.de send ping (action=ui,lowTimeout=false)
app switched into foreground
ConversationsOverviewFragment.onStart()
action: android.intent.action.SEND_MULTIPLE
ConversationFragment.onAttach()
reInit(hasExtras=true)
trimming conversation
scrolledToBottomAndNoPending=true
jump to first unread message
guessMimeTypeFromUriAndMime content://media/external/video/media/1000000752 and mime=video/*
ConversationsOverviewFragment.onDestroyView()
ConversationFragment.onBackendConnected()
target size overlay: 165.0 overlay bitmap size was 352
AxolotlService (xxx@jabber.ccc.de): Finding devices without session for yyy@jabber.ccc.de
ConversationsActivity.commitAttachments() - attaching file to conversations. CHOOSE_FILE/RECORD_VOICE/RECORD_VIDEO
attachFile: type=2
counterpart=yyy@jabber.ccc.de/Conversations.2U72
guessMimeTypeFromUriAndMime content://media/external/video/media/1000000752 and mime=video/mp4
processing file as video
ForegroundService: on
received uri permission for content://media/external/video/media/1000000752
ForegroundService: on
originalFileSize=50795939 convertedFileSize=1755433
running updateFileParams
send file message

(sending itself fails due to bug #4429)

Do try with a server that has http_upload too.

Since Android 10 or 11 the notification will linger a bit more, but maybe when JET fails it's not dismissed.

Just created an test account on conversations.im, but the problem is the same.
The video gets compressed and send, but the hourglass / progressbar persists.
BTW, the progressbar notification cannot be swiped away...

Try to get some logs from adb then.

ConversationsOverviewFragment.onStart()
ConversationsOverviewFragment.onResume()
ConversationFragment.onDestroyView()
ConversationFragment.onAttach()
reInit(hasExtras=true)
trimming conversation
scrolledToBottomAndNoPending=true
jump to first unread message
ConversationsOverviewFragment.onPause()
ConversationsOverviewFragment.onDestroyView()
load more messages for yyy prior to 2022-12-21T12:00:00.000Z
app switched into background
reInit(hasExtras=false)
scrolledToBottomAndNoPending=true
jump to first unread message
guessMimeTypeFromUriAndMime content://com.android.providers.media.documents/document/video%3A1000000777 and mime=null
load more messages for yyy prior to 2022-12-21T12:26:52.343Z
app switched into foreground
ConversationFragment.onBackendConnected()
target size overlay: 165.0 overlay bitmap size was 352
AxolotlService (xxx@conversations.im): Finding devices without session for yyy@jabber.ccc.de
AxolotlService (xxx@conversations.im): Have no target devices in PEP!
do not consider video file with min width larger than 720 for size check
ConversationsActivity.commitAttachments() - attaching file to conversations. CHOOSE_FILE/RECORD_VOICE/RECORD_VIDEO
attachFile: type=2
counterpart=null
guessMimeTypeFromUriAndMime content://com.android.providers.media.documents/document/video%3A1000000777 and mime=video/mp4
processing file as video
ForegroundService: on
received uri permission for content://com.android.providers.media.documents/document/video%3A1000000777
ForegroundService: on
originalFileSize=35634332 convertedFileSize=1827564
running updateFileParams
send file message
using 12-byte IV for file transmission
uploading file to https://share.conversations.im/xxx/[...]/[...]
target size overlay: 270.0 overlay bitmap size was 352
finished uploading file
running updateFileParams
AxolotlService (xxx@conversations.im): Cache miss: [...]
AxolotlService (xxx@conversations.im): Generated message, caching: [...]
AxolotlService (xxx@conversations.im): Cache hit: [...]
media scanner scanned wrong file
toggle forced foreground service after receiving event (action=ping)
ForegroundService: on
toggle forced foreground service after receiving event (action=ping)
ForegroundService: on
app switched into background

This is a known bug. Recent Android versions have some weird rate limiting in the notifications that essentially cause the 'clear notification' event to be rate limited.

This makes progress style notifications basically impossible (despite the corresponding classes not being deprecated or anything)

To properly fix this we would need to introduce a way to signal progress that's not in the notification.

As a work around I think you can toggle (deactive/active) your account.

Standard Samsung A32 with Android 13, same problem. I also had the problems on previous devices. It makes sending videos very uncomfortable, because every time I have to force-kill the whole Conversations app in system settings to make the notification disappear.

Other apps don't have problems with updating and clearing the progress, so I think it's not an Android bug.

Is there some other information that I can provide?

commented

Samsung A52s with Android 13, i've got the same issue exactly like rfc2822 describes.

You can set it as "silent" so it does not appear in the status bar at least. :(