Checking Edit Capability

This commit is contained in:
Sowjanya Kota 2024-01-19 18:12:31 +01:00 committed by sowjanyakch
parent 160426e375
commit 96a244408e
5 changed files with 128 additions and 237 deletions

View File

@ -24,6 +24,7 @@
package com.nextcloud.talk.api; package com.nextcloud.talk.api;
import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall; import com.nextcloud.talk.models.json.capabilities.CapabilitiesOverall;
import com.nextcloud.talk.models.json.chat.ChatOCSSingleMessage;
import com.nextcloud.talk.models.json.chat.ChatOverall; import com.nextcloud.talk.models.json.chat.ChatOverall;
import com.nextcloud.talk.models.json.chat.ChatOverallSingleMessage; import com.nextcloud.talk.models.json.chat.ChatOverallSingleMessage;
import com.nextcloud.talk.models.json.chat.ChatShareOverall; import com.nextcloud.talk.models.json.chat.ChatShareOverall;
@ -96,19 +97,14 @@ public interface NcApi {
*/ */
@GET @GET
Observable<ResponseBody> getContactsWithSearchParam(@Header("Authorization") String authorization, Observable<ResponseBody> getContactsWithSearchParam(@Header("Authorization") String authorization, @Url String url, @Nullable @Query("shareTypes[]") List<String> listOfShareTypes, @QueryMap Map<String, Object> options);
@Url String url,
@Nullable @Query("shareTypes[]") List<String> listOfShareTypes,
@QueryMap Map<String, Object> options);
/* /*
Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /room Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /room
*/ */
@GET @GET
Observable<RoomsOverall> getRooms(@Header("Authorization") String authorization, Observable<RoomsOverall> getRooms(@Header("Authorization") String authorization, @Url String url, @Nullable @Query("includeStatus") Boolean includeStatus);
@Url String url,
@Nullable @Query("includeStatus") Boolean includeStatus);
/* /*
Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /room/roomToken Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /room/roomToken
@ -125,9 +121,7 @@ public interface NcApi {
*/ */
@POST @POST
Observable<RoomOverall> createRoom(@Header("Authorization") String authorization, Observable<RoomOverall> createRoom(@Header("Authorization") String authorization, @Url String url, @QueryMap Map<String, String> options);
@Url String url,
@QueryMap Map<String, String> options);
/* /*
QueryMap items are as follows: QueryMap items are as follows:
@ -138,16 +132,12 @@ public interface NcApi {
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<GenericOverall> renameRoom(@Header("Authorization") String authorization, Observable<GenericOverall> renameRoom(@Header("Authorization") String authorization, @Url String url, @Field("roomName") String roomName);
@Url String url,
@Field("roomName") String roomName);
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<GenericOverall> setConversationDescription(@Header("Authorization") String authorization, Observable<GenericOverall> setConversationDescription(@Header("Authorization") String authorization, @Url String url, @Field("description") String description);
@Url String url,
@Field("description") String description);
/* /*
QueryMap items are as follows: QueryMap items are as follows:
@ -156,48 +146,32 @@ public interface NcApi {
Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /room/roomToken/participants Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /room/roomToken/participants
*/ */
@POST @POST
Observable<AddParticipantOverall> addParticipant(@Header("Authorization") String authorization, Observable<AddParticipantOverall> addParticipant(@Header("Authorization") String authorization, @Url String url, @QueryMap Map<String, String> options);
@Url String url,
@QueryMap Map<String,
String> options);
@POST @POST
Observable<GenericOverall> resendParticipantInvitations(@Header("Authorization") String authorization, Observable<GenericOverall> resendParticipantInvitations(@Header("Authorization") String authorization, @Url String url);
@Url String url);
// also used for removing a guest from a conversation // also used for removing a guest from a conversation
@Deprecated @Deprecated
@DELETE @DELETE
Observable<GenericOverall> removeParticipantFromConversation(@Header("Authorization") String authorization, Observable<GenericOverall> removeParticipantFromConversation(@Header("Authorization") String authorization, @Url String url, @Query("participant") String participantId);
@Url String url,
@Query("participant") String participantId);
@DELETE @DELETE
Observable<GenericOverall> removeAttendeeFromConversation(@Header("Authorization") String authorization, Observable<GenericOverall> removeAttendeeFromConversation(@Header("Authorization") String authorization, @Url String url, @Query("attendeeId") Long attendeeId);
@Url String url,
@Query("attendeeId") Long attendeeId);
@Deprecated @Deprecated
@POST @POST
Observable<GenericOverall> promoteUserToModerator(@Header("Authorization") String authorization, Observable<GenericOverall> promoteUserToModerator(@Header("Authorization") String authorization, @Url String url, @Query("participant") String participantId);
@Url String url,
@Query("participant") String participantId);
@Deprecated @Deprecated
@DELETE @DELETE
Observable<GenericOverall> demoteModeratorToUser(@Header("Authorization") String authorization, Observable<GenericOverall> demoteModeratorToUser(@Header("Authorization") String authorization, @Url String url, @Query("participant") String participantId);
@Url String url,
@Query("participant") String participantId);
@POST @POST
Observable<GenericOverall> promoteAttendeeToModerator(@Header("Authorization") String authorization, Observable<GenericOverall> promoteAttendeeToModerator(@Header("Authorization") String authorization, @Url String url, @Query("attendeeId") Long attendeeId);
@Url String url,
@Query("attendeeId") Long attendeeId);
@DELETE @DELETE
Observable<GenericOverall> demoteAttendeeFromModerator(@Header("Authorization") String authorization, Observable<GenericOverall> demoteAttendeeFromModerator(@Header("Authorization") String authorization, @Url String url, @Query("attendeeId") Long attendeeId);
@Url String url,
@Query("attendeeId") Long attendeeId);
/* /*
Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /room/roomToken/participants/self Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /room/roomToken/participants/self
@ -228,15 +202,11 @@ public interface NcApi {
Observable<ParticipantsOverall> getPeersForCall(@Header("Authorization") String authorization, @Url String url); Observable<ParticipantsOverall> getPeersForCall(@Header("Authorization") String authorization, @Url String url);
@GET @GET
Observable<ParticipantsOverall> getPeersForCall(@Header("Authorization") String authorization, Observable<ParticipantsOverall> getPeersForCall(@Header("Authorization") String authorization, @Url String url, @QueryMap Map<String, Boolean> fields);
@Url String url,
@QueryMap Map<String, Boolean> fields);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<RoomOverall> joinRoom(@Nullable @Header("Authorization") String authorization, Observable<RoomOverall> joinRoom(@Nullable @Header("Authorization") String authorization, @Url String url, @Nullable @Field("password") String password);
@Url String url,
@Nullable @Field("password") String password);
@DELETE @DELETE
Observable<GenericOverall> leaveRoom(@Nullable @Header("Authorization") String authorization, @Url String url); Observable<GenericOverall> leaveRoom(@Nullable @Header("Authorization") String authorization, @Url String url);
@ -247,11 +217,7 @@ public interface NcApi {
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<GenericOverall> joinCall(@Nullable @Header("Authorization") String authorization, Observable<GenericOverall> joinCall(@Nullable @Header("Authorization") String authorization, @Url String url, @Field("flags") Integer inCall, @Field("silent") Boolean callWithoutNotification, @Nullable @Field("recordingConsent") Boolean recordingConsent);
@Url String url,
@Field("flags") Integer inCall,
@Field("silent") Boolean callWithoutNotification,
@Nullable @Field("recordingConsent") Boolean recordingConsent);
/* /*
Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /call/callToken Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /call/callToken
@ -260,8 +226,7 @@ public interface NcApi {
Observable<GenericOverall> leaveCall(@Nullable @Header("Authorization") String authorization, @Url String url); Observable<GenericOverall> leaveCall(@Nullable @Header("Authorization") String authorization, @Url String url);
@GET @GET
Observable<SignalingSettingsOverall> getSignalingSettings(@Nullable @Header("Authorization") String authorization, Observable<SignalingSettingsOverall> getSignalingSettings(@Nullable @Header("Authorization") String authorization, @Url String url);
@Url String url);
/* /*
QueryMap items are as follows: QueryMap items are as follows:
@ -271,16 +236,13 @@ public interface NcApi {
*/ */
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<SignalingOverall> sendSignalingMessages(@Nullable @Header("Authorization") String authorization, Observable<SignalingOverall> sendSignalingMessages(@Nullable @Header("Authorization") String authorization, @Url String url, @Field("messages") String messages);
@Url String url,
@Field("messages") String messages);
/* /*
Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /signaling Server URL is: baseUrl + ocsApiVersion + spreedApiVersion + /signaling
*/ */
@GET @GET
Observable<SignalingOverall> pullSignalingMessages(@Nullable @Header("Authorization") String authorization, Observable<SignalingOverall> pullSignalingMessages(@Nullable @Header("Authorization") String authorization, @Url String url);
@Url String url);
/* /*
QueryMap items are as follows: QueryMap items are as follows:
@ -298,11 +260,7 @@ public interface NcApi {
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<GenericOverall> setUserData(@Header("Authorization") String authorization, Observable<GenericOverall> setUserData(@Header("Authorization") String authorization, @Url String url, @Field("key") String key, @Field("value") String value);
@Url String url,
@Field("key") String key,
@Field("value") String value);
/* /*
Server URL is: baseUrl + /status.php Server URL is: baseUrl + /status.php
@ -322,21 +280,14 @@ public interface NcApi {
*/ */
@POST @POST
Observable<PushRegistrationOverall> registerDeviceForNotificationsWithNextcloud( Observable<PushRegistrationOverall> registerDeviceForNotificationsWithNextcloud(@Header("Authorization") String authorization, @Url String url, @QueryMap Map<String, String> options);
@Header("Authorization") String authorization,
@Url String url,
@QueryMap Map<String, String> options);
@DELETE @DELETE
Observable<GenericOverall> unregisterDeviceForNotificationsWithNextcloud( Observable<GenericOverall> unregisterDeviceForNotificationsWithNextcloud(@Header("Authorization") String authorization, @Url String url);
@Header("Authorization") String authorization,
@Url String url);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<Unit> registerDeviceForNotificationsWithPushProxy(@Url String url, Observable<Unit> registerDeviceForNotificationsWithPushProxy(@Url String url, @FieldMap Map<String, String> fields);
@FieldMap Map<String, String> fields);
/* /*
QueryMap items are as follows: QueryMap items are as follows:
@ -345,20 +296,15 @@ public interface NcApi {
- "userPublicKey": "{{userPublicKey}}" - "userPublicKey": "{{userPublicKey}}"
*/ */
@DELETE @DELETE
Observable<Void> unregisterDeviceForNotificationsWithProxy(@Url String url, Observable<Void> unregisterDeviceForNotificationsWithProxy(@Url String url, @QueryMap Map<String, String> fields);
@QueryMap Map<String,String> fields);
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<GenericOverall> setPassword(@Header("Authorization") String authorization, Observable<GenericOverall> setPassword(@Header("Authorization") String authorization, @Url String url, @Field("password") String password);
@Url String url,
@Field("password") String password);
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<Response<GenericOverall>> setPassword2(@Header("Authorization") String authorization, Observable<Response<GenericOverall>> setPassword2(@Header("Authorization") String authorization, @Url String url, @Field("password") String password);
@Url String url,
@Field("password") String password);
@GET @GET
Observable<CapabilitiesOverall> getCapabilities(@Header("Authorization") String authorization, @Url String url); Observable<CapabilitiesOverall> getCapabilities(@Header("Authorization") String authorization, @Url String url);
@ -374,9 +320,7 @@ public interface NcApi {
- "lastKnownMessageId", int, use one from X-Chat-Last-Given - "lastKnownMessageId", int, use one from X-Chat-Last-Given
*/ */
@GET @GET
Observable<Response<ChatOverall>> pullChatMessages(@Header("Authorization") String authorization, Observable<Response<ChatOverall>> pullChatMessages(@Header("Authorization") String authorization, @Url String url, @QueryMap Map<String, Integer> fields);
@Url String url,
@QueryMap Map<String, Integer> fields);
/* /*
Fieldmap items are as follows: Fieldmap items are as follows:
@ -386,107 +330,68 @@ public interface NcApi {
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<GenericOverall> sendChatMessage(@Header("Authorization") String authorization, Observable<GenericOverall> sendChatMessage(@Header("Authorization") String authorization, @Url String url, @Field("message") CharSequence message, @Field("actorDisplayName") String actorDisplayName, @Field("replyTo") Integer replyTo, @Field("silent") Boolean sendWithoutNotification);
@Url String url,
@Field("message") CharSequence message, @PUT
@Field("actorDisplayName") String actorDisplayName, Observable<ChatOCSSingleMessage> editChatMessage(@Header("Authorization") String authorization, @Url String url, @Field("message") String message);
@Field("replyTo") Integer replyTo,
@Field("silent") Boolean sendWithoutNotification);
@GET @GET
Observable<Response<ChatShareOverall>> getSharedItems( Observable<Response<ChatShareOverall>> getSharedItems(@Header("Authorization") String authorization, @Url String url, @Query("objectType") String objectType, @Nullable @Query("lastKnownMessageId") Integer lastKnownMessageId, @Nullable @Query("limit") Integer limit);
@Header("Authorization") String authorization,
@Url String url,
@Query("objectType") String objectType,
@Nullable @Query("lastKnownMessageId") Integer lastKnownMessageId,
@Nullable @Query("limit") Integer limit);
@GET @GET
Observable<Response<ChatShareOverviewOverall>> getSharedItemsOverview(@Header("Authorization") String authorization, Observable<Response<ChatShareOverviewOverall>> getSharedItemsOverview(@Header("Authorization") String authorization, @Url String url, @Nullable @Query("limit") Integer limit);
@Url String url,
@Nullable @Query("limit") Integer limit);
@GET @GET
Observable<MentionOverall> getMentionAutocompleteSuggestions(@Header("Authorization") String authorization, Observable<MentionOverall> getMentionAutocompleteSuggestions(@Header("Authorization") String authorization, @Url String url, @Query("search") String query, @Nullable @Query("limit") Integer limit, @QueryMap Map<String, String> fields);
@Url String url,
@Query("search") String query,
@Nullable @Query("limit") Integer limit,
@QueryMap Map<String, String> fields);
// Url is: /api/{apiVersion}/room/{token}/pin // Url is: /api/{apiVersion}/room/{token}/pin
@POST @POST
Observable<GenericOverall> addConversationToFavorites(@Header("Authorization") String authorization, Observable<GenericOverall> addConversationToFavorites(@Header("Authorization") String authorization, @Url String url);
@Url String url);
// Url is: /api/{apiVersion}/room/{token}/favorites // Url is: /api/{apiVersion}/room/{token}/favorites
@DELETE @DELETE
Observable<GenericOverall> removeConversationFromFavorites(@Header("Authorization") String authorization, Observable<GenericOverall> removeConversationFromFavorites(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@GET @GET
Observable<NotificationOverall> getNcNotification(@Header("Authorization") String authorization, Observable<NotificationOverall> getNcNotification(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<GenericOverall> setNotificationLevel(@Header("Authorization") String authorization, Observable<GenericOverall> setNotificationLevel(@Header("Authorization") String authorization, @Url String url, @Field("level") int level);
@Url String url,
@Field("level") int level);
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<GenericOverall> setReadOnlyState(@Header("Authorization") String authorization, Observable<GenericOverall> setReadOnlyState(@Header("Authorization") String authorization, @Url String url, @Field("state") int state);
@Url String url,
@Field("state") int state);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<GenericOverall> createRemoteShare(@Nullable @Header("Authorization") String authorization, Observable<GenericOverall> createRemoteShare(@Nullable @Header("Authorization") String authorization, @Url String url, @Field("path") String remotePath, @Field("shareWith") String roomToken, @Field("shareType") String shareType, @Field("talkMetaData") String talkMetaData);
@Url String url,
@Field("path") String remotePath,
@Field("shareWith") String roomToken,
@Field("shareType") String shareType,
@Field("talkMetaData") String talkMetaData);
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<GenericOverall> setLobbyForConversation(@Header("Authorization") String authorization, Observable<GenericOverall> setLobbyForConversation(@Header("Authorization") String authorization, @Url String url, @Field("state") Integer state, @Field("timer") Long timer);
@Url String url,
@Field("state") Integer state,
@Field("timer") Long timer);
@POST @POST
Observable<GenericOverall> setReadStatusPrivacy(@Header("Authorization") String authorization, Observable<GenericOverall> setReadStatusPrivacy(@Header("Authorization") String authorization, @Url String url, @Body RequestBody body);
@Url String url,
@Body RequestBody body);
@POST @POST
Observable<GenericOverall> setTypingStatusPrivacy(@Header("Authorization") String authorization, Observable<GenericOverall> setTypingStatusPrivacy(@Header("Authorization") String authorization, @Url String url, @Body RequestBody body);
@Url String url,
@Body RequestBody body);
@POST @POST
Observable<ContactsByNumberOverall> searchContactsByPhoneNumber(@Header("Authorization") String authorization, Observable<ContactsByNumberOverall> searchContactsByPhoneNumber(@Header("Authorization") String authorization, @Url String url, @Body RequestBody search);
@Url String url,
@Body RequestBody search);
@PUT @PUT
Observable<Response<GenericOverall>> uploadFile(@Header("Authorization") String authorization, Observable<Response<GenericOverall>> uploadFile(@Header("Authorization") String authorization, @Url String url, @Body RequestBody body);
@Url String url,
@Body RequestBody body);
@HEAD @HEAD
Observable<Response<Void>> checkIfFileExists(@Header("Authorization") String authorization, Observable<Response<Void>> checkIfFileExists(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@GET @GET
Call<ResponseBody> downloadFile(@Header("Authorization") String authorization, Call<ResponseBody> downloadFile(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@DELETE @DELETE
Observable<ChatOverallSingleMessage> deleteChatMessage(@Header("Authorization") String authorization, Observable<ChatOverallSingleMessage> deleteChatMessage(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@DELETE @DELETE
Observable<GenericOverall> deleteAvatar(@Header("Authorization") String authorization, @Url String url); Observable<GenericOverall> deleteAvatar(@Header("Authorization") String authorization, @Url String url);
@ -497,40 +402,28 @@ public interface NcApi {
@Multipart @Multipart
@POST @POST
Observable<GenericOverall> uploadAvatar(@Header("Authorization") String authorization, Observable<GenericOverall> uploadAvatar(@Header("Authorization") String authorization, @Url String url, @Part MultipartBody.Part attachment);
@Url String url,
@Part MultipartBody.Part attachment);
@Multipart @Multipart
@POST @POST
Observable<RoomOverall> uploadConversationAvatar(@Header("Authorization") String authorization, Observable<RoomOverall> uploadConversationAvatar(@Header("Authorization") String authorization, @Url String url, @Part MultipartBody.Part attachment);
@Url String url,
@Part MultipartBody.Part attachment);
@GET @GET
Observable<UserProfileFieldsOverall> getEditableUserProfileFields(@Header("Authorization") String authorization, Observable<UserProfileFieldsOverall> getEditableUserProfileFields(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@GET @GET
Call<ResponseBody> downloadResizedImage(@Header("Authorization") String authorization, Call<ResponseBody> downloadResizedImage(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<GenericOverall> sendLocation(@Header("Authorization") String authorization, Observable<GenericOverall> sendLocation(@Header("Authorization") String authorization, @Url String url, @Field("objectType") String objectType, @Field("objectId") String objectId, @Field("metaData") String metaData);
@Url String url,
@Field("objectType") String objectType,
@Field("objectId") String objectId,
@Field("metaData") String metaData);
@DELETE @DELETE
Observable<GenericOverall> clearChatHistory(@Header("Authorization") String authorization, @Url String url); Observable<GenericOverall> clearChatHistory(@Header("Authorization") String authorization, @Url String url);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<GenericOverall> notificationCalls(@Header("Authorization") String authorization, Observable<GenericOverall> notificationCalls(@Header("Authorization") String authorization, @Url String url, @Field("level") Integer level);
@Url String url,
@Field("level") Integer level);
@GET @GET
Observable<HoverCardOverall> hoverCard(@Header("Authorization") String authorization, @Url String url); Observable<HoverCardOverall> hoverCard(@Header("Authorization") String authorization, @Url String url);
@ -538,9 +431,7 @@ public interface NcApi {
// Url is: /api/{apiVersion}/chat/{token}/read // Url is: /api/{apiVersion}/chat/{token}/read
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<GenericOverall> setChatReadMarker(@Header("Authorization") String authorization, Observable<GenericOverall> setChatReadMarker(@Header("Authorization") String authorization, @Url String url, @Field("lastReadMessage") int lastReadMessage);
@Url String url,
@Field("lastReadMessage") int lastReadMessage);
// Url is: /api/{apiVersion}/chat/{token}/read // Url is: /api/{apiVersion}/chat/{token}/read
@DELETE @DELETE
@ -568,100 +459,62 @@ public interface NcApi {
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<GenericOverall> setPredefinedStatusMessage(@Header("Authorization") String authorization, Observable<GenericOverall> setPredefinedStatusMessage(@Header("Authorization") String authorization, @Url String url, @Field("messageId") String selectedPredefinedMessageId, @Field("clearAt") Long clearAt);
@Url String url,
@Field("messageId") String selectedPredefinedMessageId,
@Field("clearAt") Long clearAt);
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<GenericOverall> setCustomStatusMessage(@Header("Authorization") String authorization, Observable<GenericOverall> setCustomStatusMessage(@Header("Authorization") String authorization, @Url String url, @Field("statusIcon") String statusIcon, @Field("message") String message, @Field("clearAt") Long clearAt);
@Url String url,
@Field("statusIcon") String statusIcon,
@Field("message") String message,
@Field("clearAt") Long clearAt);
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<GenericOverall> setStatusType(@Header("Authorization") String authorization, Observable<GenericOverall> setStatusType(@Header("Authorization") String authorization, @Url String url, @Field("statusType") String statusType);
@Url String url,
@Field("statusType") String statusType);
@POST @POST
Observable<GenericOverall> sendReaction(@Header("Authorization") String authorization, Observable<GenericOverall> sendReaction(@Header("Authorization") String authorization, @Url String url, @Query("reaction") String reaction);
@Url String url,
@Query("reaction") String reaction);
@DELETE @DELETE
Observable<GenericOverall> deleteReaction(@Header("Authorization") String authorization, Observable<GenericOverall> deleteReaction(@Header("Authorization") String authorization, @Url String url, @Query("reaction") String reaction);
@Url String url,
@Query("reaction") String reaction);
@GET @GET
Observable<ReactionsOverall> getReactions(@Header("Authorization") String authorization, Observable<ReactionsOverall> getReactions(@Header("Authorization") String authorization, @Url String url, @Query("reaction") String reaction);
@Url String url,
@Query("reaction") String reaction);
@GET @GET
Observable<UnifiedSearchOverall> performUnifiedSearch(@Header("Authorization") String authorization, Observable<UnifiedSearchOverall> performUnifiedSearch(@Header("Authorization") String authorization, @Url String url, @Query("term") String term, @Query("from") String fromUrl, @Query("limit") Integer limit, @Query("cursor") Integer cursor);
@Url String url,
@Query("term") String term,
@Query("from") String fromUrl,
@Query("limit") Integer limit,
@Query("cursor") Integer cursor);
@GET @GET
Observable<PollOverall> getPoll(@Header("Authorization") String authorization, Observable<PollOverall> getPoll(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<PollOverall> createPoll(@Header("Authorization") String authorization, Observable<PollOverall> createPoll(@Header("Authorization") String authorization, @Url String url, @Query("question") String question, @Field("options[]") List<String> options, @Query("resultMode") Integer resultMode, @Query("maxVotes") Integer maxVotes);
@Url String url,
@Query("question") String question,
@Field("options[]") List<String> options,
@Query("resultMode") Integer resultMode,
@Query("maxVotes") Integer maxVotes);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<PollOverall> votePoll(@Header("Authorization") String authorization, Observable<PollOverall> votePoll(@Header("Authorization") String authorization, @Url String url, @Field("optionIds[]") List<Integer> optionIds);
@Url String url,
@Field("optionIds[]") List<Integer> optionIds);
@DELETE @DELETE
Observable<PollOverall> closePoll(@Header("Authorization") String authorization, Observable<PollOverall> closePoll(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<GenericOverall> setMessageExpiration(@Header("Authorization") String authorization, Observable<GenericOverall> setMessageExpiration(@Header("Authorization") String authorization, @Url String url, @Field("seconds") Integer seconds);
@Url String url,
@Field("seconds") Integer seconds);
@GET @GET
Observable<OpenGraphOverall> getOpenGraph(@Header("Authorization") String authorization, Observable<OpenGraphOverall> getOpenGraph(@Header("Authorization") String authorization, @Url String url, @Query("reference") String urlToFindPreviewFor);
@Url String url,
@Query("reference") String urlToFindPreviewFor);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<GenericOverall> startRecording(@Header("Authorization") String authorization, Observable<GenericOverall> startRecording(@Header("Authorization") String authorization, @Url String url, @Field("status") Integer status);
@Url String url,
@Field("status") Integer status);
@DELETE @DELETE
Observable<GenericOverall> stopRecording(@Header("Authorization") String authorization, Observable<GenericOverall> stopRecording(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@POST @POST
Observable<GenericOverall> requestAssistance(@Header("Authorization") String authorization, Observable<GenericOverall> requestAssistance(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@DELETE @DELETE
Observable<GenericOverall> withdrawRequestAssistance(@Header("Authorization") String authorization, Observable<GenericOverall> withdrawRequestAssistance(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@POST @POST
Observable<GenericOverall> sendCommonPostRequest(@Header("Authorization") String authorization, @Url String url); Observable<GenericOverall> sendCommonPostRequest(@Header("Authorization") String authorization, @Url String url);
@ -671,33 +524,22 @@ public interface NcApi {
@POST @POST
Observable<TranslationsOverall> translateMessage(@Header("Authorization") String authorization, Observable<TranslationsOverall> translateMessage(@Header("Authorization") String authorization, @Url String url, @Query("text") String text, @Query("toLanguage") String toLanguage, @Nullable @Query("fromLanguage") String fromLanguage);
@Url String url,
@Query("text") String text,
@Query("toLanguage") String toLanguage,
@Nullable @Query("fromLanguage") String fromLanguage);
@GET @GET
Observable<LanguagesOverall> getLanguages(@Header("Authorization") String authorization, Observable<LanguagesOverall> getLanguages(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@GET @GET
Observable<ReminderOverall> getReminder(@Header("Authorization") String authorization, Observable<ReminderOverall> getReminder(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@DELETE @DELETE
Observable<GenericOverall> deleteReminder(@Header("Authorization") String authorization, Observable<GenericOverall> deleteReminder(@Header("Authorization") String authorization, @Url String url);
@Url String url);
@FormUrlEncoded @FormUrlEncoded
@POST @POST
Observable<ReminderOverall> setReminder(@Header("Authorization") String authorization, Observable<ReminderOverall> setReminder(@Header("Authorization") String authorization, @Url String url, @Field("timestamp") int timestamp);
@Url String url,
@Field("timestamp") int timestamp);
@FormUrlEncoded @FormUrlEncoded
@PUT @PUT
Observable<GenericOverall> setRecordingConsent(@Header("Authorization") String authorization, Observable<GenericOverall> setRecordingConsent(@Header("Authorization") String authorization, @Url String url, @Field("recordingConsent") int recordingConsent);
@Url String url,
@Field("recordingConsent") int recordingConsent);
} }

View File

@ -4534,6 +4534,9 @@ class ChatActivity :
startActivity(shareIntent) startActivity(shareIntent)
} }
fun editMessage(message: ChatMessage) {
}
companion object { companion object {
private val TAG = ChatActivity::class.simpleName private val TAG = ChatActivity::class.simpleName
private const val CONTENT_TYPE_CALL_STARTED: Byte = 1 private const val CONTENT_TYPE_CALL_STARTED: Byte = 1

View File

@ -108,6 +108,7 @@ class MessageActionsDialog(
hasUserActorId(message) && hasUserActorId(message) &&
currentConversation?.type != ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL currentConversation?.type != ConversationType.ROOM_TYPE_ONE_TO_ONE_CALL
) )
initMenuEditMessage(CapabilitiesUtilNew.hasSpreedFeatureCapability(user, "edit-messages"))
initMenuDeleteMessage(showMessageDeletionButton) initMenuDeleteMessage(showMessageDeletionButton)
initMenuForwardMessage( initMenuForwardMessage(
ChatMessage.MessageType.REGULAR_TEXT_MESSAGE == message.getCalculateMessageType() && ChatMessage.MessageType.REGULAR_TEXT_MESSAGE == message.getCalculateMessageType() &&
@ -293,6 +294,15 @@ class MessageActionsDialog(
dialogMessageActionsBinding.menuDeleteMessage.visibility = getVisibility(visible) dialogMessageActionsBinding.menuDeleteMessage.visibility = getVisibility(visible)
} }
private fun initMenuEditMessage(visible: Boolean) {
dialogMessageActionsBinding.menuEditMessage.setOnClickListener {
chatActivity.editMessage(message)
dismiss()
}
dialogMessageActionsBinding.menuEditMessage.visibility = getVisibility(visible)
}
private fun initMenuReplyPrivately(visible: Boolean) { private fun initMenuReplyPrivately(visible: Boolean) {
if (visible) { if (visible) {
dialogMessageActionsBinding.menuReplyPrivately.setOnClickListener { dialogMessageActionsBinding.menuReplyPrivately.setOnClickListener {

View File

@ -160,6 +160,40 @@
</LinearLayout> </LinearLayout>
<LinearLayout
android:id="@+id/menu_edit_message"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_sheet_item_height"
android:background="?android:attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
tools:ignore="UseCompoundDrawables">
<ImageView
android:id="@+id/menu_icon_edit_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/edit_message_icon_description"
android:paddingStart="@dimen/standard_padding"
android:paddingEnd="@dimen/zero"
android:src="@drawable/ic_edit_24"
app:tint="@color/high_emphasis_menu_icon" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/menu_text_edit_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="start|center_vertical"
android:paddingStart="@dimen/standard_double_padding"
android:paddingEnd="@dimen/standard_padding"
android:text="@string/nc_edit_message"
android:textAlignment="viewStart"
android:textColor="@color/high_emphasis_text"
android:textSize="@dimen/bottom_sheet_text_size" />
</LinearLayout>
<LinearLayout <LinearLayout
android:id="@+id/menu_reply_privately" android:id="@+id/menu_reply_privately"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -786,4 +786,6 @@ How to translate with transifex:
<string name="nc_caption">Caption</string> <string name="nc_caption">Caption</string>
<string name="languages_error_title">Retrieval failed</string> <string name="languages_error_title">Retrieval failed</string>
<string name="languages_error_message">Languages could not be retrieved</string> <string name="languages_error_message">Languages could not be retrieved</string>
<string name="edit_message_icon_description">Edit Message Icon</string>
<string name="nc_edit_message">Edit message</string>
</resources> </resources>