Commit graph

1976 commits

Author SHA1 Message Date
Marcel Hibbe
3f987fcdad
fix import of coil
this must have been removed when auto cleaning imports while there was a problem to find the coil lib

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 13:56:57 +02:00
Marcel Hibbe
73d50c4f0e
add reactions for LocationMessageViewHolders
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 13:22:26 +02:00
Marcel Hibbe
c4de77ce00
fix to hide MessageActionsDialog for system messages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 12:19:52 +02:00
Marcel Hibbe
65fb284c6c
add reactions for previewMessageHolders
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:15 +02:00
Andy Scherzinger
b4316ecaad
fix code checks warnings
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:14 +02:00
Andy Scherzinger
2068faa80e
correct tab listerner initialization
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:14 +02:00
Andy Scherzinger
660c3401f2
sort reaction lists
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:14 +02:00
Marcel Hibbe
2aa7a5eb67
rename adapter interface for voice messages
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:14 +02:00
Andy Scherzinger
0051d1d686
pin size of the bottom sheet
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:13 +02:00
Andy Scherzinger
6bda280d15
Add "all" tab for reactions
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:13 +02:00
Marcel Hibbe
357c67db83
fix to update UI only if reaction was actually added
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:13 +02:00
Marcel Hibbe
36b786616a
support reactions for TextMessages (in+out) and VoiceMessages (in+out)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:13 +02:00
Andy Scherzinger
f17e892acd
improve detekt and format kotlin code
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:13 +02:00
Andy Scherzinger
500d651d69
replace emoji selection with tab layout
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:12 +02:00
Marcel Hibbe
aa5046cf27
add ability to delete reactions
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:12 +02:00
Marcel Hibbe
4e727924c2
fix to send reaction for message that has no reactions yet
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:12 +02:00
Marcel Hibbe
4670854848
show emoji picker to send reaction (buggy)
emoji picker SOMETIMES opens in full height.
this is a bug inside the emoji picker lib, see https://github.com/vanniktech/Emoji/issues/474

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:12 +02:00
Marcel Hibbe
f4ab037a44
add ability to send emoji
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:12 +02:00
Andy Scherzinger
65e447b6a5
add some margins to the reactions on a message
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:11 +02:00
Andy Scherzinger
deac2059ff
improve lint/detekt
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:11 +02:00
Marcel Hibbe
eb961b0452
minor cleanup after merge
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:11 +02:00
Marcel Hibbe
9c0ea73b5d
fix parsing of json of emoji voters
basic update for emoji voters in UI

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:11 +02:00
Marcel Hibbe
f61872af7c
remove redundant code for reactions recyclerview
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:10 +02:00
Andy Scherzinger
c4632f5d42
load avatars of reaction actors, optimize layout
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:10 +02:00
Andy Scherzinger
06f42a4c00
Render list of reactions in recycler view in bottom sheet
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:09 +02:00
Andy Scherzinger
c19dd5fc71
hide reactions when not supported by server
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:09 +02:00
Marcel Hibbe
4abe8ae41d
add details view for reactions (WIP)
TODO: encoding for emoji is wrong to send it to server
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:09 +02:00
Andy Scherzinger
402a1bd3c3
organize imports
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:08 +02:00
Andy Scherzinger
3daaa8152e
fic kotlin formatting
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:08 +02:00
Andy Scherzinger
60b277637b
improve detekt score
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:08 +02:00
Andy Scherzinger
b06927726c
emoji bar for chat message bottomsheet
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-08 09:21:08 +02:00
Marcel Hibbe
d845422097
open dialog when clicked on reactions (WIP)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:08 +02:00
Marcel Hibbe
382f17ca55
add margin between reactions
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:07 +02:00
Marcel Hibbe
818a8341a7
fix to hide avatar for 1to1conversations when reaction is received by system message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:07 +02:00
Marcel Hibbe
34422f7b20
fix to removeAllViews also for messages without emojis
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:06 +02:00
Marcel Hibbe
2a1f2becbd
show max 4 emojis under message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:06 +02:00
Marcel Hibbe
f45b48898f
update emojis when system message arrived
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:06 +02:00
Marcel Hibbe
dd603f25cf
add reactions to incoming text message (wip)
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:05 +02:00
Marcel Hibbe
0b898616a2
hide system messages related to reactions
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:05 +02:00
Marcel Hibbe
2986f7c3a5
add system messages for reactions
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-04-08 09:21:05 +02:00
Andy Scherzinger
9dc493b2f7
move popup menu to custom bottom sheet
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-04-01 11:33:18 +02:00
Marcel Hibbe
49fd2640bf
rename method
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-03-30 12:08:54 +02:00
Tim Krüger
346089cecf
Use Transceivers instead of constraints to discard received video tracks
After the migration from WebRTC from plan b to unified plan in commit 86f20dc
the media constraints are ignored for creating an answer on a peer
connection:

