mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-30 08:12:40 +00:00
Merge pull request #2407 from vector-im/riot_2404_1
RoomInputToolbarView: Turn the boolean replyToEnabled into an enum: sendMode
This commit is contained in:
commit
7d92cd1d9c
6 changed files with 97 additions and 21 deletions
|
@ -1,3 +1,9 @@
|
|||
Changes in 0.8.6 (2019-xx-xx)
|
||||
===============================================
|
||||
|
||||
Improvements:
|
||||
* RoomVC: When replying, use a "Reply" button instead of "Send".
|
||||
|
||||
Changes in 0.8.5 (2019-xx-xx)
|
||||
===============================================
|
||||
|
||||
|
|
|
@ -282,6 +282,7 @@
|
|||
"room_event_failed_to_send" = "Failed to send";
|
||||
"room_action_send_photo_or_video" = "Send photo or video";
|
||||
"room_action_send_sticker" = "Send sticker";
|
||||
"room_action_reply" = "Reply";
|
||||
"room_replacement_information" = "This room has been replaced and is no longer active.";
|
||||
"room_replacement_link" = "The conversation continues here.";
|
||||
"room_predecessor_information" = "This room is a continuation of another conversation.";
|
||||
|
|
|
@ -1338,6 +1338,10 @@ internal enum VectorL10n {
|
|||
internal static var retry: String {
|
||||
return VectorL10n.tr("Vector", "retry")
|
||||
}
|
||||
/// Reply
|
||||
internal static var roomActionReply: String {
|
||||
return VectorL10n.tr("Vector", "room_action_reply")
|
||||
}
|
||||
/// Send photo or video
|
||||
internal static var roomActionSendPhotoOrVideo: String {
|
||||
return VectorL10n.tr("Vector", "room_action_send_photo_or_video")
|
||||
|
|
|
@ -206,9 +206,6 @@
|
|||
// Observe kThemeServiceDidChangeThemeNotification to handle user interface theme change.
|
||||
id kThemeServiceDidChangeThemeNotificationObserver;
|
||||
|
||||
// Tell whether the input text field is in send reply mode. If true typed message will be sent to highlighted event.
|
||||
BOOL isInReplyMode;
|
||||
|
||||
// Listener for `m.room.tombstone` event type
|
||||
id tombstoneEventNotificationsListener;
|
||||
|
||||
|
@ -1098,7 +1095,7 @@
|
|||
|
||||
- (void)sendTextMessage:(NSString*)msgTxt
|
||||
{
|
||||
if (isInReplyMode && customizedRoomDataSource.selectedEventId)
|
||||
if (self.inputToolBarSendMode == RoomInputToolbarViewSendModeReply && customizedRoomDataSource.selectedEventId)
|
||||
{
|
||||
[self.roomDataSource sendReplyToEventWithId:customizedRoomDataSource.selectedEventId withTextMessage:msgTxt success:nil failure:^(NSError *error) {
|
||||
// Just log the error. The message will be displayed in red in the room history
|
||||
|
@ -1440,17 +1437,27 @@
|
|||
}
|
||||
}
|
||||
|
||||
- (void)enableReplyMode:(BOOL)enable
|
||||
- (void)setInputToolBarSendMode:(RoomInputToolbarViewSendMode)sendMode
|
||||
{
|
||||
isInReplyMode = enable;
|
||||
|
||||
if (self.inputToolbarView && [self.inputToolbarView isKindOfClass:[RoomInputToolbarView class]])
|
||||
{
|
||||
RoomInputToolbarView *roomInputToolbarView = (RoomInputToolbarView*)self.inputToolbarView;
|
||||
roomInputToolbarView.replyToEnabled = enable;
|
||||
roomInputToolbarView.sendMode = sendMode;
|
||||
}
|
||||
}
|
||||
|
||||
- (RoomInputToolbarViewSendMode)inputToolBarSendMode
|
||||
{
|
||||
RoomInputToolbarViewSendMode sendMode = RoomInputToolbarViewSendModeSend;
|
||||
if (self.inputToolbarView && [self.inputToolbarView isKindOfClass:[RoomInputToolbarView class]])
|
||||
{
|
||||
RoomInputToolbarView *roomInputToolbarView = (RoomInputToolbarView*)self.inputToolbarView;
|
||||
sendMode = roomInputToolbarView.sendMode;
|
||||
}
|
||||
|
||||
return sendMode;
|
||||
}
|
||||
|
||||
- (void)onSwipeGesture:(UISwipeGestureRecognizer*)swipeGestureRecognizer
|
||||
{
|
||||
UIView *view = swipeGestureRecognizer.view;
|
||||
|
@ -2871,16 +2878,16 @@
|
|||
|
||||
- (void)selectEventWithId:(NSString*)eventId
|
||||
{
|
||||
BOOL shouldEnableReplyMode = [self.roomDataSource canReplyToEventWithId:eventId];;
|
||||
|
||||
[self enableReplyMode:shouldEnableReplyMode];
|
||||
|
||||
BOOL shouldEnableReplyMode = [self.roomDataSource canReplyToEventWithId:eventId];
|
||||
|
||||
[self setInputToolBarSendMode: shouldEnableReplyMode ? RoomInputToolbarViewSendModeReply : RoomInputToolbarViewSendModeSend];
|
||||
|
||||
customizedRoomDataSource.selectedEventId = eventId;
|
||||
}
|
||||
|
||||
- (void)cancelEventSelection
|
||||
{
|
||||
[self enableReplyMode:NO];
|
||||
[self setInputToolBarSendMode:RoomInputToolbarViewSendModeSend];
|
||||
|
||||
if (currentAlert)
|
||||
{
|
||||
|
|
|
@ -18,6 +18,16 @@
|
|||
|
||||
#import "MediaPickerViewController.h"
|
||||
|
||||
/**
|
||||
Destination of the message in the composer
|
||||
*/
|
||||
typedef enum : NSUInteger
|
||||
{
|
||||
RoomInputToolbarViewSendModeSend,
|
||||
RoomInputToolbarViewSendModeReply,
|
||||
} RoomInputToolbarViewSendMode;
|
||||
|
||||
|
||||
@protocol RoomInputToolbarViewDelegate <MXKRoomInputToolbarViewDelegate>
|
||||
|
||||
/**
|
||||
|
@ -70,9 +80,9 @@
|
|||
@property (nonatomic) BOOL isEncryptionEnabled;
|
||||
|
||||
/**
|
||||
Tell whether the input text will be a reply to a message.
|
||||
Destination of the message in the composer.
|
||||
*/
|
||||
@property (nonatomic, getter=isReplyToEnabled) BOOL replyToEnabled;
|
||||
@property (nonatomic) RoomInputToolbarViewSendMode sendMode;
|
||||
|
||||
/**
|
||||
Tell whether a call is active.
|
||||
|
|
|
@ -69,6 +69,7 @@
|
|||
[super awakeFromNib];
|
||||
|
||||
_supportCallOption = YES;
|
||||
_sendMode = RoomInputToolbarViewSendModeSend;
|
||||
|
||||
self.rightInputToolbarButton.hidden = YES;
|
||||
|
||||
|
@ -154,11 +155,31 @@
|
|||
self.placeholder = placeholder;
|
||||
}
|
||||
|
||||
- (void)setReplyToEnabled:(BOOL)isReplyToEnabled
|
||||
- (void)setSendMode:(RoomInputToolbarViewSendMode)sendMode
|
||||
{
|
||||
_replyToEnabled = isReplyToEnabled;
|
||||
|
||||
_sendMode = sendMode;
|
||||
|
||||
[self updatePlaceholder];
|
||||
[self updateToolbarButtonLabel];
|
||||
}
|
||||
|
||||
- (void)updateToolbarButtonLabel
|
||||
{
|
||||
NSString *title;
|
||||
|
||||
switch (_sendMode)
|
||||
{
|
||||
case RoomInputToolbarViewSendModeReply:
|
||||
title = NSLocalizedStringFromTable(@"room_action_reply", @"Vector", nil);
|
||||
break;
|
||||
|
||||
default:
|
||||
title = [NSBundle mxk_localizedStringForKey:@"send"];
|
||||
break;
|
||||
}
|
||||
|
||||
[self.rightInputToolbarButton setTitle:title forState:UIControlStateNormal];
|
||||
[self.rightInputToolbarButton setTitle:title forState:UIControlStateHighlighted];
|
||||
}
|
||||
|
||||
- (void)updatePlaceholder
|
||||
|
@ -172,17 +193,44 @@
|
|||
|
||||
if (!shouldDisplayLargePlaceholder)
|
||||
{
|
||||
placeholder = _replyToEnabled ? NSLocalizedStringFromTable(@"room_message_reply_to_short_placeholder", @"Vector", nil) : NSLocalizedStringFromTable(@"room_message_short_placeholder", @"Vector", nil);
|
||||
switch (_sendMode)
|
||||
{
|
||||
case RoomInputToolbarViewSendModeReply:
|
||||
placeholder = NSLocalizedStringFromTable(@"room_message_reply_to_short_placeholder", @"Vector", nil);
|
||||
break;
|
||||
|
||||
default:
|
||||
placeholder = NSLocalizedStringFromTable(@"room_message_short_placeholder", @"Vector", nil);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_isEncryptionEnabled)
|
||||
{
|
||||
placeholder = _replyToEnabled ? NSLocalizedStringFromTable(@"encrypted_room_message_reply_to_placeholder", @"Vector", nil) : NSLocalizedStringFromTable(@"encrypted_room_message_placeholder", @"Vector", nil);
|
||||
switch (_sendMode)
|
||||
{
|
||||
case RoomInputToolbarViewSendModeReply:
|
||||
placeholder = NSLocalizedStringFromTable(@"encrypted_room_message_reply_to_placeholder", @"Vector", nil);
|
||||
break;
|
||||
|
||||
default:
|
||||
placeholder = NSLocalizedStringFromTable(@"encrypted_room_message_placeholder", @"Vector", nil);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
placeholder = _replyToEnabled ? NSLocalizedStringFromTable(@"room_message_reply_to_placeholder", @"Vector", nil) : NSLocalizedStringFromTable(@"room_message_placeholder", @"Vector", nil);
|
||||
switch (_sendMode)
|
||||
{
|
||||
case RoomInputToolbarViewSendModeReply:
|
||||
placeholder = NSLocalizedStringFromTable(@"room_message_reply_to_placeholder", @"Vector", nil);
|
||||
break;
|
||||
|
||||
default:
|
||||
placeholder = NSLocalizedStringFromTable(@"room_message_placeholder", @"Vector", nil);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue