Skip to content

Commit b8d34b6

Browse files
committed
add isMaxTimeStop to avoid send the message twice both on max time exceeded and hold down button triggering touchupinside event
1 parent 1f23bc0 commit b8d34b6

1 file changed

Lines changed: 19 additions & 1 deletion

File tree

MessageDisplayKit/Classes/Controllers/XHMessageTableViewController/XHMessageTableViewController.m

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ @interface XHMessageTableViewController ()
5353
*/
5454
@property (nonatomic, strong) XHVoiceRecordHelper *voiceRecordHelper;
5555

56+
/**
57+
* 判断是不是超出了录音最大时长
58+
*/
59+
@property (nonatomic) BOOL isMaxTimeStop;
60+
5661
#pragma mark - DataSource Change
5762
/**
5863
* 改变数据源需要的子线程
@@ -369,10 +374,19 @@ - (XHLocationHelper *)locationHelper {
369374

370375
- (XHVoiceRecordHelper *)voiceRecordHelper {
371376
if (!_voiceRecordHelper) {
377+
_isMaxTimeStop = NO;
378+
372379
WEAKSELF
373380
_voiceRecordHelper = [[XHVoiceRecordHelper alloc] init];
374381
_voiceRecordHelper.maxTimeStopRecorderCompletion = ^{
375382
DLog(@"已经达到最大限制时间了,进入下一步的提示");
383+
384+
// Unselect and unhilight the hold down button, and set isMaxTimeStop to YES.
385+
UIButton *holdDown = weakSelf.messageInputView.holdDownButton;
386+
holdDown.selected = NO;
387+
holdDown.highlighted = NO;
388+
weakSelf.isMaxTimeStop = YES;
389+
376390
[weakSelf finishRecorded];
377391
};
378392
_voiceRecordHelper.peakPowerForChannel = ^(float peakPowerForChannel) {
@@ -1018,7 +1032,11 @@ - (void)didCancelRecordingVoiceAction {
10181032

10191033
- (void)didFinishRecoingVoiceAction {
10201034
DLog(@"didFinishRecoingVoice");
1021-
[self finishRecorded];
1035+
if (self.isMaxTimeStop == NO) {
1036+
[self finishRecorded];
1037+
} else {
1038+
self.isMaxTimeStop = NO;
1039+
}
10221040
}
10231041

10241042
- (void)didDragOutsideAction {

0 commit comments

Comments
 (0)