New file |
| | |
| | | /************************************************************ |
| | | * * Hyphenate CONFIDENTIAL |
| | | * __________________ |
| | | * Copyright (C) 2016 Hyphenate Inc. All rights reserved. |
| | | * |
| | | * NOTICE: All information contained herein is, and remains |
| | | * the property of Hyphenate Inc. |
| | | * Dissemination of this information or reproduction of this material |
| | | * is strictly forbidden unless prior written permission is obtained |
| | | * from Hyphenate Inc. |
| | | */ |
| | | |
| | | #import "EaseRecordView.h" |
| | | #import "EMCDDeviceManager.h" |
| | | #import "EaseLocalDefine.h" |
| | | |
| | | @interface EaseRecordView () |
| | | { |
| | | NSTimer *_timer; |
| | | UIImageView *_recordAnimationView; |
| | | UILabel *_textLabel; |
| | | } |
| | | |
| | | @end |
| | | |
| | | @implementation EaseRecordView |
| | | |
| | | + (void)initialize |
| | | { |
| | | // UIAppearance Proxy Defaults |
| | | EaseRecordView *recordView = [self appearance]; |
| | | recordView.voiceMessageAnimationImages = @[@"EaseUIResource.bundle/VoiceSearchFeedback001",@"EaseUIResource.bundle/VoiceSearchFeedback002",@"EaseUIResource.bundle/VoiceSearchFeedback003",@"EaseUIResource.bundle/VoiceSearchFeedback004",@"EaseUIResource.bundle/VoiceSearchFeedback005",@"EaseUIResource.bundle/VoiceSearchFeedback006",@"EaseUIResource.bundle/VoiceSearchFeedback007",@"EaseUIResource.bundle/VoiceSearchFeedback008",@"EaseUIResource.bundle/VoiceSearchFeedback009",@"EaseUIResource.bundle/VoiceSearchFeedback010",@"EaseUIResource.bundle/VoiceSearchFeedback011",@"EaseUIResource.bundle/VoiceSearchFeedback012",@"EaseUIResource.bundle/VoiceSearchFeedback013",@"EaseUIResource.bundle/VoiceSearchFeedback014",@"EaseUIResource.bundle/VoiceSearchFeedback015",@"EaseUIResource.bundle/VoiceSearchFeedback016",@"EaseUIResource.bundle/VoiceSearchFeedback017",@"EaseUIResource.bundle/VoiceSearchFeedback018",@"EaseUIResource.bundle/VoiceSearchFeedback019",@"EaseUIResource.bundle/VoiceSearchFeedback020"]; |
| | | recordView.upCancelText = NSEaseLocalizedString(@"message.toolBar.record.upCancel", @"Fingers up slide, cancel sending"); |
| | | recordView.loosenCancelText = NSEaseLocalizedString(@"message.toolBar.record.loosenCancel", @"loosen the fingers, to cancel sending"); |
| | | } |
| | | |
| | | - (id)initWithFrame:(CGRect)frame |
| | | { |
| | | self = [super initWithFrame:frame]; |
| | | if (self) { |
| | | // Initialization code |
| | | UIView *bgView = [[UIView alloc] initWithFrame:self.bounds]; |
| | | bgView.backgroundColor = [UIColor grayColor]; |
| | | bgView.layer.cornerRadius = 5; |
| | | bgView.layer.masksToBounds = YES; |
| | | bgView.alpha = 0.6; |
| | | [self addSubview:bgView]; |
| | | |
| | | _recordAnimationView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 0, self.bounds.size.width - 20, self.bounds.size.height - 30)]; |
| | | _recordAnimationView.image = [UIImage easeImageNamed:@"EaseUIResource.bundle/VoiceSearchFeedback001"]; |
| | | _recordAnimationView.contentMode = UIViewContentModeScaleAspectFit; |
| | | [self addSubview:_recordAnimationView]; |
| | | |
| | | _textLabel = [[UILabel alloc] initWithFrame:CGRectMake(5, |
| | | self.bounds.size.height - 30, |
| | | self.bounds.size.width - 10, |
| | | 25)]; |
| | | |
| | | _textLabel.textAlignment = NSTextAlignmentCenter; |
| | | _textLabel.backgroundColor = [UIColor clearColor]; |
| | | _textLabel.text = NSEaseLocalizedString(@"message.toolBar.record.upCancel", @"Fingers up slide, cancel sending"); |
| | | [self addSubview:_textLabel]; |
| | | _textLabel.font = [UIFont systemFontOfSize:13]; |
| | | _textLabel.textColor = [UIColor whiteColor]; |
| | | _textLabel.layer.cornerRadius = 5; |
| | | _textLabel.layer.borderColor = [[UIColor redColor] colorWithAlphaComponent:0.5].CGColor; |
| | | _textLabel.layer.masksToBounds = YES; |
| | | } |
| | | return self; |
| | | } |
| | | |
| | | #pragma mark - setter |
| | | - (void)setVoiceMessageAnimationImages:(NSArray *)voiceMessageAnimationImages |
| | | { |
| | | _voiceMessageAnimationImages = voiceMessageAnimationImages; |
| | | } |
| | | |
| | | - (void)setUpCancelText:(NSString *)upCancelText |
| | | { |
| | | _upCancelText = upCancelText; |
| | | _textLabel.text = _upCancelText; |
| | | } |
| | | |
| | | - (void)setLoosenCancelText:(NSString *)loosenCancelText |
| | | { |
| | | _loosenCancelText = loosenCancelText; |
| | | } |
| | | |
| | | -(void)recordButtonTouchDown |
| | | { |
| | | _textLabel.text = _upCancelText; |
| | | _textLabel.backgroundColor = [UIColor clearColor]; |
| | | _timer = [NSTimer scheduledTimerWithTimeInterval:0.05 |
| | | target:self |
| | | selector:@selector(setVoiceImage) |
| | | userInfo:nil |
| | | repeats:YES]; |
| | | |
| | | } |
| | | |
| | | -(void)recordButtonTouchUpInside |
| | | { |
| | | [_timer invalidate]; |
| | | } |
| | | |
| | | -(void)recordButtonTouchUpOutside |
| | | { |
| | | [_timer invalidate]; |
| | | } |
| | | |
| | | -(void)recordButtonDragInside |
| | | { |
| | | _textLabel.text = _upCancelText; |
| | | _textLabel.backgroundColor = [UIColor clearColor]; |
| | | } |
| | | |
| | | -(void)recordButtonDragOutside |
| | | { |
| | | _textLabel.text = _loosenCancelText; |
| | | _textLabel.backgroundColor = [UIColor redColor]; |
| | | } |
| | | |
| | | -(void)setVoiceImage { |
| | | _recordAnimationView.image = [UIImage easeImageNamed:[_voiceMessageAnimationImages objectAtIndex:0]]; |
| | | double voiceSound = 0; |
| | | voiceSound = [[EMCDDeviceManager sharedInstance] emPeekRecorderVoiceMeter]; |
| | | int index = voiceSound*[_voiceMessageAnimationImages count]; |
| | | if (index >= [_voiceMessageAnimationImages count]) { |
| | | _recordAnimationView.image = [UIImage easeImageNamed:[_voiceMessageAnimationImages lastObject]]; |
| | | } else { |
| | | _recordAnimationView.image = [UIImage easeImageNamed:[_voiceMessageAnimationImages objectAtIndex:index]]; |
| | | } |
| | | |
| | | /* |
| | | if (0 < voiceSound <= 0.05) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback001"]]; |
| | | }else if (0.05<voiceSound<=0.10) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback002"]]; |
| | | }else if (0.10<voiceSound<=0.15) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback003"]]; |
| | | }else if (0.15<voiceSound<=0.20) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback004"]]; |
| | | }else if (0.20<voiceSound<=0.25) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback005"]]; |
| | | }else if (0.25<voiceSound<=0.30) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback006"]]; |
| | | }else if (0.30<voiceSound<=0.35) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback007"]]; |
| | | }else if (0.35<voiceSound<=0.40) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback008"]]; |
| | | }else if (0.40<voiceSound<=0.45) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback009"]]; |
| | | }else if (0.45<voiceSound<=0.50) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback010"]]; |
| | | }else if (0.50<voiceSound<=0.55) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback011"]]; |
| | | }else if (0.55<voiceSound<=0.60) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback012"]]; |
| | | }else if (0.60<voiceSound<=0.65) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback013"]]; |
| | | }else if (0.65<voiceSound<=0.70) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback014"]]; |
| | | }else if (0.70<voiceSound<=0.75) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback015"]]; |
| | | }else if (0.75<voiceSound<=0.80) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback016"]]; |
| | | }else if (0.80<voiceSound<=0.85) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback017"]]; |
| | | }else if (0.85<voiceSound<=0.90) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback018"]]; |
| | | }else if (0.90<voiceSound<=0.95) { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback019"]]; |
| | | }else { |
| | | [_recordAnimationView setImage:[UIImage easeImageNamed:@"EaseUIResource.bundle/EaseUIResource.bundle/VoiceSearchFeedback020"]]; |
| | | }*/ |
| | | } |
| | | |
| | | @end |