> Offer to Receive Options/Constraints
>
> These constraints are passed to PeerConnection’s methods for creating SDP to
> add placeholder media sections in case a sending track would not have already
> created one.
>
> With Unified Plan semantics, these are still supported for creating offers
> using a backwards compatibility shim (basically creating an RtpTransceiver if
> one doesn’t exist). It is recommended to switch to the RtpTransceiver API
> (example below). _They are no longer supported when creating answers._
>
> [1]

Because of that now all transceivers of type VIDEO will be stopped if it
is only an audio call. After stopping the transceivers the status for the
video tracks will be automatically set to ENDED.

In the 'ParticipantsAdapter' it will be checked if the video tracks are
ENDED. In that case the user avatar will be shown like before.

Resolves: #1852
See: #1773, commit 86f20dc, [1]

[1] https://docs.google.com/document/d/1PPHWV6108znP1tk_rkCnyagH9FK205hHeE9k5mhUzOg/edit#heading=h.9dcmkavg608r

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-03-30 12:08:54 +02:00
Andy Scherzinger
2884c6e01c
Migrate search models to kotlin
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-29 17:37:59 +02:00
Andy Scherzinger
3935ce7955
remove unused resource
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-29 17:37:57 +02:00
Andy Scherzinger
9a2a3f3b6d
migrate userprofile to kotlin and align icon work with latest server
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-29 17:37:51 +02:00
Tim Krüger
4f80430018
Use correct API endpoint for predefined status
Resolves: #1830

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-03-17 21:39:11 +01:00
Andy Scherzinger
af0065b664
Merge pull request #1873 from nextcloud/bugfix/noid/kotlinConversion3
Migrate ProfileController to Kotlin
2022-03-17 20:44:41 +01:00
Andy Scherzinger
5472097279
Merge pull request #1876 from nextcloud/bugfix/1853/fixQueryMap
Bugfix/1853/fix query map
2022-03-17 20:36:08 +01:00
Andy Scherzinger
47a02a93a0
shorten method to comply with detekt
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-17 18:45:00 +01:00
Andy Scherzinger
4685bced16
reformat kotlin
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-17 18:37:15 +01:00
Marcel Hibbe
1b30a6ef62
allow getPeersForCall without QueryMap
- null was not allowed for query map (led to Illegal Argument Exception which caused issue #1853)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-03-17 15:17:32 +01:00
Marcel Hibbe
5a90f999dc
add error logging
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-03-17 13:53:20 +01:00
Andy Scherzinger
bafa1559db
reformat kotlin
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-16 18:13:42 +01:00
Andy Scherzinger
766d07d3fa
prevent null-pointer in case remote file listing UI gets closed before the async loading comes back
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-16 16:57:13 +01:00
Andy Scherzinger
7db5c5ed76
migrate ProfileController to kotlin
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-16 16:50:37 +01:00
Andy Scherzinger
eed209428e
splitting up complex methods into smaller, easier to understand methods
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-15 18:21:29 +01:00
Andy Scherzinger
ac703a6ac7
extract magic numbers
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-15 17:46:40 +01:00
Andy Scherzinger
0ac5009242
reformat kotlin
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-15 17:45:06 +01:00
Andy Scherzinger
6b7dd29b07
migrate WebViewLoginController to kotlin
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-15 17:45:05 +01:00
Andy Scherzinger
ed4d27aff0
fix author mail
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-15 17:45:05 +01:00
Andy Scherzinger
cfe4847732
migrate RingtoneSelectionController to kotlin
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-15 17:44:52 +01:00
Tim Krüger
60e4ec9086
Use 'val' for never modified variables
Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-03-15 14:35:08 +01:00
Dariusz Olszewski
1e76b45fb4
Switch to chat w/o animation when app opened from notification
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-15 14:35:08 +01:00
Dariusz Olszewski
ddcf1c48aa
Workaround for crash when loading avatar
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-15 13:33:30 +01:00
Andy Scherzinger
f36b7750de
format kotlin code
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-14 10:23:08 +01:00
Andy Scherzinger
ba3e24bbc7
replace too long paramter lists with data classes
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-14 10:23:07 +01:00
Andy Scherzinger
6e02c5de41
reformat kotlin
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-14 10:23:07 +01:00
Andy Scherzinger
6206e4910d
simplify complex conditions for readability
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-14 10:23:06 +01:00
Andy Scherzinger
454dbc5db2
unify http(s) protocoll prefix check on urls
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-14 10:23:06 +01:00
Andy Scherzinger
a10b67456c
ignore generic exception handling
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-14 10:23:05 +01:00
Andy Scherzinger
2102f0fbc8
document empty blocks
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-14 10:23:01 +01:00
Tim Krueger
08dc22c30f
Merge pull request #1841 from nextcloud/bugfix/1839/fail-to-set-empty-status-message
Bugfix/1839/fail to set empty status message
2022-03-11 15:33:58 +01:00
Tim Krüger
cb1dd8e5b5
Avoid empty status message
Enable the 'Set status message' button only if a message is set.
Currently the API don't allow us to set an empty message [1].

See:
  [1] nextcloud/server#31452
  #1839

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-03-10 17:08:02 +01:00
Tim Krüger
f8e8a95b34
Use '==' instead of 'equals' in Kotlin
In Kotlin for a check of the structural equality '==' should be used.
Referential equality is checked with '==='.

See:
 - https://kotlinlang.org/docs/equality.html

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-03-10 17:05:14 +01:00
Tim Krueger
70a30f146a
Merge pull request #1851 from nextcloud/bugfix/1848/showSystemMessageAddedGroup
add groups and circles to system messages ("add"+"remove")
2022-03-09 10:37:19 +01:00
Andy Scherzinger
0fe562d415
remove unused method parameters
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-07 13:40:42 +01:00
Tim Krüger
5ad6da86f1
Use Boolean constant values directly
From the SpotBugs report:

> NAB_NEEDLESS_BOOLEAN_CONSTANT_CONVERSION: Method needlessly boxes a boolean
> constant
>
> This method assigns a Boxed boolean constant to a primitive boolean variable,
> or assigns a primitive boolean constant to a Boxed boolean variable. Use the
> correct constant for the variable desired. Use
>
>
> boolean b = true;
> boolean b = false;
>
> or
>
>
> Boolean b = Boolean.TRUE;
> Boolean b = Boolean.FALSE;
>
> Be aware that this boxing happens automatically when you might not expect it.
> For example,
>
>
> Map statusMap = ...
>
> public Boolean someMethod() {
>     statusMap.put("foo", true);  //the "true" here is boxed
>     return false;  //the "false" here is boxed
> }
>
> has two cases of this needless autoboxing. This can be made more efficient by
> simply substituting in the constant values:
>
>
> Map statusMap = ...
>
> public Boolean someMethod() {
>     statusMap.put("foo", Boolean.TRUE);
>     return Boolean.FALSE;
> }

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-03-07 13:11:23 +01:00
Andy Scherzinger
8e11f21233
adapt to java->kotlin changes regarding null-ability
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-07 09:55:30 +01:00
Andy Scherzinger
15e875f974
Migrate push models to kotlin data classes
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-07 09:50:19 +01:00
Marcel Hibbe
a1e694104c
add groups and circles to system messages ("add"+"remove")
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-03-04 14:58:46 +01:00
Marcel Hibbe
0079107461
revert commit d76203a0
fix to support older conversationApi versions for canLeave and canDelete

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-03-04 09:23:42 +01:00
Marcel Hibbe
86caa48636
add logging for onError
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-03-04 09:23:41 +01:00
Andy Scherzinger
aa2a08692f
migrate statuses overall to kotlin data classes
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-03 18:00:53 +01:00
Andy Scherzinger
2008fb0c2a
migrate remaining status models to kotlin
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-03 12:50:58 +01:00
Marcel Hibbe
508f519468
set fixed avatar sizes for requests
necessary because of https://github.com/nextcloud/server/pull/31010

known issue: avatars in chat messages are too big atm

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
2022-03-02 15:15:22 +01:00
Andy Scherzinger
00c4b13f17
don't resize avatar views dynamically
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2022-03-02 14:33:53 +01:00
Tim Krüger
3411728597
Pass 'null' for unset icon in custom status message
The OCS Status API  expect an valid emoji or 'null' for the status icon
in a custom message:

> field: statusIcon
> type: string/null
> Description: The icon picked by the user (must be an emoji, at most one)

See [1] for more details.

Resolves: #1839
See:
 [1] https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-status-api.html#set-a-custom-message-user-defined

Signed-off-by: Tim Krüger <t@timkrueger.me>
2022-03-02 09:50:08 +01:00
Dariusz Olszewski
93556da33a
Re-use existing ChatController from notification
NotificationWorker provides the user information under KEY_USER_ENTITY parameter of the notification intent, but does not set the KEY_INTERNAL_USER_ID parameter.
With this change existing ChatController instance that has been opened manually from the conversation list is properly reused when a notification is opened.
Otherwise two instances of the ChatController were running in parallel for the same room, causing unintended side effects.

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:18 +01:00
Dariusz Olszewski
c95d286de4
ktlint
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:18 +01:00
Dariusz Olszewski
a7bd6393df
Prevent overlapping pullChatMessages calls
Sometimes pullChatMessages may be called before response to a previous call is received.
In such cases just ignore the second call. Message processing will continue when response to the earlier call is received.

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:18 +01:00
Dariusz Olszewski
b2aef87b24
Re-organize sessionId handling
- clean session Id when leaving the room rather than in onAttach
- invoke leaveRoom in onDetach only when we have a valid sessionId
This avoid calling joinRoom twice in some scenarios, or calling leaveRoom before joinRoom completes successfully.

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:17 +01:00
Dariusz Olszewski
d31e6de5c4
Second attempt to fix the issue
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:17 +01:00
Dariusz Olszewski
d064ad3f65
Simplified code to avoid NullPointerException when server response arrives after the view was unbound.
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:17 +01:00
Dariusz Olszewski
606c6b0b9e
Avoid NullPointerException when server response arrives after the view was unbound.
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:17 +01:00
Dariusz Olszewski
505bcdfe20
Yet more diagnostic logging
Also in ConversationsListController

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:16 +01:00
Dariusz Olszewski
cfcfcf5bc4
Even more diagnostic logging
Info to correlate calls and responses
Log errors

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:16 +01:00
Dariusz Olszewski
b88530da6f
More diagnostic logging
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:16 +01:00
Dariusz Olszewski
b10d0cb98a
Revert "Notifications from lock screen - initial attempt to fix the issue"
This reverts commit ce8bec73

Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:16 +01:00
Dariusz Olszewski
dfa14e7c52
Notifications from lock screen - initial attempt to fix the issue
Signed-off-by: Dariusz Olszewski <starypatyk@users.noreply.github.com>
2022-03-01 13:19:15 +01:00