mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
Merge branch 'main' into adb/issue-4055
This commit is contained in:
@@ -211,11 +211,11 @@ public class Rpc {
|
||||
}
|
||||
|
||||
/**
|
||||
* Set configuration values from a QR code. (technically from the URI that is stored in the qrcode)
|
||||
* Before this function is called, `checkQr()` should confirm the type of the
|
||||
* QR code is `account` or `webrtcInstance`.
|
||||
* Set configuration values from a QR code (technically from the URI stored in it).
|
||||
* Before this function is called, `check_qr()` should be used to get the QR code type.
|
||||
* <p>
|
||||
* Internally, the function will call dc_set_config() with the appropriate keys,
|
||||
* "DCACCOUNT:" and "DCLOGIN:" QR codes configure the account, but I/O mustn't be started for
|
||||
* such QR codes, consider using [`Self::add_transport_from_qr`] which also restarts I/O.
|
||||
*/
|
||||
public void setConfigFromQr(Integer accountId, String qrContent) throws RpcException {
|
||||
transport.call("set_config_from_qr", mapper.valueToTree(accountId), mapper.valueToTree(qrContent));
|
||||
@@ -234,6 +234,11 @@ public class Rpc {
|
||||
return transport.callForResult(new TypeReference<java.util.Map<String, String>>(){}, "batch_get_config", mapper.valueToTree(accountId), mapper.valueToTree(keys));
|
||||
}
|
||||
|
||||
/** Returns all `ui.*` config keys that were set by the UI. */
|
||||
public java.util.List<String> getAllUiConfigKeys(Integer accountId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<java.util.List<String>>(){}, "get_all_ui_config_keys", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
public void setStockStrings(java.util.Map<String, String> strings) throws RpcException {
|
||||
transport.call("set_stock_strings", mapper.valueToTree(strings));
|
||||
}
|
||||
@@ -449,11 +454,11 @@ public class Rpc {
|
||||
* Delete a chat.
|
||||
* <p>
|
||||
* Messages are deleted from the device and the chat database entry is deleted.
|
||||
* After that, the event #DC_EVENT_MSGS_CHANGED is posted.
|
||||
* After that, a `MsgsChanged` event is emitted.
|
||||
* Messages are deleted from the server in background.
|
||||
* <p>
|
||||
* Things that are _not done_ implicitly:
|
||||
* <p>
|
||||
* - Messages are **not deleted from the server**.
|
||||
* - The chat or the contact is **not blocked**, so new messages from the user/the group may appear as a contact request
|
||||
* and the user may create the chat again.
|
||||
* - **Groups are not left** - this would
|
||||
@@ -733,11 +738,26 @@ public class Rpc {
|
||||
return transport.callForResult(new TypeReference<Integer>(){}, "add_device_message", mapper.valueToTree(accountId), mapper.valueToTree(label), mapper.valueToTree(msg));
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark all messages in all chats as _noticed_.
|
||||
* Skips messages from blocked contacts, but does not skip messages in muted chats.
|
||||
* <p>
|
||||
* _Noticed_ messages are no longer _fresh_ and do not count as being unseen
|
||||
* but are still waiting for being marked as "seen" using markseen_msgs()
|
||||
* (read receipts aren't sent for noticed messages).
|
||||
* <p>
|
||||
* Calling this function usually results in the event #DC_EVENT_MSGS_NOTICED.
|
||||
* See also markseen_msgs().
|
||||
*/
|
||||
public void marknoticedAllChats(Integer accountId) throws RpcException {
|
||||
transport.call("marknoticed_all_chats", mapper.valueToTree(accountId));
|
||||
}
|
||||
|
||||
/**
|
||||
* Mark all messages in a chat as _noticed_.
|
||||
* _Noticed_ messages are no longer _fresh_ and do not count as being unseen
|
||||
* but are still waiting for being marked as "seen" using markseen_msgs()
|
||||
* (IMAP/MDNs is not done for noticed messages).
|
||||
* (read receipts aren't sent for noticed messages).
|
||||
* <p>
|
||||
* Calling this function usually results in the event #DC_EVENT_MSGS_NOTICED.
|
||||
* See also markseen_msgs().
|
||||
@@ -893,6 +913,15 @@ public class Rpc {
|
||||
return transport.callForResult(new TypeReference<MessageInfo>(){}, "get_message_info_object", mapper.valueToTree(accountId), mapper.valueToTree(messageId));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns count of read receipts on message.
|
||||
* <p>
|
||||
* This view count is meant as a feedback measure for the channel owner only.
|
||||
*/
|
||||
public Integer getMessageReadReceiptCount(Integer accountId, Integer messageId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<Integer>(){}, "get_message_read_receipt_count", mapper.valueToTree(accountId), mapper.valueToTree(messageId));
|
||||
}
|
||||
|
||||
/** Returns contacts that sent read receipts and the time of reading. */
|
||||
public java.util.List<MessageReadReceipt> getMessageReadReceipts(Integer accountId, Integer messageId) throws RpcException {
|
||||
return transport.callForResult(new TypeReference<java.util.List<MessageReadReceipt>>(){}, "get_message_read_receipts", mapper.valueToTree(accountId), mapper.valueToTree(messageId));
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
package chat.delta.rpc.types;
|
||||
|
||||
/**
|
||||
* cheaper version of fullchat, omits: - contacts - contact_ids - fresh_message_counter - ephemeral_timer - self_in_group - was_seen_recently - can_send
|
||||
* cheaper version of fullchat, omits: - contact_ids - fresh_message_counter - ephemeral_timer - self_in_group - was_seen_recently - can_send
|
||||
* <p>
|
||||
* used when you only need the basic metadata of a chat like type, name, profile picture
|
||||
*/
|
||||
|
||||
@@ -38,7 +38,7 @@ public class Contact {
|
||||
* <p>
|
||||
* UI should display the information in the contact's profile as follows:
|
||||
* <p>
|
||||
* - If `verifierId` != 0, display text "Introduced by ..." with the name and address of the contact formatted by `name_and_addr`/`nameAndAddr`. Prefix the text by a green checkmark.
|
||||
* - If `verifierId` != 0, display text "Introduced by ..." with the name of the contact. Prefix the text by a green checkmark.
|
||||
* <p>
|
||||
* - If `verifierId` == 0 and `isVerified` != 0, display "Introduced" prefixed by a green checkmark.
|
||||
* <p>
|
||||
|
||||
@@ -412,7 +412,9 @@ public abstract class EventType {
|
||||
/**
|
||||
* One or more transports has changed.
|
||||
* <p>
|
||||
* This event is used for tests to detect when transport synchronization messages arrives. UIs don't need to use it, it is unlikely that user modifies transports on multiple devices simultaneously.
|
||||
* UI should update the list.
|
||||
* <p>
|
||||
* This event is emitted when transport synchronization messages arrives, but not when the UI modifies the transport list by itself.
|
||||
*/
|
||||
public static class TransportsModified extends EventType {
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ public class FullChat {
|
||||
public ChatType chatType;
|
||||
public String color;
|
||||
public java.util.List<Integer> contactIds;
|
||||
public java.util.List<Contact> contacts;
|
||||
public Integer ephemeralTimer;
|
||||
public Integer freshMessageCounter;
|
||||
public Integer id;
|
||||
|
||||
@@ -12,6 +12,7 @@ public class Message {
|
||||
public String error;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String file;
|
||||
/** The size of the file in bytes, if applicable. If message is a pre-message, then this is the size of the file to be downloaded. */
|
||||
public Integer fileBytes;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String fileMime;
|
||||
|
||||
@@ -22,6 +22,7 @@ public abstract class MessageLoadResult {
|
||||
public String error;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String file;
|
||||
/** The size of the file in bytes, if applicable. If message is a pre-message, then this is the size of the file to be downloaded. */
|
||||
public Integer fileBytes;
|
||||
@com.fasterxml.jackson.annotation.JsonSetter(nulls = com.fasterxml.jackson.annotation.Nulls.SET)
|
||||
public String fileMime;
|
||||
|
||||
Reference in New Issue
Block a user