Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Event-based message center communication #1236

Merged
merged 40 commits into from
Nov 15, 2018
Merged

Conversation

daniele-athome
Copy link
Member

@daniele-athome daniele-athome commented Nov 10, 2018

The message center will live in the same process forever. Introducing a separate process for it means adding an overhead we don't actually need. Therefore, drop use of intents and broadcasts (even if local) and use a more human approach.

Using https://github.com/greenrobot/EventBus (almost) all commands and events will be converted to events. A few commands impact the internal working of the message center directly, and they will remain as intent-based commands:

  • normal start
  • ACTION_HOLD (can trigger connection; part of message center lifecycle)
  • ACTION_RELEASE (part of message center lifecycle)
  • ACTION_RESTART (can trigger connection)
  • ACTION_TEST (can trigger connection)
  • ACTION_PING (can trigger connection)
  • ACTION_IDLE (sent from alarm)
  • ACTION_PUSH_* (alters service state)

Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
@daniele-athome daniele-athome added the enhancement New feature or request label Nov 10, 2018
@daniele-athome daniele-athome self-assigned this Nov 10, 2018
@codecov
Copy link

codecov bot commented Nov 10, 2018

Codecov Report

Merging #1236 into master will increase coverage by 0.01%.
The diff coverage is 0%.

Impacted file tree graph

@@            Coverage Diff            @@
##           master   #1236      +/-   ##
=========================================
+ Coverage    0.52%   0.53%   +0.01%     
=========================================
  Files         288     330      +42     
  Lines       25311   24802     -509     
  Branches     3319    3254      -65     
=========================================
  Hits          133     133              
+ Misses      25165   24656     -509     
  Partials       13      13
Impacted Files Coverage Δ
...k/service/msgcenter/group/KontalkGroupCommand.java 0% <ø> (ø) ⬆️
...service/msgcenter/MessageCenterPacketListener.java 0% <ø> (ø) ⬆️
...sgcenter/group/KontalkAddRemoveMembersCommand.java 0% <ø> (ø) ⬆️
...rc/main/java/org/kontalk/service/MediaService.java 0% <ø> (ø) ⬆️
...a/org/kontalk/upload/HTPPFileUploadConnection.java 0% <ø> (ø) ⬆️
...alk/service/msgcenter/RegisterKeyPairListener.java 0% <0%> (ø) ⬆️
...lk/service/msgcenter/event/RosterMatchRequest.java 0% <0%> (ø)
...p/src/main/java/org/kontalk/data/Conversation.java 0% <0%> (ø) ⬆️
...k/service/msgcenter/event/RosterStatusRequest.java 0% <0%> (ø)
...org/kontalk/service/msgcenter/MessageListener.java 0% <0%> (ø) ⬆️
... and 125 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8cd22ac...9670fb8. Read the comment docs.

Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Through startForegroundIfNeeded.

Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Still doesn't quite work yet...

Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
In order to maintain compatibility with current clients, I made a custom
stringprep class which skips the toLowerCase call for the localpart.
This is needed for Kontalk group JIDs where the group ID (which becomes
the localpart) may have capital letters (it's randomly generated).

Until a better solution is implemented, but it's quite the work.

Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
Signed-off-by: Daniele Ricci <daniele@casaricci.it>
@daniele-athome daniele-athome merged commit 9670fb8 into master Nov 15, 2018
@daniele-athome daniele-athome added this to the Next milestone Nov 15, 2018
@daniele-athome daniele-athome deleted the feature/event-bus branch November 15, 2018 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant