Files
2026-07-13 12:35:01 +08:00

102 lines
4.0 KiB
Objective-C

//
// TLChatViewController+Delegate.m
// TLChat
//
// Created by 李伯坤 on 16/3/17.
// Copyright © 2016年 李伯坤. All rights reserved.
//
#import "TLChatViewController+Delegate.h"
#import "TLExpressionViewController.h"
#import "TLMyExpressionViewController.h"
#import "TLUserDetailViewController.h"
#import <MWPhotoBrowser/MWPhotoBrowser.h>
#import "NSFileManager+TLChat.h"
@interface TLChatViewController ()
@end
@implementation TLChatViewController (Delegate)
#pragma mark - Delegate -
//MARK: TLMoreKeyboardDelegate
- (void)moreKeyboard:(id)keyboard didSelectedFunctionItem:(TLMoreKeyboardItem *)funcItem
{
if (funcItem.type == TLMoreKeyboardItemTypeCamera || funcItem.type == TLMoreKeyboardItemTypeImage) {
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
if (funcItem.type == TLMoreKeyboardItemTypeCamera) {
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
[imagePickerController setSourceType:UIImagePickerControllerSourceTypeCamera];
}
else {
[TLUIUtility showAlertWithTitle:@"错误" message:@"相机初始化失败"];
return;
}
}
else {
[imagePickerController setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
}
[self presentViewController:imagePickerController animated:YES completion:nil];
__weak typeof(self) weakSelf = self;
[imagePickerController.rac_imageSelectedSignal subscribeNext:^(id x) {
[imagePickerController dismissViewControllerAnimated:YES completion:^{
UIImage *image = [x objectForKey:UIImagePickerControllerOriginalImage];
[weakSelf sendImageMessage:image];
}];
} completed:^{
[imagePickerController dismissViewControllerAnimated:YES completion:nil];
}];
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:[NSString stringWithFormat:@"选中”%@“ 按钮", funcItem.title] delegate:nil cancelButtonTitle:@"确定" otherButtonTitles: nil];
[alert show];
}
}
//MARK: TLEmojiKeyboardDelegate
- (void)emojiKeyboardEmojiEditButtonDown
{
TLExpressionViewController *expressionVC = [[TLExpressionViewController alloc] init];
UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:expressionVC];
[self presentViewController:navC animated:YES completion:nil];
}
- (void)emojiKeyboardMyEmojiEditButtonDown
{
TLMyExpressionViewController *myExpressionVC = [[TLMyExpressionViewController alloc] init];
UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:myExpressionVC];
[self presentViewController:navC animated:YES completion:nil];
}
//MARK: TLChatViewControllerProxy
- (void)didClickedUserAvatar:(TLUser *)user
{
TLUserDetailViewController *detailVC = [[TLUserDetailViewController alloc] initWithUserModel:user];
PushVC(detailVC);
}
- (void)didClickedImageMessages:(NSArray *)imageMessages atIndex:(NSInteger)index
{
NSMutableArray *data = [[NSMutableArray alloc] init];
for (TLMessage *message in imageMessages) {
NSURL *url;
if ([(TLImageMessage *)message imagePath]) {
NSString *imagePath = [NSFileManager pathUserChatImage:[(TLImageMessage *)message imagePath]];
url = [NSURL fileURLWithPath:imagePath];
}
else {
url = TLURL([(TLImageMessage *)message imageURL]);
}
MWPhoto *photo = [MWPhoto photoWithURL:url];
[data addObject:photo];
}
MWPhotoBrowser *browser = [[MWPhotoBrowser alloc] initWithPhotos:data];
[browser setDisplayNavArrows:YES];
[browser setCurrentPhotoIndex:index];
UINavigationController *broserNavC = [[UINavigationController alloc] initWithRootViewController:browser];
[self presentViewController:broserNavC animated:NO completion:nil];
}
@end