/* * Copyright (c) 2010-2019 Belledonne Communications SARL. * * This file is part of linphone-iphone * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #import #import #import #import "UIToggleButton.h" #import "UICompositeView.h" #import "ChatConversationTableView.h" #import "ImagePickerView.h" #import "OrderedDictionary.h" #import "UIRoundedImageView.h" #import "UIBackToCallButton.h" #import "Utils/HPGrowingTextView/HPGrowingTextView.h" #import "UIImageViewDeletable.h" #import "UIConfirmationDialog.h" #include "linphone/linphonecore.h" //Quicklook Preview Item @interface PreviewItem : NSObject @property(readonly, nonatomic) NSURL *previewItemURL; @property(readonly, nonatomic) NSString *previewItemTitle; @end //QuickLook Datasource for rending PDF docs @interface FileDataSource : NSObject @property (strong, nonatomic) PreviewItem *item; @end @interface ChatConversationView : TPMultiLayoutViewController { OrderedDictionary *imageQualities; BOOL scrollOnGrowingEnabled; BOOL composingVisible; UIConfirmationDialog *securityDialog; UIRefreshControl *refreshControl; } @property(nonatomic) LinphoneChatRoom *chatRoom; @property(nonatomic) LinphoneChatRoomCbs *chatRoomCbs; @property(nonatomic) Boolean markAsRead; @property (strong, nonatomic) FileDataSource *FileDataSource; @property(weak, nonatomic) IBOutlet UIIconButton *backButton; @property(nonatomic, strong) IBOutlet ChatConversationTableView *tableController; @property(weak, nonatomic) IBOutlet HPGrowingTextView *messageField; @property(weak, nonatomic) IBOutlet UIView *topBar; @property(nonatomic, strong) IBOutlet UIButton *sendButton; @property(nonatomic, strong) IBOutlet UILabel *addressLabel; @property(nonatomic, strong) IBOutlet UIView *chatView; @property(nonatomic, strong) IBOutlet UIView *messageView; @property(nonatomic, strong) IBOutlet UITapGestureRecognizer *listTapGestureRecognizer; @property(nonatomic, strong) IBOutlet UISwipeGestureRecognizer *listSwipeGestureRecognizer; @property(strong, nonatomic) IBOutlet UILabel *composeLabel; @property(strong, nonatomic) IBOutlet UIView *composeIndicatorView; @property(nonatomic, strong) IBOutlet UIButton *pictureButton; @property(weak, nonatomic) IBOutlet UIIconButton *callButton; @property(weak, nonatomic) IBOutlet UIBackToCallButton *backToCallButton; @property (weak, nonatomic) IBOutlet UIIconButton *infoButton; @property (weak, nonatomic) IBOutlet UILabel *particpantsLabel; //@property (nonatomic, strong) UIDocumentInteractionController *documentInteractionController; @property NSMutableArray *imagesArray; @property NSMutableArray *assetIdsArray; @property NSMutableArray *qualitySettingsArray; @property (weak, nonatomic) IBOutlet UICollectionView *imagesCollectionView; @property (weak, nonatomic) IBOutlet UIView *imagesView; @property (weak, nonatomic) IBOutlet UIButton *encryptedButton; + (void)markAsRead:(LinphoneChatRoom *)chatRoom; + (void)autoDownload:(LinphoneChatMessage *)message; - (void)configureForRoom:(BOOL)editing; - (IBAction)onBackClick:(id)event; - (IBAction)onEditClick:(id)event; - (IBAction)onMessageChange:(id)sender; - (IBAction)onSendClick:(id)event; - (IBAction)onPictureClick:(id)event; - (IBAction)onListTap:(id)sender; - (IBAction)onCallClick:(id)sender; - (IBAction)onDeleteClick:(id)sender; - (IBAction)onEditionChangeClick:(id)sender; - (IBAction)onEncryptedDevicesClick:(id)sender; - (void)update; - (void)openFileWithURL:(NSURL *)url; - (void)clearMessageView; - (void)configureMessageField; - (void)showFileDownloadError; - (NSURL *)getICloudFileUrl:(NSString *)name; - (BOOL)writeFileInICloud:(NSData *)data fileURL:(NSURL *)fileURL; @end