diff --git a/CHANGES.rst b/CHANGES.rst index 492903ce7..2c72c1345 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,20 @@ +Changes in 0.5.3 (2017-08-25) +=============================================== + +Improvements: + * Upgrade MatrixKit version (v0.6.2). + * Support dark theme (vector-im/riot-meta#22). + * Set the application group identifier to be able to share userDefaults object. + +Bug Fixes: + * SettingsViewController: Release correctly the pushed view controller. + * App have crashed whilst uploading photos (#1445). + * Register for remote notifications only if user provides access to notification feature, thanks to @aramsargsyan (#1467). + * Improvements in notification registration flow, thanks to @aramsargsyan (#1472). + +Translations: + * Enable Russian. + Changes in 0.5.2 (2017-08-01) =============================================== diff --git a/Podfile b/Podfile index ba5a9c5e6..39eeec830 100644 --- a/Podfile +++ b/Podfile @@ -8,7 +8,7 @@ target "Riot" do # Different flavours of pods to MatrixKit # The tagged version on which this version of Riot has been built -pod 'MatrixKit', '0.6.1' +pod 'MatrixKit', '0.6.2' # The lastest release available on the CocoaPods repository #pod 'MatrixKit' @@ -52,8 +52,8 @@ pod 'OLMKit' #pod 'OLMKit', :path => '../olm/OLMKit.podspec' pod 'Realm', '~> 2.8.1' -# The tagged version on which this version of Riot has been built -pod 'MatrixKit', '0.6.1' +# The tagged version on which this version of Riot share extension has been built +pod 'MatrixKit/AppExtension', '0.6.2' # The lastest release available on the CocoaPods repository #pod 'MatrixKit/AppExtension' @@ -70,7 +70,6 @@ pod 'MatrixKit', '0.6.1' # Remove warnings from "bad" pods pod 'OLMKit', :inhibit_warnings => true pod 'cmark', :inhibit_warnings => true -pod 'DTCoreText', :inhibit_warnings => true end diff --git a/Podfile.lock b/Podfile.lock index 3e0d6acf9..7264c3ab8 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -26,6 +26,11 @@ PODS: - DTFoundation/DTAnimatedGIF (~> 1.7.5) - DTFoundation/DTHTMLParser (~> 1.7.5) - DTFoundation/UIKit (~> 1.7.5) + - DTCoreText/Extension (1.6.20): + - DTFoundation/Core (~> 1.7.5) + - DTFoundation/DTAnimatedGIF (~> 1.7.5) + - DTFoundation/DTHTMLParser (~> 1.7.5) + - DTFoundation/UIKit (~> 1.7.5) - DTFoundation/Core (1.7.12) - DTFoundation/DTAnimatedGIF (1.7.12) - DTFoundation/DTHTMLParser (1.7.12): @@ -39,13 +44,27 @@ PODS: - GZIP (1.1.1) - HPGrowingTextView (1.1) - libPhoneNumber-iOS (0.9.10) - - MatrixKit (0.6.1): + - MatrixKit (0.6.2): - cmark (~> 0.24.1) - DTCoreText (~> 1.6.17) - HPGrowingTextView (~> 1.1) - libPhoneNumber-iOS (~> 0.9.10) - - MatrixSDK (= 0.9.1) - - MatrixSDK (0.9.1): + - MatrixKit/Core (= 0.6.2) + - MatrixSDK (= 0.9.2) + - MatrixKit/AppExtension (0.6.2): + - cmark (~> 0.24.1) + - DTCoreText (~> 1.6.17) + - DTCoreText/Extension + - HPGrowingTextView (~> 1.1) + - libPhoneNumber-iOS (~> 0.9.10) + - MatrixSDK (= 0.9.2) + - MatrixKit/Core (0.6.2): + - cmark (~> 0.24.1) + - DTCoreText (~> 1.6.17) + - HPGrowingTextView (~> 1.1) + - libPhoneNumber-iOS (~> 0.9.10) + - MatrixSDK (= 0.9.2) + - MatrixSDK (0.9.2): - AFNetworking (~> 3.1.0) - GZIP (~> 1.1.1) - OLMKit (2.2.2): @@ -63,7 +82,8 @@ DEPENDENCIES: - DTCoreText - GBDeviceInfo (~> 4.3.0) - GoogleAnalytics - - MatrixKit (= 0.6.1) + - MatrixKit (= 0.6.2) + - MatrixKit/AppExtension (= 0.6.2) - OLMKit - Realm (~> 2.8.1) - WebRTC (= 58.17.16937) @@ -78,12 +98,12 @@ SPEC CHECKSUMS: GZIP: f8beb59597f651e6970a45b816508a9c6d700b77 HPGrowingTextView: 88a716d97fb853bcb08a4a08e4727da17efc9b19 libPhoneNumber-iOS: f721ae4d5854bce60934f9fb9b0b28e8e68913cb - MatrixKit: fbf30823fb64604b5f8bb8ef8cbb8d949189525b - MatrixSDK: c5d9b84da5e32b305c5def410f239a7d94c72105 + MatrixKit: 8552ee8abf935b08ae08fc0000f53ab3218ea5a0 + MatrixSDK: 0499dd3dbe293ce1e743a7cda181dcf50eda7f10 OLMKit: b9d8c0ffee9ea8c45bc0aaa9afb47f93fba7efbd Realm: 3601ef091c8c499a31101d8563b991e75546cdce WebRTC: 1e9a85bf75509eec44be6478c64e9de65ac82332 -PODFILE CHECKSUM: 76ecd40dee0ff2c3007141b353b385be7e863d6c +PODFILE CHECKSUM: db0ae7d6037f7768feb2adf17119ba69d9e1a77b -COCOAPODS: 1.2.1 +COCOAPODS: 1.3.1 diff --git a/Riot.xcodeproj/project.pbxproj b/Riot.xcodeproj/project.pbxproj index dfe25f392..c1fa57c97 100644 --- a/Riot.xcodeproj/project.pbxproj +++ b/Riot.xcodeproj/project.pbxproj @@ -2848,68 +2848,68 @@ ); inputPaths = ( "${SRCROOT}/Pods/Target Support Files/Pods-Riot/Pods-Riot-resources.sh", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKAccountDetailsViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKAttachmentsViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKAuthenticationViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKCallViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKContactDetailsViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKContactListViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKCountryPickerViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKLanguagePickerViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKRecentListViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKRoomMemberDetailsViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKRoomMemberListViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKRoomSettingsViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKRoomViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Controllers/MXKSearchViewController.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/Account/MXKAccountTableViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/Authentication/MXKAuthInputsEmailCodeBasedView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/Authentication/MXKAuthInputsPasswordBasedView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/Contact/MXKContactTableCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/DeviceView/MXKDeviceView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/EncryptionInfoView/MXKEncryptionInfoView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKCollectionViewCell/MXKMediaCollectionViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKEventDetailsView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKPieChartHUD.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKRoomCreationView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithButton.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndButton.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndImageView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndMXKImageView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndSlider.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndSubLabel.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndSwitch.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndTextField.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelTextFieldAndButton.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithPicker.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithSearchBar.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithTextFieldAndButton.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithTextView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/PushRule/MXKPushRuleCreationTableViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/PushRule/MXKPushRuleTableViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/ReadReceipts/MXKReadReceiptTableViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomBubbleList/MXKRoomEmptyBubbleTableViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomBubbleList/MXKRoomIncomingAttachmentBubbleCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomBubbleList/MXKRoomIncomingAttachmentWithoutSenderInfoBubbleCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomBubbleList/MXKRoomIncomingTextMsgBubbleCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomBubbleList/MXKRoomIncomingTextMsgWithoutSenderInfoBubbleCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomBubbleList/MXKRoomIOSOutgoingBubbleTableViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomBubbleList/MXKRoomOutgoingAttachmentBubbleCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomBubbleList/MXKRoomOutgoingAttachmentWithoutSenderInfoBubbleCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomBubbleList/MXKRoomOutgoingTextMsgBubbleCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomBubbleList/MXKRoomOutgoingTextMsgWithoutSenderInfoBubbleCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomInputToolbar/MXKRoomInputToolbarView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomInputToolbar/MXKRoomInputToolbarViewWithHPGrowingText.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomInputToolbar/MXKRoomInputToolbarViewWithSimpleTextView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomList/MXKInterleavedRecentTableViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomList/MXKPublicRoomTableViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomList/MXKRecentTableViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomMemberList/MXKRoomMemberTableViewCell.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomTitle/MXKRoomTitleView.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/RoomTitle/MXKRoomTitleViewWithTopic.xib", - "${PODS_ROOT}/../../matrix-ios-kit/MatrixKit/Views/Search/MXKSearchTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKAccountDetailsViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKAttachmentsViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKAuthenticationViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKCallViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKContactDetailsViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKContactListViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKCountryPickerViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKLanguagePickerViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKRecentListViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKRoomMemberDetailsViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKRoomMemberListViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKRoomSettingsViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKRoomViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Controllers/MXKSearchViewController.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/Account/MXKAccountTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/Authentication/MXKAuthInputsEmailCodeBasedView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/Authentication/MXKAuthInputsPasswordBasedView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/Contact/MXKContactTableCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/DeviceView/MXKDeviceView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/EncryptionInfoView/MXKEncryptionInfoView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKCollectionViewCell/MXKMediaCollectionViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKEventDetailsView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKPieChartHUD.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKRoomCreationView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithButton.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndButton.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndImageView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndMXKImageView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndSlider.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndSubLabel.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndSwitch.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelAndTextField.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithLabelTextFieldAndButton.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithPicker.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithSearchBar.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithTextFieldAndButton.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/MXKTableViewCell/MXKTableViewCellWithTextView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/PushRule/MXKPushRuleCreationTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/PushRule/MXKPushRuleTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/ReadReceipts/MXKReadReceiptTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomBubbleList/MXKRoomEmptyBubbleTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomBubbleList/MXKRoomIncomingAttachmentBubbleCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomBubbleList/MXKRoomIncomingAttachmentWithoutSenderInfoBubbleCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomBubbleList/MXKRoomIncomingTextMsgBubbleCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomBubbleList/MXKRoomIncomingTextMsgWithoutSenderInfoBubbleCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomBubbleList/MXKRoomIOSOutgoingBubbleTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomBubbleList/MXKRoomOutgoingAttachmentBubbleCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomBubbleList/MXKRoomOutgoingAttachmentWithoutSenderInfoBubbleCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomBubbleList/MXKRoomOutgoingTextMsgBubbleCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomBubbleList/MXKRoomOutgoingTextMsgWithoutSenderInfoBubbleCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomInputToolbar/MXKRoomInputToolbarView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomInputToolbar/MXKRoomInputToolbarViewWithHPGrowingText.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomInputToolbar/MXKRoomInputToolbarViewWithSimpleTextView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomList/MXKInterleavedRecentTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomList/MXKPublicRoomTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomList/MXKRecentTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomMemberList/MXKRoomMemberTableViewCell.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomTitle/MXKRoomTitleView.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/RoomTitle/MXKRoomTitleViewWithTopic.xib", + "${PODS_ROOT}/MatrixKit/MatrixKit/Views/Search/MXKSearchTableViewCell.xib", "$PODS_CONFIGURATION_BUILD_DIR/MatrixKit/MatrixKit.bundle", - "${PODS_ROOT}/../../matrix-ios-sdk/MatrixSDK/Data/Store/MXCoreDataStore/MXCoreDataStore.xcdatamodeld", + "${PODS_ROOT}/MatrixSDK/MatrixSDK/Data/Store/MXCoreDataStore/MXCoreDataStore.xcdatamodeld", ); name = "[CP] Copy Pods Resources"; outputPaths = ( @@ -2945,7 +2945,7 @@ ); inputPaths = ( "${SRCROOT}/Pods/Target Support Files/Pods-RiotShareExtension/Pods-RiotShareExtension-resources.sh", - "${PODS_ROOT}/../../matrix-ios-sdk/MatrixSDK/Data/Store/MXCoreDataStore/MXCoreDataStore.xcdatamodeld", + "${PODS_ROOT}/MatrixSDK/MatrixSDK/Data/Store/MXCoreDataStore/MXCoreDataStore.xcdatamodeld", ); name = "[CP] Copy Pods Resources"; outputPaths = ( diff --git a/Riot/Categories/UIViewController+RiotSearch.m b/Riot/Categories/UIViewController+RiotSearch.m index 7f53a9556..9db702f76 100644 --- a/Riot/Categories/UIViewController+RiotSearch.m +++ b/Riot/Categories/UIViewController+RiotSearch.m @@ -19,6 +19,8 @@ #import +#import "RiotDesignValues.h" + /** `UIViewControllerRiotSearchInternals` is the internal single point storage for the search feature. @@ -91,6 +93,10 @@ // Reset searches self.searchBar.text = @""; + // Customize search bar + self.searchBar.barStyle = kRiotDesignSearchBarStyle; + self.searchBar.tintColor = kRiotDesignSearchBarTintColor; + // Remove navigation buttons self.navigationItem.hidesBackButton = YES; self.navigationItem.rightBarButtonItem = nil; diff --git a/Riot/Info.plist b/Riot/Info.plist index 67e088a49..ad1ee7d7b 100644 --- a/Riot/Info.plist +++ b/Riot/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.5.2 + 0.5.3 CFBundleSignature ???? CFBundleVersion - 0.5.2 + 0.5.3 ITSAppUsesNonExemptEncryption ITSEncryptionExportComplianceCode diff --git a/Riot/Utils/RiotDesignValues.h b/Riot/Utils/RiotDesignValues.h index d379ebbab..2c91ac5ed 100644 --- a/Riot/Utils/RiotDesignValues.h +++ b/Riot/Utils/RiotDesignValues.h @@ -62,7 +62,7 @@ extern UIColor *kRiotDesignSearchBarTintColor; // Flag to enable the display of jitsi conference widget // TODO: Disable it before release // TODO: Remove it once Riot web and android are ready -#define USE_JITSI_WIDGET +//#define USE_JITSI_WIDGET /** `RiotDesignValues` class manages the Riot design parameters diff --git a/RiotShareExtension/Info.plist b/RiotShareExtension/Info.plist index f4553d32a..a1e0e17d0 100644 --- a/RiotShareExtension/Info.plist +++ b/RiotShareExtension/Info.plist @@ -29,13 +29,13 @@ NSExtensionActivationRule NSExtensionActivationSupportsMovieWithMaxCount - 1 + 0 NSExtensionActivationSupportsImageWithMaxCount 5 NSExtensionActivationSupportsWebURLWithMaxCount - 1 + 0 NSExtensionActivationSupportsText - + NSExtensionPointIdentifier diff --git a/RiotShareExtension/Model/ShareExtensionManager.h b/RiotShareExtension/Model/ShareExtensionManager.h index a8a676735..a67b14e05 100644 --- a/RiotShareExtension/Model/ShareExtensionManager.h +++ b/RiotShareExtension/Model/ShareExtensionManager.h @@ -18,6 +18,7 @@ #import @class ShareExtensionManager; +@class SharePresentingViewController; /** Posted when the matrix session has been changed. @@ -64,6 +65,11 @@ extern NSString *const kShareExtensionManagerDidChangeMXSessionNotification; */ @property (nonatomic) NSExtensionContext *shareExtensionContext; +/** + The share app extension’s primary view controller. + */ +@property (nonatomic) SharePresentingViewController *primaryViewController; + /** The associated matrix session (nil by default). */ diff --git a/RiotShareExtension/Model/ShareExtensionManager.m b/RiotShareExtension/Model/ShareExtensionManager.m index dad4d782e..78a120c6d 100644 --- a/RiotShareExtension/Model/ShareExtensionManager.m +++ b/RiotShareExtension/Model/ShareExtensionManager.m @@ -15,6 +15,7 @@ */ #import "ShareExtensionManager.h" +#import "SharePresentingViewController.h" #import "MXKPieChartHUD.h" @import MobileCoreServices; #import "objc/runtime.h" @@ -66,8 +67,12 @@ typedef NS_ENUM(NSInteger, ImageCompressionMode) [[NSNotificationCenter defaultCenter] addObserver:sharedInstance selector:@selector(checkUserAccount) name:NSExtensionHostWillEnterForegroundNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:sharedInstance selector:@selector(suspendSession) name:NSExtensionHostDidEnterBackgroundNotification object:nil]; + MXSDKOptions *sdkOptions = [MXSDKOptions sharedInstance]; + // Apply the application group - [MXSDKOptions sharedInstance].applicationGroupIdentifier = @"group.im.vector"; + sdkOptions.applicationGroupIdentifier = @"group.im.vector"; + // Disable identicon use + sdkOptions.disableIdenticonUseForUserAvatar = YES; }); return sharedInstance; } @@ -295,10 +300,23 @@ typedef NS_ENUM(NSInteger, ImageCompressionMode) { [self.shareExtensionContext cancelRequestWithError:[NSError errorWithDomain:@"MXFailureErrorDomain" code:500 userInfo:nil]]; } + + [self.primaryViewController destroy]; + self.primaryViewController = nil; } #pragma mark - Private +- (void)completeRequestReturningItems:(nullable NSArray *)items completionHandler:(void(^ __nullable)(BOOL expired))completionHandler; +{ + [self suspendSession]; + + [self.shareExtensionContext completeRequestReturningItems:items completionHandler:completionHandler]; + + [self.primaryViewController destroy]; + self.primaryViewController = nil; +} + - (UIAlertController *)compressionPromptForImage:(UIImage *)image shareBlock:(void(^)())shareBlock { UIAlertController *compressionPrompt; @@ -511,8 +529,7 @@ typedef NS_ENUM(NSInteger, ImageCompressionMode) if (weakSelf) { typeof(self) self = weakSelf; - [self suspendSession]; - [self.shareExtensionContext completeRequestReturningItems:@[extensionItem] completionHandler:nil]; + [self completeRequestReturningItems:@[extensionItem] completionHandler:nil]; } } failure:^(NSError *error) { NSLog(@"[ShareExtensionManager] sendTextMessage failed."); @@ -547,8 +564,7 @@ typedef NS_ENUM(NSInteger, ImageCompressionMode) if (weakSelf) { typeof(self) self = weakSelf; - [self suspendSession]; - [self.shareExtensionContext completeRequestReturningItems:@[extensionItem] completionHandler:nil]; + [self completeRequestReturningItems:@[extensionItem] completionHandler:nil]; } } failure:^(NSError *error) { NSLog(@"[ShareExtensionManager] sendFile failed."); @@ -685,8 +701,7 @@ typedef NS_ENUM(NSInteger, ImageCompressionMode) if (weakSelf) { typeof(self) self = weakSelf; - [self suspendSession]; - [self.shareExtensionContext completeRequestReturningItems:@[extensionItem] completionHandler:nil]; + [self completeRequestReturningItems:@[extensionItem] completionHandler:nil]; } } failure:^(NSError *error) { NSLog(@"[ShareExtensionManager] sendVideo failed."); diff --git a/RiotShareExtension/ViewController/SharePresentingViewController.h b/RiotShareExtension/ViewController/SharePresentingViewController.h index 430f568ba..c9eff12d0 100644 --- a/RiotShareExtension/ViewController/SharePresentingViewController.h +++ b/RiotShareExtension/ViewController/SharePresentingViewController.h @@ -18,4 +18,6 @@ @interface SharePresentingViewController : UIViewController +- (void)destroy; + @end diff --git a/RiotShareExtension/ViewController/SharePresentingViewController.m b/RiotShareExtension/ViewController/SharePresentingViewController.m index 081c328b7..13c7390e8 100644 --- a/RiotShareExtension/ViewController/SharePresentingViewController.m +++ b/RiotShareExtension/ViewController/SharePresentingViewController.m @@ -20,6 +20,8 @@ @interface SharePresentingViewController () +@property (nonatomic) ShareViewController *shareViewController; + @end @implementation SharePresentingViewController @@ -28,21 +30,33 @@ { [super viewDidLoad]; - [ShareExtensionManager sharedManager].shareExtensionContext = self.extensionContext; + ShareExtensionManager *sharedManager = [ShareExtensionManager sharedManager]; + + sharedManager.primaryViewController = self; + sharedManager.shareExtensionContext = self.extensionContext; [self presentShareViewController]; } +- (void)destroy +{ + if (self.shareViewController) + { + [self.shareViewController destroy]; + self.shareViewController = nil; + } +} + - (void)presentShareViewController { - ShareViewController *shareViewController = [[ShareViewController alloc] init]; + self.shareViewController = [[ShareViewController alloc] init]; - shareViewController.providesPresentationContextTransitionStyle = YES; - shareViewController.definesPresentationContext = YES; - shareViewController.modalPresentationStyle = UIModalPresentationOverFullScreen; - shareViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; + self.shareViewController.providesPresentationContextTransitionStyle = YES; + self.shareViewController.definesPresentationContext = YES; + self.shareViewController.modalPresentationStyle = UIModalPresentationOverFullScreen; + self.shareViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; - [self presentViewController:shareViewController animated:YES completion:nil]; + [self presentViewController:self.shareViewController animated:YES completion:nil]; } - (void)didReceiveMemoryWarning diff --git a/RiotShareExtension/ViewController/ShareViewController.h b/RiotShareExtension/ViewController/ShareViewController.h index a7ce75c4d..74e7af78a 100644 --- a/RiotShareExtension/ViewController/ShareViewController.h +++ b/RiotShareExtension/ViewController/ShareViewController.h @@ -14,7 +14,6 @@ limitations under the License. */ -#import #import #import diff --git a/RiotShareExtension/ViewController/ShareViewController.m b/RiotShareExtension/ViewController/ShareViewController.m index 781a51525..e02961a28 100644 --- a/RiotShareExtension/ViewController/ShareViewController.m +++ b/RiotShareExtension/ViewController/ShareViewController.m @@ -30,6 +30,8 @@ @property (nonatomic) SegmentedViewController *segmentedViewController; +@property (nonatomic) id shareExtensionManagerDidChangeMXSessionObserver; + @end @@ -42,7 +44,7 @@ { [super viewDidLoad]; - [[NSNotificationCenter defaultCenter] addObserverForName:kShareExtensionManagerDidChangeMXSessionNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notif) { + self.shareExtensionManagerDidChangeMXSessionObserver = [[NSNotificationCenter defaultCenter] addObserverForName:kShareExtensionManagerDidChangeMXSessionNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notif) { [self configureViews]; @@ -51,12 +53,21 @@ [self configureViews]; } -#pragma mark - Private - -- (void)configureViews +- (void)destroy { - self.masterContainerView.layer.cornerRadius = 7; + [super destroy]; + if (self.shareExtensionManagerDidChangeMXSessionObserver) + { + [[NSNotificationCenter defaultCenter] removeObserver:self.shareExtensionManagerDidChangeMXSessionObserver]; + self.shareExtensionManagerDidChangeMXSessionObserver = nil; + } + + [self resetContentView]; +} + +- (void)resetContentView +{ // Empty the content view NSArray *subviews = self.contentView.subviews; for (UIView *subview in subviews) @@ -67,10 +78,21 @@ // Release the current segmented view controller if any if (self.segmentedViewController) { + [self.segmentedViewController removeFromParentViewController]; + // Release correctly all the existing data source and view controllers. [self.segmentedViewController destroy]; self.segmentedViewController = nil; } +} + +#pragma mark - Private + +- (void)configureViews +{ + self.masterContainerView.layer.cornerRadius = 7; + + [self resetContentView]; if ([ShareExtensionManager sharedManager].mxSession) {