diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ceed3f57..193125de9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ * properly display "Messages are end-to-end encrypted." in all encrypted groups * several small fixes and improvements * add experimental built-in calls -* update to core 2.13.0 +* update to core 2.16.0 ## v2.11.0 2025-08 diff --git a/README.md b/README.md index 945f2a11f..12329ca50 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,28 @@ subproject _deltachat-core-rust_: or later by `git submodule update --init --recursive`. If you do this in your home directory, this results in the folder `~/deltachat-android` which is just fine. +# Generate JSON-RPC bindings + +To generate the JSON-RPC bindings (ex. `chat.delta.rpc.*` package) +install the [dcrpcgen tool](https://github.com/chatmail/dcrpcgen) +then generate the `schema.json` file: + +``` +# install deltachat-rpc-server program: +cargo install --path ./jni/deltachat-core-rust/deltachat-rpc-server +# check the version of core matches: +deltachat-rpc-server --version +# generate the schema: +deltachat-rpc-server --openrpc > schema.json +``` + +then pass the schema file to the `dcrpcgen` tool to generate the +code: + +``` +dcrpcgen java --schema schema.json -o ./src/main/java/ +``` + # Build Using Nix The repository contains [Nix](https://nixos.org/) development environment diff --git a/jni/deltachat-core-rust b/jni/deltachat-core-rust index ba2e573c2..570a9993f 160000 --- a/jni/deltachat-core-rust +++ b/jni/deltachat-core-rust @@ -1 +1 @@ -Subproject commit ba2e573c2358f7c29bf3ad3bb082dd74da167261 +Subproject commit 570a9993f73ad8d186a3ed810a185e0ca7e1f5ca diff --git a/src/main/java/chat/delta/rpc/types/CallInfo.java b/src/main/java/chat/delta/rpc/types/CallInfo.java index f75708d86..dd177c186 100644 --- a/src/main/java/chat/delta/rpc/types/CallInfo.java +++ b/src/main/java/chat/delta/rpc/types/CallInfo.java @@ -13,7 +13,7 @@ public class CallInfo { /** * Call state. *
- * For example, if the call is accepted, active, cancelled, declined etc. + * For example, if the call is accepted, active, canceled, declined etc. */ public CallState state; } \ No newline at end of file diff --git a/src/main/java/chat/delta/rpc/types/CallState.java b/src/main/java/chat/delta/rpc/types/CallState.java index 6030db9dd..b18577053 100644 --- a/src/main/java/chat/delta/rpc/types/CallState.java +++ b/src/main/java/chat/delta/rpc/types/CallState.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; import com.fasterxml.jackson.annotation.JsonTypeInfo.As; @JsonTypeInfo(use=Id.NAME, include=As.PROPERTY, property="kind") -@JsonSubTypes({@Type(value = CallState.Alerting.class, name="Alerting"), @Type(value = CallState.Active.class, name="Active"), @Type(value = CallState.Completed.class, name="Completed"), @Type(value = CallState.Missed.class, name="Missed"), @Type(value = CallState.Declined.class, name="Declined"), @Type(value = CallState.Cancelled.class, name="Cancelled")}) +@JsonSubTypes({@Type(value = CallState.Alerting.class, name="Alerting"), @Type(value = CallState.Active.class, name="Active"), @Type(value = CallState.Completed.class, name="Completed"), @Type(value = CallState.Missed.class, name="Missed"), @Type(value = CallState.Declined.class, name="Declined"), @Type(value = CallState.Canceled.class, name="Canceled")}) public abstract class CallState { /** @@ -38,11 +38,11 @@ public abstract class CallState { } /** - * Outgoing call that has been cancelled on our side before receiving a response. + * Outgoing call that has been canceled on our side before receiving a response. *
- * Incoming calls cannot be cancelled, on the receiver side cancelled calls usually result in missed calls. + * Incoming calls cannot be canceled, on the receiver side canceled calls usually result in missed calls. */ - public static class Cancelled extends CallState { + public static class Canceled extends CallState { } } \ No newline at end of file diff --git a/src/main/java/org/thoughtcrime/securesms/components/CallItemView.java b/src/main/java/org/thoughtcrime/securesms/components/CallItemView.java index fe6dcdbad..d9fdf3136 100644 --- a/src/main/java/org/thoughtcrime/securesms/components/CallItemView.java +++ b/src/main/java/org/thoughtcrime/securesms/components/CallItemView.java @@ -63,7 +63,7 @@ public class CallItemView extends FrameLayout { if (callInfo.state instanceof CallState.Missed) { title.setText(R.string.missed_call); - } else if (callInfo.state instanceof CallState.Cancelled) { + } else if (callInfo.state instanceof CallState.Canceled) { title.setText(R.string.canceled_call); } else if (callInfo.state instanceof CallState.Declined) { title.setText(R.string.declined_call); diff --git a/src/main/java/org/thoughtcrime/securesms/connect/DcHelper.java b/src/main/java/org/thoughtcrime/securesms/connect/DcHelper.java index 837137ed6..79ae61ee4 100644 --- a/src/main/java/org/thoughtcrime/securesms/connect/DcHelper.java +++ b/src/main/java/org/thoughtcrime/securesms/connect/DcHelper.java @@ -244,6 +244,11 @@ public class DcHelper { dcContext.setStockTranslation(177, context.getString(R.string.reaction_by_other)); dcContext.setStockTranslation(190, context.getString(R.string.secure_join_wait)); dcContext.setStockTranslation(193, context.getString(R.string.donate_device_msg)); + dcContext.setStockTranslation(194, context.getString(R.string.outgoing_call)); + dcContext.setStockTranslation(195, context.getString(R.string.incoming_call)); + dcContext.setStockTranslation(196, context.getString(R.string.declined_call)); + dcContext.setStockTranslation(197, context.getString(R.string.canceled_call)); + dcContext.setStockTranslation(198, context.getString(R.string.missed_call)); } public static File getImexDir() {