On devices with Android 8.0 (Oreo) or later, notification sound will be handled by the system, if notifications have not been disabled by the user.
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
The background color for the indirect unread mention counter was alwasys
white. Also in dark mode.
Now the background color is defined via the 'bg_default' color.
Signed-off-by: Tim Krüger <t@timkrueger.me>
Before this change the default "Guests" label only was set if the actor
display name was 'null'.
Resolves: #1730
Signed-off-by: Tim Krüger <t@timkrueger.me>
this is a dirty workaround for issue #1677
Somehow onUserLeaveHint is executed when the user starts a videocall. If PIP is disabled, the logic inside enterPipMode would finish the activity right after it was started.
This workaround suppresses the execution of enterPipMode right after the activity was started.
However if a user would press the home button in the first three seconds, the call would continue in background without the ability to recover the UI.
To better fix this bug it must be found out why onUserLeaveHint is executed on start (this should not happen!).
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This implements pinch to zoom in the full range supported by the
camera HAL, fixes aspect ration handling on rotation, and sets up
for multiple resolution and aspect ratio support.
Signed-off-by: Adam Serbinski <adam@serbinski.com>
no blurring or other background color calculation is done any more. BlurPostProcessor took too long for the used image size. If this is a requirement in the future, use ScalingBlurPostprocessor instead of BlurPostprocessor (so fresco lib fork from nextcloud has to be updated!), see https://frescolib.org/docs/modifying-image.html
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
on some devices (reproduced with Pixel2 on api level30) the own video became visible when the pip view was tapped. This fix should hide the own video.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
this is a quick and dirty solution until "speaker view" is introduced in the future which should be used for the pip view.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Whenever i click the button to accept the call, CallActivity is started by intent.
CallActivity itself has the same logic to dismiss the keyguard.
The problem is: When switching from CallNotificationActivity to CallActivity the lockscreen is shown indeed!
So i guess Android recognizes "oh, CallNotificationActivity is gone. Let's show the lockscreen" before it recognizes that
the new activity also dismiss the lockscreen ?!
I fear for this scenario it was not the best idea to have 2 different activies.. (before it was only 1 activity and 2 condcutor controllers..)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
:D :D
setUpAfterConversationIsKnown might not be the best name, but i'm not sure when in onCreate the currentConversation can be null. depending on that it might even not be necessary to have the "things" in a method..
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
- delete MagicCallActivity
- replace butterknife with viewbinding for CallActivity
TODO:
- also switch CallNotificationController to Activity
- check if CallActivity and CallNotificationActivity are called correctly
- testing!
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
methods to update UI are not yet implemented. maybe it's better to make two Activities: one for Call and one for CallNotification...
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
From the FindBugs documentation:
> CNC_COLLECTION_NAMING_CONFUSION: Collection variable is named with a different
> type of collection in the name
>
> This class defines a field or local collection variable with a name that
> contains a different type of collection in its name. An example would be a Set
> called userList. This is confusing to the reader, and likely caused by a
> previous refactor of type, without changing the name. This detector is
> obviously only checking for English names.
Signed-off-by: Tim Krüger <t@timkrueger.me>
For every click on a avatar in a group chat it will be tried to receive a
hover card from the Nextcloud server. The endpoint returns multiple
actions. Those actions will be filtered for the app ids 'spreed',
'email' and 'profile'. Other will be ignored.
The received filtered actions will be shown in a bottom sheet.
Resolves: #1644
Signed-off-by: Tim Krüger <t@timkrueger.me>
The 'mute calls' setting was only stored locally on the device. The new
'call notifications' setting is stored on the Nextcloud server and
shared over all devices.
See:
- https://github.com/nextcloud/spreed/pull/6338
Signed-off-by: Tim Krüger <t@timkrueger.me>
The access to function 'MaterialDialog#getItemSelector' is restricted.
Because of that the linting reported some errors.
I could not find any visible benefit in this call. That is why I have
removed it.
Signed-off-by: Tim Krüger <t@timkrueger.me>
After the Android sharing functionality was used, the shared text sticks
in the message composing field in the conversation. Also if an text was
forwared to the same conversation the text which was shared before
sticks in the message composing field.
Now the message composing field is empty after sharing or forwarding
something.
Signed-off-by: Tim Krüger <t@timkrueger.me>
show the lockscreen when switching to chat in a call that was opened by notification before the phone was unlocked.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Since API level 30 the WRITE_EXTERNAL_STORAGE permission will be
ignored. Instead the READ_EXTERNAL_STORAGE permission must be used.
See: https://developer.android.com/training/data-storage
Signed-off-by: Tim Krüger <t@timkrueger.me>
otherwise sometimes this exception was thrown:
IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.recyclerview.widget.RecyclerView
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
The following views had scrolling and selection issues if RTL is
activated:
- Conversation list
- File browser
- Contact selection
To fix this issues the fast scroller functionality were removed for
those views.
Signed-off-by: Tim Krüger <t@timkrueger.me>
This reverts commit 6415f163bd.
Revert "use context compat to load resources"
This reverts commit 3742c4ed99.
Revert "Adding upload from camera action"
This reverts commit 01a6675795.
- moderators can clear the chat in the conversations settings
- chat is cleared by system message CLEARED_CHAT
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
The setting is obsolete since the functionality for media detection in
text messages was removed.
See: commit 8468535a
Signed-off-by: Tim Krüger <t@timkrueger.me>
The method 'TextMatchers#getMessageTypeFromString' suggested MIME types
for linked files in text message. Also for links like this not working
example:
- http://example.local/image.png
- image.png
In those cases no image can be loaded and that results in empty previews
like shown in the issue #1167.
So for alignment reasons to spreed and Talk iOS app this media detection
is removed and only links will be shown.
Resolves: #1167
Signed-off-by: Tim Krüger <t@timkrueger.me>
The new system message types 'call_missed' and 'call_tried' should be
shown as system messages and not regular text messages.
Resolves: #248
Signed-off-by: Tim Krüger <t@timkrueger.me>
The method 'TextMatchers#getMessageTypeFromString' suggested MIME types
for linked files in text message. Also for links like this not working
example:
- http://example.local/image.png
- image.png
In those cases no image can be loaded and that results in empty previews
like shown in the issue #1167.
So for alignment reasons to spreed and Talk iOS app this media detection
is removed and only links will be shown.
Resolves: #1167
Signed-off-by: Tim Krüger <t@timkrueger.me>
Now that "newSessions" only contains remote participants it is no longer
needed to check if the participant is an MCU publisher or not, as it
will never be.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When processing the participants in a room the signaling sessions of the
participants were compared against the Nextcloud session of the local
participant to find out which were the remote sessions. However, when
the HPB is used the signaling session is not the same as the Nextcloud
session, so the signaling session of the local participant never matched
her Nextcloud session, so it was always seen as a remote participant.
This caused the call state to be changed to "in conversation" (which,
for example, stopped the calling sound), when only the local participant
was in the call.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
"hasMCU" was used before being updated, so this caused an unneeded call
to "getPeersForCall" when processing the users in the room for the first
time even if the MCU is actually used.
A better fix might be moving "hasMCU" to a method instead of relying on
the cached value, but just moving the update to the top of the method
should have no side effects (as calling "getPeersForCall" just updates
"participantMap", which is unused when the MCU is used, and sets the
avatars, which has no effect until the peer layout is set, which also
sets the avatar), so this is good enough for now.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
- temporarily comment out setOnTouchListener for grid (disables toggle of controls for now)
- set android:scrollbars="vertical" for gridview
- add callControlsHeight for item height calculation
- add fake height to item that scrolling is testable
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
...since grid initialization is called in various places throughout the lifecycle
Fixes#1233
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
a voice message now continues to play if app goes to background, but whenever the user returns he can pause or stop the playback (UI is updated).
Also, the playback survives a screen orientation change.
instead stopping the mediaPlayer in onDetach would stop playback when moving app to background but also stop the playback on a screen orientation change.
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>