You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Paul Schaub 21faa02d4f
Update Smack
2 years ago
app Fix some layouts 2 years ago
cli Wip: Signing mechanisms and XML Canonicalization 3 years ago
config/checkstyle Deactivate too strict checkstyle rules 4 years ago
data Ikey backup restore works v1.0 2 years ago
documentation Move Murmelbahn to documentation 3 years ago
domain Fix progressbar and ikey generation dialog 2 years ago
entity Progress on generating IKeys 2 years ago
gradle/wrapper Start work on new message sending logic 3 years ago
libs Update Smack 2 years ago
utils Update 4 years ago
.gitignore Add new icon 4 years ago
.gitmodules Fixed prototype implementation of ikey 3 years ago Add some info to README 3 years ago
build.gradle Fix message adapter 3 years ago Wip: Work on enabling accounts from accounts fragment 3 years ago
gradlew Initial commit 4 years ago
gradlew.bat Initial commit 4 years ago
mercury_black_24dp.svg Add new icon and text to foreground notification 3 years ago
mercury_icon.svg Add new icon 4 years ago
settings.gradle Fixed prototype implementation of ikey 3 years ago
version.gradle Progress on generating IKeys 2 years ago


Mercury-IM will be an XMPP messenger that aims to be portable. Most of the core logic is pure Java, so the final goal is to make it as easy as possible to add different UIs for different platforms on top of it.


  • Mercury IM's development tries to follow architectural principles know from Clean Architecture.
  • The app is developed using the MVVM (Model View Viewmodel) pattern
  • Components are wired together using Dependency Injection (DI) with Dagger 2
  • Data is persisted using the requery ORM framework


Since there are some issues with Android Studio and composite builds, it is currently only possible to build Mercury-IM either using the Gradle command line tool (see below), or by using Android Studio 3.5.3.

git clone <project-url>
cd <project-directory>
git submodule update --init --recursive
gradle assembleDebug


  • I want to develop, but lots of org.jivesoftware.smackx.* classes cannot be found!
    • You forgot to type git submodule init && git submodule update as mentioned above
  • It looks like I'm missing* classes???
    • In Android Studio select the data module and then click "Build -> Make Module 'data'".