diff --git a/Classes/LinphoneUI/UIRecordingCell.m b/Classes/LinphoneUI/UIRecordingCell.m index 534479e93..58475a8d2 100644 --- a/Classes/LinphoneUI/UIRecordingCell.m +++ b/Classes/LinphoneUI/UIRecordingCell.m @@ -84,21 +84,22 @@ static UILinphoneAudioPlayer *player; [self setFrame:frame]; } -- (void)setSelected:(BOOL)selected { +-(void)setSelected:(BOOL)selected animated:(BOOL)animated{ + [super setSelected:selected animated:animated]; if (!selected) return; if (!player) player = [UILinphoneAudioPlayer audioPlayerWithFilePath:[self recording]]; else [player setFile:[self recording]]; - - UILinphoneAudioPlayer *p = player; - [p.view removeFromSuperview]; - [self addSubview:p.view]; - [self bringSubviewToFront:p.view]; - p.view.frame = _playerView.frame; - p.view.bounds = _playerView.bounds; + if ([player isOpened]) + [player close]; + [player.view removeFromSuperview]; + [self addSubview:player.view]; + [self bringSubviewToFront:player.view]; + player.view.frame = _playerView.frame; + player.view.bounds = _playerView.bounds; + [player open]; } - @end diff --git a/Classes/Utils/Utils.h b/Classes/Utils/Utils.h index 1f03d9fb4..b3cca7947 100644 --- a/Classes/Utils/Utils.h +++ b/Classes/Utils/Utils.h @@ -62,6 +62,12 @@ typedef enum { @end +@interface UIImage (systemIcons) + ++ (UIImage *)imageFromSystemBarButton:(UIBarButtonSystemItem)systemItem :(UIColor *) color; + +@end + @interface NSString (linphoneExt) - (NSString *)md5; diff --git a/Classes/Utils/Utils.m b/Classes/Utils/Utils.m index 039f64248..c757eb4a2 100644 --- a/Classes/Utils/Utils.m +++ b/Classes/Utils/Utils.m @@ -569,6 +569,29 @@ @end +@implementation UIImage (systemIcons) + ++ (UIImage *)imageFromSystemBarButton:(UIBarButtonSystemItem)systemItem :(UIColor *) color { + // thanks to Renetik https://stackoverflow.com/a/49822488 + UIToolbar *bar = UIToolbar.new; + UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:systemItem target:nil action:nil]; + [bar setItems:@[buttonItem] animated:NO]; + [bar snapshotViewAfterScreenUpdates:YES]; + for (UIView *view in [(id) buttonItem view].subviews) + if ([view isKindOfClass:UIButton.class]) { + UIImage *image = [((UIButton *) view).imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; + UIGraphicsBeginImageContextWithOptions(image.size, NO, image.scale); + //[color set]; + [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)]; + image = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return image; + } + return nil; +} + +@end + @implementation NSString (md5) - (NSString *)md5 {