Matrix client / Element X fork https://schildi.chat/android/next/
  • Kotlin 98.8%
  • Shell 0.5%
  • Python 0.5%
  • JavaScript 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
SpiritCroc aa219ec8da [merge] Add back downstream caption rendering
Change-Id: I6adae9c0882a9b4fcaa3e67701ec3a5d007c0e28
2026-07-31 19:12:26 +02:00
.fastlane
.github Update actions/checkout action to v7.0.1 2026-07-27 16:18:01 +00:00
.idea Merge tag 'v26.08.0' 2026-07-30 20:35:09 +02:00
.maestro Fix #7181: Remove back arrow from device verified screen and use 'Done' text (#7222) 2026-07-16 16:50:58 +02:00
annotations
app Merge tag 'v26.08.0' 2026-07-30 20:35:09 +02:00
appconfig Merge tag 'v26.05.0' 2026-05-09 11:50:00 +02:00
appicon
appnav Localazy: improve search, parallelize checks (#7261) 2026-07-27 15:12:53 +02:00
changelog.d
codegen
docs Merge tag 'v26.05.0' 2026-05-09 11:50:00 +02:00
enterprise@7bbf7db013 Import Compound tokens from v10.2.3 (#7272) 2026-07-28 09:07:24 +00:00
features [merge] Add back downstream caption rendering 2026-07-31 19:12:26 +02:00
gradle Merge tag 'v26.08.0' 2026-07-30 20:35:09 +02:00
graphics
libraries [merge] Fix compile 2026-07-31 17:03:49 +02:00
metadata/en-US Increment version to 0.11.6 2026-07-26 14:43:42 +02:00
plugins Merge tag 'v26.08.0' 2026-07-30 20:35:09 +02:00
sc_tools Merge tag 'v26.06.3' 2026-06-17 18:23:39 +02:00
schildi [merge] Fix compile 2026-07-31 17:03:49 +02:00
screenshots Merge tag 'v26.08.0' 2026-07-30 20:35:09 +02:00
services Merge tag 'v26.07.0' 2026-07-02 12:25:06 +02:00
tests Merge tag 'v26.08.0' 2026-07-30 20:35:09 +02:00
tools Setting version for the release 26.08.0 2026-07-29 17:44:12 +02:00
upstream_infra Merge tag 'v26.08.0' 2026-07-30 20:35:09 +02:00
.editorconfig
.gitignore
.gitmodules
.lfsconfig
AGENTS.md Add Stefan's etiquette to the project. (#6909) 2026-05-29 15:59:54 +02:00
build.gradle.kts fix(deps): update android.gradle.plugin to v9 (major) (#6021) 2026-06-11 09:51:47 +02:00
CLAUDE.md Create AGENTS.md 2026-03-25 12:19:26 +01:00
correct_strings.sh Merge tag 'v26.06.1' 2026-06-05 17:07:02 +02:00
create_variant_resources.sh
fastlane Adding fastlane file for version 26.08.0 2026-07-29 17:44:30 +02:00
FEATURES.md Render tables in formatted messages 2026-07-18 11:45:36 +02:00
fix_merge.sh
Gemfile
gradle.properties Import Compound tokens from v10.2.3 (#7272) 2026-07-28 09:07:24 +00:00
gradlew Update Gradle Wrapper from 9.5.1 to 9.6.1 2026-07-17 13:59:33 +00:00
gradlew.bat Update Gradle Wrapper from 9.5.1 to 9.6.1 2026-07-17 13:59:33 +00:00
increment_version.sh increment_version.sh: Exclude sdk-only changes from changelog 2026-03-28 08:37:29 +01:00
LICENSE
LICENSE-COMMERCIAL
merge_helpers.sh
pre_merge.sh
readme.md
settings.gradle.kts Merge tag 'v26.05.2' 2026-05-20 16:52:48 +02:00

Translation status SchildiChat-Android Matrix room #android:schildi.chat

SchildiChat Android Next

Matrix client based on Element Android X in the tradition of the original SchildiChat for Android which was based on the now deprecated Element Android codebase.

Similarly to Element X, this SchildiChat Android rewrite should still be considered beta, as it lacks some functionality which one might expect from a fully-featured chat app, compared to the old SchildiChat implementation.

An overview over changes compared to Element X can be found here.

Note for F-Droid: You can get faster updates directly from the developer by adding the SpiritCroc F-Droid repository. These builds usually match the releases in the official F-Droid repository thanks to reproducible builds, but get built directly on app update and do not need to go through a possibly lengthy build process on the F-Droid servers.

Beta builds for testing pre-release versions are available from the SpiritCroc testing F-Droid repository under a different package name, and can thus be installed next to the stable release.

Translations

If you want to translate SchildiChat, visit our weblate.
Translations that concern upstream Element code are best contributed directly to Element, who currently manage translations on localazy.

Screenshots

Building

In general, building works the same as for Element X or any common Android project. Just import into Android Studio and make sure you have all the required SDKs ready.

WYSIWYG development

To develop changes in our matrix-rich-text-editor fork:

Build WYSIWYG locally

  • Clone the repo
  • Bump the version number to some future version that doesn't exist yet using ./update_version 1.2.3 where 1.2.3 is your chosen version number. By not re-using any existing version number you can make sure you're using your local build if the build of SchildiChat succeeds.
  • Publish the wysiwyg by running make android in its directory. (Make sure you have JAVA_HOME, ANDROID_NDK_HOME and all the build dependencies setup)

Include local-built WYSIWYG in SchildiChat

  • Modify settings.gradle.kts to insert mavenLocal() into the dependencyResolutionManagement {} block. (Cherry-pick)
  • Change the version number of wysiwyg in gradle/libs.versions.toml to match the one you published locally.

Contributing

Generally, contributions are welcome!
Note that in order to ease upstream merges, we want to leave the smallest footprint possible on Element's sources when implementing original features or patching Element's behaviour.

In particular (may change a bit while the project is still in alpha):

  • Put code into additional files (chat.schildi.* package names) if reasonable
    • Prefer schildi/lib module if it doesn't depend on element modules (except maybe strings)
    • Prefer schildi/components module if it depend on some of Element's Design/UI components but nothing else
    • Otherwise, prefer element module where it makes most sense (or create a new module for bigger features, maybe)
  • Put Schildi-specific drawables and other xml resources that override upstream resources into the sc build flavor
    • This way, we can use the same name and avoid merge conflicts
    • Compare e.g. libraries/designsystem: we define the flavor sc and thus put drawables in the sc instead of main directory. For new modules that do not feature a sc flavor yet, copy over the required build.gradle.kts content from a module that does.
  • Put Schildi-specific strings into schildi/lib
    • Never touch upstream strings! If we want to change Element's strings, we'll either want a script that patches them, so we can restore upstream strings before upstream merges and re-do our changes automatically after the merge, or alternative put it into an sc build flavor, if we do not need to touch multiple translations.
  • Don't worry too much about code style if violating it can ease upstream merges
    • When putting upstream code into a new block (e.g., putting it in an if-statement), don't indent the upstream code, but rather add comments like // Wrong indention for merge-ability - start and // Wrong indention for merge-ability - end