Эх сурвалжийг харах

Merge branch 'develop'

Conflicts:
	.gitignore
	iOSClient/Supporting Files/fr.lproj/Localizable.strings
	iOSClient/Supporting Files/nl.lproj/Localizable.strings
	iOSClient/Supporting Files/sk-SK.lproj/Localizable.strings
Marino Faggiana 6 жил өмнө
parent
commit
ef8ba663df
100 өөрчлөгдсөн 362 нэмэгдсэн , 464 устгасан
  1. 1 1
      AUTHORS
  2. 1 0
      Cartfile
  3. 6 5
      Cartfile.resolved
  4. 4 0
      Carthage/Checkouts/MGSwipeTableCell/CHANGELOG.md
  5. 1 1
      Carthage/Checkouts/MGSwipeTableCell/LICENSE
  6. 1 1
      Carthage/Checkouts/MGSwipeTableCell/MGSwipeTableCell.podspec
  7. 1 1
      Carthage/Checkouts/MGSwipeTableCell/MGSwipeTableCell/MGSwipeTableCell.m
  8. 1 1
      Carthage/Checkouts/MGSwipeTableCell/demo/MailAppDemoSwift/MailAppDemoSwift/AppDelegate.swift
  9. 2 2
      Carthage/Checkouts/MGSwipeTableCell/demo/MailAppDemoSwift/MailAppDemoSwift/MailTableCell.swift
  10. 5 5
      Carthage/Checkouts/MGSwipeTableCell/demo/MailAppDemoSwift/MailAppDemoSwift/MailViewController.swift
  11. 1 1
      Carthage/Checkouts/MGSwipeTableCell/demo/MailAppDemoSwift/MailAppDemoSwiftTests/Info.plist
  12. 2 2
      Carthage/Checkouts/PDFGenerator/PDFGenerator.podspec
  13. 1 1
      Carthage/Checkouts/Sheeeeeeeeet/Fastlane/Fastfile
  14. 15 0
      Carthage/Checkouts/Sheeeeeeeeet/RELEASE_NOTES.md
  15. 1 1
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet.podspec
  16. 11 2
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet+Presenter.swift
  17. 4 2
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet.swift
  18. 4 4
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet.xib
  19. 7 0
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Appearance/ActionSheetAppearance.swift
  20. 2 2
      Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Info.plist
  21. 4 4
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Base.lproj/Main.storyboard
  22. 2 2
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Info.plist
  23. 31 9
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetTests/ActionSheet/ActionSheetTests.swift
  24. 2 2
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetTests/Info.plist
  25. 2 1
      Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetTests/Views/MockTableView.swift
  26. 1 1
      Carthage/Checkouts/TLPhotoPicker/TLPhotoPicker.podspec
  27. 16 9
      Carthage/Checkouts/TLPhotoPicker/TLPhotoPicker/Classes/TLPhotoLibrary.swift
  28. 2 3
      Carthage/Checkouts/TLPhotoPicker/TLPhotoPicker/Classes/TLPhotosPickerViewController.swift
  29. 52 14
      Carthage/Checkouts/realm-cocoa/.jenkins.yml
  30. 18 0
      Carthage/Checkouts/realm-cocoa/CHANGELOG.md
  31. 3 3
      Carthage/Checkouts/realm-cocoa/Jenkinsfile.releasability
  32. 1 0
      Carthage/Checkouts/realm-cocoa/Realm/ObjectServerTests/RLMSyncTestCase.mm
  33. 12 2
      Carthage/Checkouts/realm-cocoa/Realm/RLMSyncManager.h
  34. 16 1
      Carthage/Checkouts/realm-cocoa/Realm/RLMSyncManager.mm
  35. 2 2
      Carthage/Checkouts/realm-cocoa/Realm/Realm-Info.plist
  36. 11 2
      Carthage/Checkouts/realm-cocoa/build.sh
  37. 2 2
      Carthage/Checkouts/realm-cocoa/dependencies.list
  38. 1 1
      File Provider Extension/FileProviderData.swift
  39. 1 1
      File Provider Extension/FileProviderEnumerator.swift
  40. 1 1
      File Provider Extension/FileProviderExtension+Actions.swift
  41. 1 1
      File Provider Extension/FileProviderExtension+Network.swift
  42. 1 1
      File Provider Extension/FileProviderExtension+Thumbnail.swift
  43. 1 1
      File Provider Extension/FileProviderExtension-Bridging-Header.h
  44. 1 1
      File Provider Extension/FileProviderExtension.swift
  45. 1 1
      File Provider Extension/FileProviderItem.swift
  46. 22 157
      Nextcloud.xcodeproj/project.pbxproj
  47. 1 1
      Notification Service Extension/NotificationService.swift
  48. 1 1
      Notification Service Extension/NotificationServiceExtension-Bridging-Header.h
  49. 1 1
      Share/CCCellShareExt.h
  50. 1 1
      Share/CCCellShareExt.m
  51. 1 1
      Share/CCloadItemData.swift
  52. 1 1
      Share/ShareViewController.h
  53. 1 1
      Share/ShareViewController.m
  54. 1 1
      iOSClient/Activity/CCActivity.h
  55. 1 1
      iOSClient/Activity/CCActivity.m
  56. 1 1
      iOSClient/AppDelegate.h
  57. 11 45
      iOSClient/AppDelegate.m
  58. 1 1
      iOSClient/AutoUpload/NCAutoUpload.h
  59. 1 1
      iOSClient/AutoUpload/NCAutoUpload.m
  60. 2 2
      iOSClient/Brand/File_Provider_Extension.plist
  61. 1 1
      iOSClient/Brand/Intro/CCIntro.h
  62. 15 28
      iOSClient/Brand/Intro/CCIntro.m
  63. 1 1
      iOSClient/Brand/NCBrand.swift
  64. 1 1
      iOSClient/Brand/NCBridgeSwift.h
  65. 2 2
      iOSClient/Brand/Notification_Service_Extension.plist
  66. 2 2
      iOSClient/Brand/Share.plist
  67. 2 2
      iOSClient/Brand/iOSClient.plist
  68. 2 1
      iOSClient/CCGlobal.h
  69. 1 1
      iOSClient/CryptoCloud.pch
  70. 2 1
      iOSClient/Database/NCDatabase.swift
  71. 14 6
      iOSClient/Database/NCManageDatabase.swift
  72. 1 1
      iOSClient/Favorites/CCFavorites.h
  73. 1 1
      iOSClient/Favorites/CCFavorites.m
  74. 0 23
      iOSClient/Images.xcassets/tabBarFavoritesIOS9.imageset/Contents.json
  75. BIN
      iOSClient/Images.xcassets/tabBarFavoritesIOS9.imageset/tabBarFavoritesIOS9.png
  76. BIN
      iOSClient/Images.xcassets/tabBarFavoritesIOS9.imageset/tabBarFavoritesIOS9@2x.png
  77. BIN
      iOSClient/Images.xcassets/tabBarFavoritesIOS9.imageset/tabBarFavoritesIOS9@3x.png
  78. 0 23
      iOSClient/Images.xcassets/tabBarFilesIOS9.imageset/Contents.json
  79. BIN
      iOSClient/Images.xcassets/tabBarFilesIOS9.imageset/tabBarFilesIOS9.png
  80. BIN
      iOSClient/Images.xcassets/tabBarFilesIOS9.imageset/tabBarFilesIOS9@2x.png
  81. BIN
      iOSClient/Images.xcassets/tabBarFilesIOS9.imageset/tabBarFilesIOS9@3x.png
  82. 0 23
      iOSClient/Images.xcassets/tabBarMediaIOS9.imageset/Contents.json
  83. BIN
      iOSClient/Images.xcassets/tabBarMediaIOS9.imageset/tabBarMediaIOS9.png
  84. BIN
      iOSClient/Images.xcassets/tabBarMediaIOS9.imageset/tabBarMediaIOS9@2x.png
  85. BIN
      iOSClient/Images.xcassets/tabBarMediaIOS9.imageset/tabBarMediaIOS9@3x.png
  86. 0 23
      iOSClient/Images.xcassets/tabBarMoreIOS9.imageset/Contents.json
  87. BIN
      iOSClient/Images.xcassets/tabBarMoreIOS9.imageset/tabBarMoreIOS9.png
  88. BIN
      iOSClient/Images.xcassets/tabBarMoreIOS9.imageset/tabBarMoreIOS9@2x.png
  89. BIN
      iOSClient/Images.xcassets/tabBarMoreIOS9.imageset/tabBarMoreIOS9@3x.png
  90. 1 1
      iOSClient/Library/AHKActionSheet/AHKActionSheet.h
  91. 1 1
      iOSClient/Library/AHKActionSheet/AHKActionSheet.m
  92. 1 1
      iOSClient/Library/NCUchardet/NCUchardet.h
  93. 1 1
      iOSClient/Library/NCUchardet/NCUchardet.m
  94. 1 1
      iOSClient/Library/OCCommunicationLib/NCRichDocumentTemplate.h
  95. 1 1
      iOSClient/Library/OCCommunicationLib/NCRichDocumentTemplate.m
  96. 1 1
      iOSClient/Library/OCCommunicationLib/OCActivity.h
  97. 1 1
      iOSClient/Library/OCCommunicationLib/OCActivity.m
  98. 2 1
      iOSClient/Library/OCCommunicationLib/OCCapabilities.h
  99. 1 1
      iOSClient/Library/OCCommunicationLib/OCCapabilities.m
  100. 3 1
      iOSClient/Library/OCCommunicationLib/OCCommunication.h

+ 1 - 1
AUTHORS

@@ -1,2 +1,2 @@
-Marino Faggiana <m.faggiana@twsweb.it>
+Marino Faggiana <marino.faggiana@nextcloud.com>
 All contributors can be viewed at https://github.com/nextcloud/ios/graphs/contributors

+ 1 - 0
Cartfile

@@ -10,3 +10,4 @@ github "ChangbaDevs/KTVHTTPCache" ~> 1.1.7
 github "jdg/MBProgressHUD" ~> 1.1.0
 github "realm/realm-cocoa"
 github "SVGKit/SVGKit" "2.x"
+github "WeTransfer/WeScan" >= 0.9

+ 6 - 5
Cartfile.resolved

@@ -1,14 +1,15 @@
 github "ChangbaDevs/KTVHTTPCache" "1.1.7"
 github "CocoaLumberjack/CocoaLumberjack" "3.4.2"
-github "MortimerGoro/MGSwipeTableCell" "1.6.7"
+github "MortimerGoro/MGSwipeTableCell" "1.6.8"
 github "SVGKit/SVGKit" "bfe62f6d45f55c9fe39619d9e91fed1844c59da6"
+github "WeTransfer/WeScan" "v0.9.1"
 github "calimarkus/JDStatusBarNotification" "1.6.0"
-github "danielsaidi/Sheeeeeeeeet" "1.0.1"
+github "danielsaidi/Sheeeeeeeeet" "1.0.2"
 github "dzenbot/DZNEmptyDataSet" "v1.8.1"
 github "ealeksandrov/EAIntroView" "2.12.0"
 github "ealeksandrov/EARestrictedScrollView" "1.1.0"
 github "jdg/MBProgressHUD" "1.1.0"
 github "kishikawakatsumi/UICKeyChainStore" "v2.1.2"
-github "realm/realm-cocoa" "v3.11.2"
-github "sgr-ksmt/PDFGenerator" "2.1"
-github "tilltue/TLPhotoPicker" "1.7.7"
+github "realm/realm-cocoa" "v3.12.0"
+github "sgr-ksmt/PDFGenerator" "2.1.1"
+github "tilltue/TLPhotoPicker" "1.7.8"

+ 4 - 0
Carthage/Checkouts/MGSwipeTableCell/CHANGELOG.md

@@ -1,5 +1,9 @@
 # Changelog
 
+## 1.6.8
+
+- Fix duplicaged buttons on orientation change.
+
 ## 1.6.7
 
 - Fix quality loss in snapshot image.

+ 1 - 1
Carthage/Checkouts/MGSwipeTableCell/LICENSE

@@ -1,6 +1,6 @@
 The MIT License (MIT)
 
-Copyright (c) 2016 Imanol Fernandez @MortimerGoro
+Copyright (c) 2018 Imanol Fernandez @MortimerGoro
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal

+ 1 - 1
Carthage/Checkouts/MGSwipeTableCell/MGSwipeTableCell.podspec

@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name     = 'MGSwipeTableCell'
-  s.version  = '1.6.7'
+  s.version  = '1.6.8'
   s.author   = { 'Imanol Fernandez' => 'mortimergoro@gmail.com' }
   s.homepage = 'https://github.com/MortimerGoro/MGSwipeTableCell'
   s.summary  = 'An easy to use UITableViewCell subclass that allows to display swipeable buttons with a variety of transitions'

+ 1 - 1
Carthage/Checkouts/MGSwipeTableCell/MGSwipeTableCell/MGSwipeTableCell.m

@@ -1027,7 +1027,7 @@ static inline CGFloat mgEaseInOutBounce(CGFloat t, CGFloat b, CGFloat c) {
 
 - (UIImage *)imageFromView:(UIView *)view cropSize:(CGSize)cropSize{
     UIGraphicsBeginImageContextWithOptions(cropSize, NO, 0);
-    [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO];
+    [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
     UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
     UIGraphicsEndImageContext();
     return image;

+ 1 - 1
Carthage/Checkouts/MGSwipeTableCell/demo/MailAppDemoSwift/MailAppDemoSwift/AppDelegate.swift

@@ -11,7 +11,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
     var window: UIWindow?
 
 
-    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
+    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
         
         window = UIWindow(frame: UIScreen.main.bounds);
         let controller = MailViewController();

+ 2 - 2
Carthage/Checkouts/MGSwipeTableCell/demo/MailAppDemoSwift/MailAppDemoSwift/MailTableCell.swift

@@ -68,7 +68,7 @@ class MailTableCell: MGSwipeTableCell {
         mailMessage.isScrollEnabled = false;
         mailMessage.isEditable = false;
         mailMessage.backgroundColor = UIColor.clear;
-        mailMessage.contentInset = UIEdgeInsetsMake(-5, -5, 0, 0);
+        mailMessage.contentInset = UIEdgeInsets.init(top: -5, left: -5, bottom: 0, right: 0);
         mailMessage.textColor = UIColor.gray;
         mailMessage.isUserInteractionEnabled = false;
         
@@ -83,7 +83,7 @@ class MailTableCell: MGSwipeTableCell {
         
     }
     
-    override init(style: UITableViewCellStyle, reuseIdentifier:String?)
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier:String?)
     {
         super.init(style:style, reuseIdentifier: reuseIdentifier);
         initViews();

+ 5 - 5
Carthage/Checkouts/MGSwipeTableCell/demo/MailAppDemoSwift/MailAppDemoSwift/MailViewController.swift

@@ -140,7 +140,7 @@ class MailViewController: UIViewController, UITableViewDataSource, UITableViewDe
     override func viewDidLoad() {
         super.viewDidLoad()
         
-        tableView = UITableView(frame: view.bounds, style: UITableViewStyle.plain);
+        tableView = UITableView(frame: view.bounds, style: UITableView.Style.plain);
         tableView.delegate = self;
         tableView.dataSource = self;
         view.addSubview(tableView);
@@ -148,7 +148,7 @@ class MailViewController: UIViewController, UITableViewDataSource, UITableViewDe
         self.title = "MSwipeTableCell MailApp";
         
         refreshControl = UIRefreshControl();
-        refreshControl.addTarget(self, action: #selector(refreshCallback), for: UIControlEvents.valueChanged);
+        refreshControl.addTarget(self, action: #selector(refreshCallback), for: UIControl.Event.valueChanged);
         tableView.addSubview(refreshControl);
         prepareDemoData();
     }
@@ -169,7 +169,7 @@ class MailViewController: UIViewController, UITableViewDataSource, UITableViewDe
         
         var cell: MailTableCell! = tableView.dequeueReusableCell(withIdentifier: identifier) as? MailTableCell;
         if cell == nil {
-            cell = MailTableCell(style: UITableViewCellStyle.default, reuseIdentifier: identifier);
+            cell = MailTableCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: identifier);
         }
         cell.delegate = self;
         
@@ -209,7 +209,7 @@ class MailViewController: UIViewController, UITableViewDataSource, UITableViewDe
                     mail.read = !mail.read;
                     self.updateCellIndicator(mail, cell: cell as! MailTableCell);
                     cell.refreshContentView();
-                    (cell.leftButtons[0] as! UIButton).setTitle(self.readButtonText(mail.read), for: UIControlState());
+                    (cell.leftButtons[0] as! UIButton).setTitle(self.readButtonText(mail.read), for: UIControl.State());
                     
                     return true;
                 })
@@ -251,7 +251,7 @@ class MailViewController: UIViewController, UITableViewDataSource, UITableViewDe
                         mail.read = !mail.read;
                         self.updateCellIndicator(mail, cell: cell as! MailTableCell);
                         cell.refreshContentView();
-                        (cell.leftButtons[0] as! UIButton).setTitle(self.readButtonText(mail.read), for: UIControlState());
+                        (cell.leftButtons[0] as! UIButton).setTitle(self.readButtonText(mail.read), for: UIControl.State());
                         cell.hideSwipe(animated: true);
                     }
                     else if index == 2 {

+ 1 - 1
Carthage/Checkouts/MGSwipeTableCell/demo/MailAppDemoSwift/MailAppDemoSwiftTests/Info.plist

@@ -7,7 +7,7 @@
 	<key>CFBundleExecutable</key>
 	<string>$(EXECUTABLE_NAME)</string>
 	<key>CFBundleIdentifier</key>
-	<string>mortimergoro.$(PRODUCT_NAME:rfc1034identifier)</string>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
 	<key>CFBundleInfoDictionaryVersion</key>
 	<string>6.0</string>
 	<key>CFBundleName</key>

+ 2 - 2
Carthage/Checkouts/PDFGenerator/PDFGenerator.podspec

@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name             = "PDFGenerator"
-  s.version          = "2.1"
+  s.version          = "2.1.1"
   s.summary          = "A simple PDF generator."
   s.homepage         = "https://github.com/sgr-ksmt/PDFGenerator"
   # s.screenshots     = ""
@@ -9,6 +9,6 @@ Pod::Spec.new do |s|
   s.source           = { :git => "https://github.com/sgr-ksmt/PDFGenerator.git", :tag => s.version.to_s }
   s.platform         = :ios, '8.0'
   s.requires_arc     = true
-  s.source_files     = "PDFGenerator/**/*"
+  s.source_files     = "PDFGenerator/**/*.swift"
   s.frameworks   = 'WebKit'
 end

+ 1 - 1
Carthage/Checkouts/Sheeeeeeeeet/Fastlane/Fastfile

@@ -14,7 +14,7 @@ platform :ios do
     test
     version = version_bump_podspec(path: "Sheeeeeeeeet.podspec", version_number: options[:name])
     increment_version_number(version_number: version)
-    increment_build_number(build_number: version)
+    increment_build_number(build_number: `date "+%y%m%d%H%M"`)
 
     git_commit(
       path: [

+ 15 - 0
Carthage/Checkouts/Sheeeeeeeeet/RELEASE_NOTES.md

@@ -1,5 +1,20 @@
 # Release Notes
 
+## 1.0.2
+
+This version adds new background color properties to the action sheet appearance,
+to make it possible to set the background color of the table views.
+
+This version fixes a bug, where the background color behind an action sheet went
+black when the action sheet was presented in a split view.
+
+
+## 1.0.1
+
+This version fixes a bug, where the presenters incorrectly updated the scrolling
+behavior of the action sheet when rotating the device.
+
+
 ## 1.0.0
 
 Sheeeeeeeeet 1.0.0 is finally here, with many internal changes and some external.

+ 1 - 1
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet.podspec

@@ -2,7 +2,7 @@
 
 Pod::Spec.new do |s|
   s.name             = 'Sheeeeeeeeet'
-  s.version          = '1.0.1'
+  s.version          = '1.0.2'
   s.summary          = 'Sheeeeeeeeet is a Swift library for custom iOS action sheets.'
 
   s.description      = <<-DESC

+ 11 - 2
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet+Presenter.swift

@@ -20,8 +20,17 @@ extension UIUserInterfaceIdiom {
     
     var defaultPresenter: ActionSheetPresenter {
         switch self {
-        case .pad: return ActionSheetPopoverPresenter()
-        default: return ActionSheetStandardPresenter()
+        case .pad: return ipadPresenter
+        default: return iphonePresenter
         }
     }
+    
+    var ipadPresenter: ActionSheetPresenter {
+        let isFullscreen = UIApplication.shared.isFullScreen
+        return isFullscreen ? ActionSheetPopoverPresenter() : ActionSheetStandardPresenter()
+    }
+    
+    var iphonePresenter: ActionSheetPresenter {
+        return ActionSheetStandardPresenter()
+    }
 }

+ 4 - 2
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet.swift

@@ -181,7 +181,7 @@ open class ActionSheet: UIViewController {
     
     public lazy var itemHandler = ActionSheetItemHandler(actionSheet: self, itemType: .items)
     
-    @IBOutlet weak var itemsTableView: UITableView? {
+    @IBOutlet weak var itemsTableView: ActionSheetTableView? {
         didSet { setup(itemsTableView, with: itemHandler) }
     }
     
@@ -196,7 +196,7 @@ open class ActionSheet: UIViewController {
     
     public lazy var buttonHandler = ActionSheetItemHandler(actionSheet: self, itemType: .buttons)
     
-    @IBOutlet weak var buttonsTableView: UITableView? {
+    @IBOutlet weak var buttonsTableView: ActionSheetTableView? {
         didSet {
             setup(buttonsTableView, with: buttonHandler)
             refreshButtonsVisibility()
@@ -250,6 +250,7 @@ open class ActionSheet: UIViewController {
     
     open func refreshItems() {
         items.forEach { $0.applyAppearance(appearance) }
+        itemsTableView?.backgroundColor = appearance.itemsBackgroundColor
         itemsTableView?.separatorColor = appearance.itemsSeparatorColor
         itemsTableViewHeight?.constant = itemsHeight
     }
@@ -257,6 +258,7 @@ open class ActionSheet: UIViewController {
     open func refreshButtons() {
         refreshButtonsVisibility()
         buttons.forEach { $0.applyAppearance(appearance) }
+        buttonsTableView?.backgroundColor = appearance.buttonsBackgroundColor
         buttonsTableView?.separatorColor = appearance.buttonsSeparatorColor
         buttonsTableViewHeight?.constant = buttonsHeight
     }

+ 4 - 4
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/ActionSheet/ActionSheet.xib

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="retina4_7" orientation="portrait">
         <adaptation id="fullscreen"/>
     </device>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -46,14 +46,14 @@
                                 <constraint firstAttribute="height" constant="150" id="ZKw-6e-7h3"/>
                             </constraints>
                         </view>
-                        <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="iQT-dy-e7d">
+                        <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="iQT-dy-e7d" customClass="ActionSheetTableView" customModule="Sheeeeeeeeet" customModuleProvider="target">
                             <rect key="frame" x="0.0" y="170" width="375" height="100"/>
                             <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <constraints>
                                 <constraint firstAttribute="height" priority="900" constant="100" id="929-kf-L2B"/>
                             </constraints>
                         </tableView>
-                        <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="4ww-lg-Kl7">
+                        <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="4ww-lg-Kl7" customClass="ActionSheetTableView" customModule="Sheeeeeeeeet" customModuleProvider="target">
                             <rect key="frame" x="0.0" y="290" width="375" height="100"/>
                             <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                             <constraints>

+ 7 - 0
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Appearance/ActionSheetAppearance.swift

@@ -33,6 +33,10 @@ open class ActionSheetAppearance {
         contentInset = copy.contentInset
         groupMargins = copy.groupMargins
         
+        backgroundColor = copy.backgroundColor
+        itemsBackgroundColor = copy.itemsBackgroundColor ?? backgroundColor
+        buttonsSeparatorColor = copy.buttonsSeparatorColor ?? backgroundColor
+        
         separatorColor = copy.separatorColor
         itemsSeparatorColor = copy.itemsSeparatorColor ?? separatorColor
         buttonsSeparatorColor = copy.buttonsSeparatorColor ?? separatorColor
@@ -64,8 +68,11 @@ open class ActionSheetAppearance {
     public var contentInset: CGFloat = 15
     public var groupMargins: CGFloat = 15
     
+    public var backgroundColor: UIColor?
     public var separatorColor: UIColor?
+    public var itemsBackgroundColor: UIColor?
     public var itemsSeparatorColor: UIColor?
+    public var buttonsBackgroundColor: UIColor?
     public var buttonsSeparatorColor: UIColor?
     
     

+ 2 - 2
Carthage/Checkouts/Sheeeeeeeeet/Sheeeeeeeeet/Info.plist

@@ -15,9 +15,9 @@
 	<key>CFBundlePackageType</key>
 	<string>FMWK</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.0.1</string>
+	<string>1.0.2</string>
 	<key>CFBundleVersion</key>
-	<string>1.0.1</string>
+	<string>1811242240</string>
 	<key>NSPrincipalClass</key>
 	<string></string>
 </dict>

+ 4 - 4
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Base.lproj/Main.storyboard

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="g6h-E6-DAd">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14460.31" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="g6h-E6-DAd">
     <device id="retina4_7" orientation="portrait">
         <adaptation id="fullscreen"/>
     </device>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14460.20"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -75,11 +75,11 @@
             </objects>
             <point key="canvasLocation" x="2410.4000000000001" y="115.59220389805098"/>
         </scene>
-        <!--Demo Application-->
+        <!--Navigation Controller-->
         <scene sceneID="BI4-bw-sjW">
             <objects>
                 <navigationController automaticallyAdjustsScrollViewInsets="NO" id="f0y-2v-eNx" sceneMemberID="viewController">
-                    <tabBarItem key="tabBarItem" title="Demo Application" id="jOV-pg-98y"/>
+                    <tabBarItem key="tabBarItem" systemItem="more" id="jOV-pg-98y"/>
                     <toolbarItems/>
                     <navigationBar key="navigationBar" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="t4r-bp-MhJ">
                         <rect key="frame" x="0.0" y="20" width="375" height="44"/>

+ 2 - 2
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetExample/Info.plist

@@ -15,9 +15,9 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.0.1</string>
+	<string>1.0.2</string>
 	<key>CFBundleVersion</key>
-	<string>1.0.1</string>
+	<string>1811242240</string>
 	<key>LSRequiresIPhoneOS</key>
 	<true/>
 	<key>UIAppFonts</key>

+ 31 - 9
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetTests/ActionSheet/ActionSheetTests.swift

@@ -26,6 +26,10 @@ class ActionSheetTests: QuickSpec {
             return MockActionSheet(items: items, action: { _, _ in })
         }
         
+        func createTableView() -> ActionSheetTableView {
+            return ActionSheetTableView(frame: .zero)
+        }
+        
         
         // MARK: - Initialization
         
@@ -162,7 +166,7 @@ class ActionSheetTests: QuickSpec {
             
             it("is correctly setup when set") {
                 let sheet = createSheet()
-                let view = UITableView(frame: .zero)
+                let view = createTableView()
                 sheet.itemsTableView = view
                 
                 expect(view.delegate).to(be(sheet.itemHandler))
@@ -214,7 +218,7 @@ class ActionSheetTests: QuickSpec {
             
             it("is correctly setup when set") {
                 let sheet = createSheet()
-                let view = UITableView(frame: .zero)
+                let view = createTableView()
                 sheet.buttonsTableView = view
                 
                 expect(view.delegate).to(be(sheet.buttonHandler))
@@ -309,8 +313,8 @@ class ActionSheetTests: QuickSpec {
             
             var sheet: MockActionSheet!
             var headerViewContainer: UIView!
-            var itemsView: UITableView!
-            var buttonsView: UITableView!
+            var itemsView: ActionSheetTableView!
+            var buttonsView: ActionSheetTableView!
             var stackView: UIStackView!
             
             beforeEach {
@@ -318,8 +322,8 @@ class ActionSheetTests: QuickSpec {
                 sheet.appearance.groupMargins = 123
                 sheet.appearance.cornerRadius = 90
                 headerViewContainer = UIView(frame: .zero)
-                itemsView = UITableView(frame: .zero)
-                buttonsView = UITableView(frame: .zero)
+                itemsView = createTableView()
+                buttonsView = createTableView()
                 stackView = UIStackView(frame: .zero)
                 sheet.headerViewContainer = headerViewContainer
                 sheet.itemsTableView = itemsView
@@ -404,12 +408,21 @@ class ActionSheetTests: QuickSpec {
                     expect(item2.applyAppearanceInvokeAppearances[0]).to(be(sheet.appearance))
                 }
                 
+                it("applies background color") {
+                    sheet.appearance.itemsBackgroundColor = .yellow
+                    let view = createTableView()
+                    sheet.itemsTableView = view
+                    sheet.refresh()
+                    
+                    expect(view.backgroundColor).to(equal(.yellow))
+                }
+                
                 it("applies separator color") {
                     sheet.appearance.itemsSeparatorColor = .yellow
-                    let view = UITableView(frame: .zero)
+                    let view = createTableView()
                     sheet.itemsTableView = view
                     sheet.refresh()
-                    
+
                     expect(view.separatorColor).to(equal(.yellow))
                 }
             }
@@ -434,9 +447,18 @@ class ActionSheetTests: QuickSpec {
                     expect(item2.applyAppearanceInvokeAppearances[0]).to(be(sheet.appearance))
                 }
                 
+                it("applies background color") {
+                    sheet.appearance.buttonsBackgroundColor = .yellow
+                    let view = createTableView()
+                    sheet.buttonsTableView = view
+                    sheet.refresh()
+                    
+                    expect(view.backgroundColor).to(equal(.yellow))
+                }
+                
                 it("applies separator color") {
                     sheet.appearance.buttonsSeparatorColor = .yellow
-                    let view = UITableView(frame: .zero)
+                    let view = createTableView()
                     sheet.buttonsTableView = view
                     sheet.refresh()
                     

+ 2 - 2
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetTests/Info.plist

@@ -15,8 +15,8 @@
 	<key>CFBundlePackageType</key>
 	<string>BNDL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>1.0.1</string>
+	<string>1.0.2</string>
 	<key>CFBundleVersion</key>
-	<string>1.0.1</string>
+	<string>1811242240</string>
 </dict>
 </plist>

+ 2 - 1
Carthage/Checkouts/Sheeeeeeeeet/SheeeeeeeeetTests/Views/MockTableView.swift

@@ -7,8 +7,9 @@
 //
 
 import UIKit
+import Sheeeeeeeeet
 
-class MockTableView: UITableView {
+class MockTableView: ActionSheetTableView {
 
     var deselectRowInvokeCount = 0
     var deselectRowInvokePaths = [IndexPath]()

+ 1 - 1
Carthage/Checkouts/TLPhotoPicker/TLPhotoPicker.podspec

@@ -8,7 +8,7 @@
 
 Pod::Spec.new do |s|
   s.name             = 'TLPhotoPicker'
-  s.version          = '1.7.7'
+  s.version          = '1.7.8'
   s.summary          = 'multiple phassets picker for iOS lib. like facebook'
 
 # This description is used to generate tags and improve search results.

+ 16 - 9
Carthage/Checkouts/TLPhotoPicker/TLPhotoPicker/Classes/TLPhotoLibrary.swift

@@ -135,16 +135,23 @@ extension TLPhotoLibrary {
         let options = configure.fetchOption ?? PHFetchOptions()
         options.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
         if let mediaType = configure.mediaType {
-            let mediaTypePredicate = configure.maxVideoDuration != nil && mediaType == PHAssetMediaType.video ? NSPredicate(format: "mediaType = %i AND duration < %f", mediaType.rawValue, configure.maxVideoDuration! + 1) : NSPredicate(format: "mediaType = %i", mediaType.rawValue)
-            options.merge(predicate: mediaTypePredicate)
-        } else if !configure.allowedVideo {
-            let mediaTypePredicate = NSPredicate(format: "mediaType = %i", PHAssetMediaType.image.rawValue)
-            options.merge(predicate: mediaTypePredicate)
-        } else if let duration = configure.maxVideoDuration {
-            let mediaTypePredicate = NSPredicate(format: "mediaType = %i OR (mediaType = %i AND duration < %f)", PHAssetMediaType.image.rawValue, PHAssetMediaType.video.rawValue, duration + 1)
-            options.merge(predicate: mediaTypePredicate)
+            let mediaPredicate = NSPredicate(format: "mediaType = %i", mediaType.rawValue)
+            options.merge(predicate: mediaPredicate)
+        }
+        if configure.allowedVideo == false {
+            let notVideoPredicate = NSPredicate(format: "mediaType != %i", PHAssetMediaType.video.rawValue)
+            options.merge(predicate: notVideoPredicate)
+        }
+        if configure.allowedLivePhotos == false {
+            let notLivePhotoPredicate = NSPredicate(format: "mediaType = %i OR mediaSubtype != %i",
+                                                    PHAssetMediaType.video.rawValue,
+                                                    PHAssetMediaSubtype.photoLive.rawValue)
+            options.merge(predicate: notLivePhotoPredicate)
+        }
+        if let maxVideoDuration = configure.maxVideoDuration {
+            let durationPredicate = NSPredicate(format: "duration < %f", maxVideoDuration)
+            options.merge(predicate: durationPredicate)
         }
-        
         return options
     }
     

+ 2 - 3
Carthage/Checkouts/TLPhotoPicker/TLPhotoPicker/Classes/TLPhotosPickerViewController.swift

@@ -618,8 +618,7 @@ extension TLPhotosPickerViewController: PHLivePhotoViewDelegate {
             if requestId > 0 {
                 self.playRequestId = (indexPath,requestId)
             }
-        }else if asset.type == .livePhoto {
-            
+        }else if asset.type == .livePhoto && self.allowedLivePhotos {
             guard let cell = self.collectionView.cellForItem(at: indexPath) as? TLPhotoCollectionViewCell else { return }
             let requestId = self.photoLibrary.livePhotoAsset(asset: phAsset, size: self.thumbnailSize, completionBlock: { [weak cell] (livePhoto,complete) in
                 cell?.livePhotoView?.isHidden = false
@@ -813,7 +812,7 @@ extension TLPhotosPickerViewController: UICollectionViewDelegate,UICollectionVie
             let cell = collectionView.dequeueReusableCell(withReuseIdentifier: nibName, for: indexPath) as! TLPhotoCollectionViewCell
             cell.configure = self.configure
             cell.imageView?.image = self.placeholderThumbnail
-            cell.liveBadgeImageView = nil
+            cell.liveBadgeImageView?.image = nil
             return cell
         }
         let nibName = self.configure.nibSet?.nibName ?? "TLPhotoCollectionViewCell"

+ 52 - 14
Carthage/Checkouts/realm-cocoa/.jenkins.yml

@@ -6,6 +6,7 @@ xcode_version:
   - 9.3
   - 9.4
   - 10.0
+  - 10.1
 target:
   - osx
   - docs
@@ -44,8 +45,11 @@ configuration:
 # | 9.4   | Debug        | X   |      |            |             |           |           |         |           |           |      |                |                   |                      |                       |                       |                        |             |
 # | 9.4   | Release      | X   |      | X          | X           | X         | X         | X       | X         |           | X    |                |                   |                      |                       |                       |                        |             |
 # | -------------------- | --- | ---- | ---------- | ----------- | --------- | --------- | ------- | --------- | --------- | ---- | -------------- | ----------------- | -------------------- | --------------------- | --------------------- | ---------------------- | ----------- |
-# | 10.0  | Debug        | X   |      |            | X           | X         | X         | X       |           |           | X    |                |                   |                      |                       |                       |                        |             |
-# | 10.0  | Release      | X   | X    | X          | X           | X         | X         | X       | X         | X         | X    | X              | X                 |                      |                       | X                     |                        | X           |
+# | 10.0  | Debug        | X   |      |            |             |           |           |         |           |           |      |                |                   |                      |                       |                       |                        |             |
+# | 10.0  | Release      | X   |      | X          | X           | X         | X         | X       | X         |           | X    |                |                   |                      |                       |                       |                        |             |
+# | -------------------- | --- | ---- | ---------- | ----------- | --------- | --------- | ------- | --------- | --------- | ---- | -------------- | ----------------- | -------------------- | --------------------- | --------------------- | ---------------------- | ----------- |
+# | 10.1  | Debug        | X   |      |            | X           | X         | X         | X       |           |           | X    |                |                   |                      |                       |                       |                        |             |
+# | 10.1  | Release      | X   | X    | X          | X           | X         | X         | X       | X         | X         | X    | X              | X                 |                      |                       | X                     |                        | X           |
 # +----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 
 exclude:
@@ -59,6 +63,8 @@ exclude:
     target: docs
   - xcode_version: 9.4
     target: docs
+  - xcode_version: 10.0
+    target: docs
   - target: docs
     configuration: Debug
 
@@ -75,6 +81,9 @@ exclude:
   - xcode_version: 10.0
     target: ios-static
     configuration: Debug
+  - xcode_version: 10.1
+    target: ios-static
+    configuration: Debug
 
   ################
   # ios-dynamic
@@ -89,11 +98,14 @@ exclude:
   - xcode_version: 9.4
     target: ios-dynamic
     configuration: Debug
+  - xcode_version: 10.0
+    target: ios-dynamic
+    configuration: Debug
 
   ################
   # ios-swift
   ################
-  # Skip 9.2/9.3/9.4 Debug
+  # Skip 9.2/9.3/9.4/10.0 Debug
   - xcode_version: 9.2
     target: ios-swift
     configuration: Debug
@@ -103,11 +115,14 @@ exclude:
   - xcode_version: 9.4
     target: ios-swift
     configuration: Debug
+  - xcode_version: 10.0
+    target: ios-swift
+    configuration: Debug
 
   ################
   # osx-swift
   ################
-  # Skip 9.2/9.3/9.4 Debug
+  # Skip 9.2/9.3/9.4/10.0 Debug
   - xcode_version: 9.2
     target: osx-swift
     configuration: Debug
@@ -117,11 +132,14 @@ exclude:
   - xcode_version: 9.4
     target: osx-swift
     configuration: Debug
+  - xcode_version: 10.0
+    target: osx-swift
+    configuration: Debug
 
   ################
   # watchos
   ################
-  # Skip 9.2/9.3/9.4 Debug
+  # Skip 9.2/9.3/9.4/10.0 Debug
   - xcode_version: 9.2
     target: watchos
     configuration: Debug
@@ -131,6 +149,9 @@ exclude:
   - xcode_version: 9.4
     target: watchos
     configuration: Debug
+  - xcode_version: 10.0
+    target: watchos
+    configuration: Debug
 
   ################
   # cocoapods
@@ -142,20 +163,22 @@ exclude:
   ################
   # swiftlint
   ################
-  # Just run on 10.0 Release
+  # Just run on 10.1 Release
   - xcode_version: 9.2
     target: swiftlint
   - xcode_version: 9.3
     target: swiftlint
   - xcode_version: 9.4
     target: swiftlint
+  - xcode_version: 10.0
+    target: swiftlint
   - target: swiftlint
     configuration: Debug
 
   ################
   # tvos
   ################
-  # Skip 9.2/9.3/9.4 Debug
+  # Skip 9.2/9.3/9.4/10.0 Debug
   - xcode_version: 9.2
     target: tvos
     configuration: Debug
@@ -165,33 +188,40 @@ exclude:
   - xcode_version: 9.4
     target: tvos
     configuration: Debug
+  - xcode_version: 10.0
+    target: tvos
+    configuration: Debug
 
   ################
   # osx-encryption
   ################
-  # Just run on 9.2/10.0 Release
+  # Just run on 9.2/10.1 Release
   - xcode_version: 9.3
     target: osx-encryption
   - xcode_version: 9.4
     target: osx-encryption
+  - xcode_version: 10.0
+    target: osx-encryption
   - target: osx-encryption
     configuration: Debug
 
   ################
   # osx-object-server
   ################
-  # Just run on 9.2/10.0 Release
+  # Just run on 9.2/10.1 Release
   - xcode_version: 9.3
     target: osx-object-server
   - xcode_version: 9.4
     target: osx-object-server
+  - xcode_version: 10.01
+    target: osx-object-server
   - target: osx-object-server
     configuration: Debug
 
   ################
   # ios-device-objc-ios8
   ################
-  # Just run on 9.2/9.4 Release
+  # Just run on 9.2/10.1 Release
   - xcode_version: 9.3
     target: ios-device-objc-ios8
   - xcode_version: 10.0
@@ -202,45 +232,53 @@ exclude:
   ################
   # ios-device-swift-ios8
   ################
-  # Just run on 9.2/10.0 Release
+  # Just run on 9.2/10.1 Release
   - xcode_version: 9.3
     target: ios-device-swift-ios8
   - xcode_version: 9.4
     target: ios-device-swift-ios8
+  - xcode_version: 10.1
+    target: ios-device-swift-ios8
   - target: ios-device-swift-ios8
     configuration: Debug
 
   ################
   # ios-device-objc-ios10
   ################
-  # Just run on 9.2/10.0 Release
+  # Just run on 9.2/10.1 Release
   - xcode_version: 9.3
     target: ios-device-objc-ios10
   - xcode_version: 9.4
     target: ios-device-objc-ios10
+  - xcode_version: 10.0
+    target: ios-device-objc-ios10
   - target: ios-device-objc-ios10
     configuration: Debug
 
   ################
   # ios-device-swift-ios10
   ################
-  # Just run on 9.2/10.0 Release
+  # Just run on 9.2/10.1 Release
   - xcode_version: 9.3
     target: ios-device-swift-ios10
   - xcode_version: 9.4
     target: ios-device-swift-ios10
+  - xcode_version: 10.1
+    target: ios-device-swift-ios10
   - target: ios-device-swift-ios10
     configuration: Debug
 
   ################
   # tvos-device
   ################
-  # Just run on 10.0 Release
+  # Just run on 10.1 Release
   - xcode_version: 9.2
     target: tvos-device
   - xcode_version: 9.3
     target: tvos-device
   - xcode_version: 9.4
     target: tvos-device
+  - xcode_version: 10.0
+    target: tvos-device
   - target: tvos-device
     configuration: Debug

+ 18 - 0
Carthage/Checkouts/realm-cocoa/CHANGELOG.md

@@ -1,3 +1,21 @@
+3.12.0 Release notes (2018-11-26)
+=============================================================
+
+### Enhancements
+
+* Add a User-Agent header to HTTP requests made to the Realm Object Server. By
+  default, this contains information about the Realm library version and your
+  app's bundle ID. The application identifier can be customized by setting
+  `RLMSyncManager.sharedManager.userAgent`/`SyncManager.shared.userAgent` prior
+  to opening a synchronized Realm.
+  (PR: https://github.com/realm/realm-cocoa/pull/6007).
+* Add Xcode 10.1 binary to the prebuilt package.
+
+### Compatibility
+
+* File format: Generates Realms with format v9 (Reads and upgrades all previous formats)
+* Realm Object Server: 3.11.0 or later.
+
 3.11.2 Release notes (2018-11-15)
 =============================================================
 

+ 3 - 3
Carthage/Checkouts/realm-cocoa/Jenkinsfile.releasability

@@ -1,8 +1,8 @@
-swiftVersions = ['3.2.3', '3.3', '4.0.3', '4.1', '4.1.2', '4.2']
+swiftVersions = ['3.2.3', '3.3', '3.3.2', '3.4', '3.4.1', '4.0.3', '4.1', '4.1.2', '4.2', '4.2.1']
 platforms = ['osx', 'ios', 'watchos', 'tvos']
 platformNames = ['osx': 'macOS', 'ios': 'iOS', 'watchos': 'watchOS', 'tvos': 'tvOS']
-carthageXcodeVersion = '9.4'
-carthageSwiftVersion = '3.3.2'
+carthageXcodeVersion = '10.1'
+carthageSwiftVersion = '3.4.1'
 
 def installationTest(platform, test, language) {
   return {

+ 1 - 0
Carthage/Checkouts/realm-cocoa/Realm/ObjectServerTests/RLMSyncTestCase.mm

@@ -526,6 +526,7 @@ static NSURL *syncDirectoryForChildProcess() {
                            withIntermediateDirectories:YES attributes:nil error:&error];
     s_managerForTest = [[RLMSyncManager alloc] initWithCustomRootDirectory:clientDataRoot];
     [RLMSyncManager sharedManager].logLevel = RLMSyncLogLevelOff;
+    [RLMSyncManager sharedManager].userAgent = self.name;
 }
 
 - (void)tearDown {

+ 12 - 2
Carthage/Checkouts/realm-cocoa/Realm/RLMSyncManager.h

@@ -76,11 +76,21 @@ typedef void(^RLMSyncErrorReportingBlock)(NSError *, RLMSyncSession * _Nullable)
 @property (nullable, nonatomic, copy) RLMSyncErrorReportingBlock errorHandler;
 
 /**
- A reverse-DNS string uniquely identifying this application. In most cases this is automatically set by the SDK, and
- does not have to be explicitly configured.
+ A reverse-DNS string uniquely identifying this application. In most cases this
+ is automatically set by the SDK, and does not have to be explicitly configured.
  */
 @property (nonatomic, copy) NSString *appID;
 
+/**
+ A string identifying this application which is included in the User-Agent
+ header of sync connections. By default, this will be the application's bundle
+ identifier.
+
+ This property must be set prior to opening a synchronized Realm for the first
+ time. Any modifications made after opening a Realm will be ignored.
+ */
+@property (nonatomic, copy) NSString *userAgent;
+
 /**
  The logging threshold which newly opened synced Realms will use. Defaults to
  `RLMSyncLogLevelInfo`.

+ 16 - 1
Carthage/Checkouts/realm-cocoa/Realm/RLMSyncManager.mm

@@ -29,6 +29,10 @@
 #import "sync/sync_manager.hpp"
 #import "sync/sync_session.hpp"
 
+#if !defined(REALM_COCOA_VERSION)
+#import "RLMVersion.h"
+#endif
+
 using namespace realm;
 using Level = realm::util::Logger::Level;
 
@@ -110,7 +114,13 @@ static RLMSyncManager *s_sharedManager = nil;
         bool should_encrypt = !getenv("REALM_DISABLE_METADATA_ENCRYPTION") && !RLMIsRunningInPlayground();
         auto mode = should_encrypt ? SyncManager::MetadataMode::Encryption : SyncManager::MetadataMode::NoEncryption;
         rootDirectory = rootDirectory ?: [NSURL fileURLWithPath:RLMDefaultDirectoryForBundleIdentifier(nil)];
-        SyncManager::shared().configure(rootDirectory.path.UTF8String, mode, "", none, true);
+        @autoreleasepool {
+            bool isSwift = !!NSClassFromString(@"RealmSwiftObjectUtil");
+            auto userAgent = [[NSMutableString alloc] initWithFormat:@"Realm%@/%@",
+                              isSwift ? @"Swift" : @"ObjectiveC", REALM_COCOA_VERSION];
+            SyncManager::shared().configure(rootDirectory.path.UTF8String, mode, RLMStringDataWithNSString(userAgent), none, true);
+            SyncManager::shared().set_user_agent(RLMStringDataWithNSString(self.appID));
+        }
         return self;
     }
     return nil;
@@ -123,6 +133,11 @@ static RLMSyncManager *s_sharedManager = nil;
     return _appID;
 }
 
+- (void)setUserAgent:(NSString *)userAgent {
+    SyncManager::shared().set_user_agent(RLMStringDataWithNSString(userAgent));
+    _userAgent = userAgent;
+}
+
 #pragma mark - Passthrough properties
 
 - (RLMSyncLogLevel)logLevel {

+ 2 - 2
Carthage/Checkouts/realm-cocoa/Realm/Realm-Info.plist

@@ -17,11 +17,11 @@
 	<key>CFBundlePackageType</key>
 	<string>FMWK</string>
 	<key>CFBundleShortVersionString</key>
-	<string>3.11.2</string>
+	<string>3.12.0</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>
-	<string>3.11.2</string>
+	<string>3.12.0</string>
 	<key>NSHumanReadableCopyright</key>
 	<string>Copyright © 2014 Realm. All rights reserved.</string>
 	<key>NSPrincipalClass</key>

+ 11 - 2
Carthage/Checkouts/realm-cocoa/build.sh

@@ -1193,7 +1193,7 @@ EOM
 
     package-*-swift)
         PLATFORM=$(echo $COMMAND | cut -d - -f 2)
-        for version in 9.1 9.2 9.3 9.4 10.0; do
+        for version in 9.2 9.3 9.4 10.0 10.1; do
             REALM_XCODE_VERSION=$version
             REALM_SWIFT_VERSION=
             set_xcode_and_swift_versions
@@ -1206,7 +1206,8 @@ EOM
         ln -s swift-4.1 swift-3.3
         ln -s swift-4.1.2 swift-3.3.2
         ln -s swift-4.2 swift-3.4
-        zip --symlinks -r realm-swift-framework-$PLATFORM.zip swift-3.2.3 swift-3.3 swift-3.3.2 swift-3.4 swift-4.0.3 swift-4.1 swift-4.1.2 swift-4.2
+        ln -s swift-4.2.1 swift-3.4.1
+        zip --symlinks -r realm-swift-framework-$PLATFORM.zip swift-3.2.3 swift-3.3 swift-3.3.2 swift-3.4 swift-3.4.1 swift-4.0.3 swift-4.1 swift-4.1.2 swift-4.2 swift-4.2.1
         ;;
 
     package-*-swift-3.2.3)
@@ -1241,6 +1242,14 @@ EOM
         zip --symlinks -r realm-swift-framework-$PLATFORM-swift-3.4.zip swift-3.4
         ;;
 
+    package-*-swift-3.4.1)
+        PLATFORM=$(echo $COMMAND | cut -d - -f 2)
+        mkdir -p build/$PLATFORM
+        cd build/$PLATFORM
+        ln -s swift-4.2.1 swift-3.4.1
+        zip --symlinks -r realm-swift-framework-$PLATFORM-swift-3.4.1.zip swift-3.4.1
+        ;;
+
     package-*-swift-*)
         PLATFORM=$(echo $COMMAND | cut -d - -f 2)
         REALM_SWIFT_VERSION=$(echo $COMMAND | cut -d - -f 4)

+ 2 - 2
Carthage/Checkouts/realm-cocoa/dependencies.list

@@ -1,4 +1,4 @@
-VERSION=3.11.2
+VERSION=3.12.0
 REALM_CORE_VERSION=5.12.1
 REALM_SYNC_VERSION=3.13.3
-REALM_OBJECT_SERVER_VERSION=3.11.5
+REALM_OBJECT_SERVER_VERSION=3.13.1

+ 1 - 1
File Provider Extension/FileProviderData.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 27/05/18.
 //  Copyright © 2018 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
File Provider Extension/FileProviderEnumerator.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 26/03/18.
 //  Copyright © 2018 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
File Provider Extension/FileProviderExtension+Actions.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 28/05/18.
 //  Copyright © 2018 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
File Provider Extension/FileProviderExtension+Network.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 28/05/18.
 //  Copyright © 2018 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
File Provider Extension/FileProviderExtension+Thumbnail.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 28/05/18.
 //  Copyright © 2018 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
File Provider Extension/FileProviderExtension-Bridging-Header.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 24/05/17.
 //  Copyright © 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
File Provider Extension/FileProviderExtension.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 26/03/18.
 //  Copyright © 2018 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
File Provider Extension/FileProviderItem.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 26/03/18.
 //  Copyright © 2018 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 22 - 157
Nextcloud.xcodeproj/project.pbxproj

@@ -124,9 +124,11 @@
 		F72D1040210B77EA009C96B7 /* libcrypto.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F70A63061D5B3467004E2AA5 /* libcrypto.a */; };
 		F72D1041210B77ED009C96B7 /* libssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F70A63071D5B3467004E2AA5 /* libssl.a */; };
 		F72D1042210B783D009C96B7 /* NCEndToEndEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = F70CAE391F8CF31A008125FD /* NCEndToEndEncryption.m */; };
+		F72E0B9D21AD60BC00898D7B /* WeScan.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F72E0B9C21AD60BC00898D7B /* WeScan.framework */; };
 		F732BA061D76CE1500E9878B /* CCNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F732BA041D76CE1500E9878B /* CCNetworking.m */; };
 		F732BA0B1D76DBA500E9878B /* CCNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F732BA041D76CE1500E9878B /* CCNetworking.m */; };
 		F733B65221997CC2001C1FFA /* TLPhotoPicker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F733B65121997CC1001C1FFA /* TLPhotoPicker.framework */; };
+		F734A8BF21B59137009DE2E8 /* WKCookieWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F734A8BE21B59137009DE2E8 /* WKCookieWebView.swift */; };
 		F7381EE1218218C9000B1560 /* NCOffline.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7381EDA218218C9000B1560 /* NCOffline.swift */; };
 		F7381EE5218218C9000B1560 /* NCOffline.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F7381EDE218218C9000B1560 /* NCOffline.storyboard */; };
 		F738E8421F90FFD100F95C8E /* NCManageEndToEndEncryption.m in Sources */ = {isa = PBXBuildFile; fileRef = F738E8411F90FFD100F95C8E /* NCManageEndToEndEncryption.m */; };
@@ -246,29 +248,6 @@
 		F754EECB21772B6100BB1CDF /* DropdownMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = F754EEC721772B6100BB1CDF /* DropdownMenu.swift */; };
 		F754EECC21772B6100BB1CDF /* SectionHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = F754EEC821772B6100BB1CDF /* SectionHeader.swift */; };
 		F755BD9B20594AC7008C5FBB /* NCService.swift in Sources */ = {isa = PBXBuildFile; fileRef = F755BD9A20594AC7008C5FBB /* NCService.swift */; };
-		F758B43E212C516300515F55 /* ImageScannerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B420212C516300515F55 /* ImageScannerController.swift */; };
-		F758B43F212C516300515F55 /* RectangleFeaturesFunnel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B422212C516300515F55 /* RectangleFeaturesFunnel.swift */; };
-		F758B440212C516300515F55 /* CaptureSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B423212C516300515F55 /* CaptureSessionManager.swift */; };
-		F758B441212C516300515F55 /* ShutterButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B424212C516300515F55 /* ShutterButton.swift */; };
-		F758B442212C516300515F55 /* CloseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B425212C516300515F55 /* CloseButton.swift */; };
-		F758B443212C516300515F55 /* ScannerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B426212C516300515F55 /* ScannerViewController.swift */; };
-		F758B444212C516300515F55 /* AVCaptureVideoOrientation+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B428212C516300515F55 /* AVCaptureVideoOrientation+Utils.swift */; };
-		F758B445212C516300515F55 /* CGPoint+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B429212C516300515F55 /* CGPoint+Utils.swift */; };
-		F758B446212C516300515F55 /* CGAffineTransform+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B42A212C516300515F55 /* CGAffineTransform+Utils.swift */; };
-		F758B447212C516300515F55 /* CGRect+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B42B212C516300515F55 /* CGRect+Utils.swift */; };
-		F758B448212C516300515F55 /* Array+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B42C212C516300515F55 /* Array+Utils.swift */; };
-		F758B449212C516300515F55 /* UIImage+Orientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B42D212C516300515F55 /* UIImage+Orientation.swift */; };
-		F758B44A212C516300515F55 /* UIImage+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B42E212C516300515F55 /* UIImage+Utils.swift */; };
-		F758B44B212C516300515F55 /* CIRectangleFeature+Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B42F212C516300515F55 /* CIRectangleFeature+Utils.swift */; };
-		F758B44C212C516300515F55 /* ZoomGestureController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B431212C516300515F55 /* ZoomGestureController.swift */; };
-		F758B44D212C516300515F55 /* EditScanViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B432212C516300515F55 /* EditScanViewController.swift */; };
-		F758B44E212C516300515F55 /* EditScanCornerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B435212C516300515F55 /* EditScanCornerView.swift */; };
-		F758B44F212C516300515F55 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B436212C516300515F55 /* Error.swift */; };
-		F758B450212C516300515F55 /* RectangleDetector.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B437212C516300515F55 /* RectangleDetector.swift */; };
-		F758B451212C516300515F55 /* QuadrilateralView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B438212C516300515F55 /* QuadrilateralView.swift */; };
-		F758B452212C516300515F55 /* Quadrilateral.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B439212C516300515F55 /* Quadrilateral.swift */; };
-		F758B453212C516300515F55 /* ReviewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B43B212C516300515F55 /* ReviewViewController.swift */; };
-		F758B454212C516300515F55 /* Transformable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B43D212C516300515F55 /* Transformable.swift */; };
 		F758B45A212C564000515F55 /* Scan.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F758B457212C564000515F55 /* Scan.storyboard */; };
 		F758B45E212C569D00515F55 /* ScanCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B45D212C569C00515F55 /* ScanCell.swift */; };
 		F758B460212C56A400515F55 /* ScanCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758B45F212C56A400515F55 /* ScanCollectionView.swift */; };
@@ -435,6 +414,9 @@
 		F7B2DEF11F976859007CF4D2 /* english.txt in Resources */ = {isa = PBXBuildFile; fileRef = F7B2DEED1F976785007CF4D2 /* english.txt */; };
 		F7B3A4EE1E97818A000DACE8 /* CCLoginWeb.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7B3A4ED1E97818A000DACE8 /* CCLoginWeb.swift */; };
 		F7B4F1CB1F44356F00B53B42 /* NCUchardet.m in Sources */ = {isa = PBXBuildFile; fileRef = F7B4F1C81F44356F00B53B42 /* NCUchardet.m */; };
+		F7B6F70121BD0DD3007D194D /* DZNEmptyDataSet.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F7C40BE621998F410004137E /* DZNEmptyDataSet.framework */; };
+		F7B6F70221BD0E6D007D194D /* MBProgressHUD.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F7C40BF22199978B0004137E /* MBProgressHUD.framework */; };
+		F7B6F70321BD0EA0007D194D /* JDStatusBarNotification.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F7C40BEC219993330004137E /* JDStatusBarNotification.framework */; };
 		F7BAADC81ED5A87C00B7EAD4 /* NCDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BAADB41ED5A87C00B7EAD4 /* NCDatabase.swift */; };
 		F7BAADC91ED5A87C00B7EAD4 /* NCDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BAADB41ED5A87C00B7EAD4 /* NCDatabase.swift */; };
 		F7BAADCB1ED5A87C00B7EAD4 /* NCManageDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7BAADB51ED5A87C00B7EAD4 /* NCManageDatabase.swift */; };
@@ -760,6 +742,7 @@
 		F72D100C210B6B16009C96B7 /* Notification Service Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Notification Service Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; };
 		F72D100E210B6B17009C96B7 /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = "<group>"; };
 		F72D1019210B7394009C96B7 /* NotificationServiceExtension-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NotificationServiceExtension-Bridging-Header.h"; sourceTree = "<group>"; };
+		F72E0B9C21AD60BC00898D7B /* WeScan.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WeScan.framework; path = Carthage/Build/iOS/WeScan.framework; sourceTree = "<group>"; };
 		F73049B81CB567F000C7C320 /* NSString+TruncateToWidth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+TruncateToWidth.h"; sourceTree = "<group>"; };
 		F73049B91CB567F000C7C320 /* NSString+TruncateToWidth.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+TruncateToWidth.m"; sourceTree = "<group>"; };
 		F7320934201B812F008A0888 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = "<group>"; };
@@ -767,6 +750,7 @@
 		F732BA031D76CE1500E9878B /* CCNetworking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CCNetworking.h; sourceTree = "<group>"; };
 		F732BA041D76CE1500E9878B /* CCNetworking.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CCNetworking.m; sourceTree = "<group>"; };
 		F733B65121997CC1001C1FFA /* TLPhotoPicker.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TLPhotoPicker.framework; path = Carthage/Build/iOS/TLPhotoPicker.framework; sourceTree = "<group>"; };
+		F734A8BE21B59137009DE2E8 /* WKCookieWebView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WKCookieWebView.swift; sourceTree = "<group>"; };
 		F7381EDA218218C9000B1560 /* NCOffline.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NCOffline.swift; sourceTree = "<group>"; };
 		F7381EDE218218C9000B1560 /* NCOffline.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = NCOffline.storyboard; sourceTree = "<group>"; };
 		F738E8401F90FFD100F95C8E /* NCManageEndToEndEncryption.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NCManageEndToEndEncryption.h; sourceTree = "<group>"; };
@@ -950,30 +934,6 @@
 		F754EEC721772B6100BB1CDF /* DropdownMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DropdownMenu.swift; sourceTree = "<group>"; };
 		F754EEC821772B6100BB1CDF /* SectionHeader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SectionHeader.swift; sourceTree = "<group>"; };
 		F755BD9A20594AC7008C5FBB /* NCService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NCService.swift; sourceTree = "<group>"; };
-		F758B420212C516300515F55 /* ImageScannerController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageScannerController.swift; sourceTree = "<group>"; };
-		F758B422212C516300515F55 /* RectangleFeaturesFunnel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RectangleFeaturesFunnel.swift; sourceTree = "<group>"; };
-		F758B423212C516300515F55 /* CaptureSessionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CaptureSessionManager.swift; sourceTree = "<group>"; };
-		F758B424212C516300515F55 /* ShutterButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShutterButton.swift; sourceTree = "<group>"; };
-		F758B425212C516300515F55 /* CloseButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CloseButton.swift; sourceTree = "<group>"; };
-		F758B426212C516300515F55 /* ScannerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScannerViewController.swift; sourceTree = "<group>"; };
-		F758B428212C516300515F55 /* AVCaptureVideoOrientation+Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AVCaptureVideoOrientation+Utils.swift"; sourceTree = "<group>"; };
-		F758B429212C516300515F55 /* CGPoint+Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGPoint+Utils.swift"; sourceTree = "<group>"; };
-		F758B42A212C516300515F55 /* CGAffineTransform+Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGAffineTransform+Utils.swift"; sourceTree = "<group>"; };
-		F758B42B212C516300515F55 /* CGRect+Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CGRect+Utils.swift"; sourceTree = "<group>"; };
-		F758B42C212C516300515F55 /* Array+Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Array+Utils.swift"; sourceTree = "<group>"; };
-		F758B42D212C516300515F55 /* UIImage+Orientation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+Orientation.swift"; sourceTree = "<group>"; };
-		F758B42E212C516300515F55 /* UIImage+Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+Utils.swift"; sourceTree = "<group>"; };
-		F758B42F212C516300515F55 /* CIRectangleFeature+Utils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CIRectangleFeature+Utils.swift"; sourceTree = "<group>"; };
-		F758B431212C516300515F55 /* ZoomGestureController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZoomGestureController.swift; sourceTree = "<group>"; };
-		F758B432212C516300515F55 /* EditScanViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditScanViewController.swift; sourceTree = "<group>"; };
-		F758B433212C516300515F55 /* WeScan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeScan.h; sourceTree = "<group>"; };
-		F758B435212C516300515F55 /* EditScanCornerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EditScanCornerView.swift; sourceTree = "<group>"; };
-		F758B436212C516300515F55 /* Error.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Error.swift; sourceTree = "<group>"; };
-		F758B437212C516300515F55 /* RectangleDetector.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RectangleDetector.swift; sourceTree = "<group>"; };
-		F758B438212C516300515F55 /* QuadrilateralView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QuadrilateralView.swift; sourceTree = "<group>"; };
-		F758B439212C516300515F55 /* Quadrilateral.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Quadrilateral.swift; sourceTree = "<group>"; };
-		F758B43B212C516300515F55 /* ReviewViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReviewViewController.swift; sourceTree = "<group>"; };
-		F758B43D212C516300515F55 /* Transformable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Transformable.swift; sourceTree = "<group>"; };
 		F758B457212C564000515F55 /* Scan.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Scan.storyboard; sourceTree = "<group>"; };
 		F758B45D212C569C00515F55 /* ScanCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScanCell.swift; sourceTree = "<group>"; };
 		F758B45F212C56A400515F55 /* ScanCollectionView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScanCollectionView.swift; sourceTree = "<group>"; };
@@ -1431,6 +1391,9 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				F7B6F70321BD0EA0007D194D /* JDStatusBarNotification.framework in Frameworks */,
+				F7B6F70221BD0E6D007D194D /* MBProgressHUD.framework in Frameworks */,
+				F7B6F70121BD0DD3007D194D /* DZNEmptyDataSet.framework in Frameworks */,
 				F7C40C132199BA6A0004137E /* Realm.framework in Frameworks */,
 				F7C40C142199BA6E0004137E /* RealmSwift.framework in Frameworks */,
 				F79918A42199806500C2E308 /* UICKeyChainStore.framework in Frameworks */,
@@ -1476,6 +1439,7 @@
 				F7C40BE521998D5B0004137E /* MGSwipeTableCell.framework in Frameworks */,
 				F7C40BEB219991AC0004137E /* EARestrictedScrollView.framework in Frameworks */,
 				F7A3771A1EB2364A002856D3 /* Fabric.framework in Frameworks */,
+				F72E0B9D21AD60BC00898D7B /* WeScan.framework in Frameworks */,
 				F7063DED2199E55F003F38DA /* SVGKit.framework in Frameworks */,
 				F7C40BED219993330004137E /* JDStatusBarNotification.framework in Frameworks */,
 				F7063DEF2199E568003F38DA /* CocoaLumberjack.framework in Frameworks */,
@@ -2034,90 +1998,10 @@
 				F758B45F212C56A400515F55 /* ScanCollectionView.swift */,
 				F758B45D212C569C00515F55 /* ScanCell.swift */,
 				F758B457212C564000515F55 /* Scan.storyboard */,
-				F758B41F212C516300515F55 /* WeScan */,
 			);
 			path = Scan;
 			sourceTree = "<group>";
 		};
-		F758B41F212C516300515F55 /* WeScan */ = {
-			isa = PBXGroup;
-			children = (
-				F758B420212C516300515F55 /* ImageScannerController.swift */,
-				F758B421212C516300515F55 /* Scan */,
-				F758B427212C516300515F55 /* Extensions */,
-				F758B430212C516300515F55 /* Edit */,
-				F758B433212C516300515F55 /* WeScan.h */,
-				F758B434212C516300515F55 /* Common */,
-				F758B43A212C516300515F55 /* Review */,
-				F758B43C212C516300515F55 /* Protocols */,
-			);
-			path = WeScan;
-			sourceTree = "<group>";
-		};
-		F758B421212C516300515F55 /* Scan */ = {
-			isa = PBXGroup;
-			children = (
-				F758B422212C516300515F55 /* RectangleFeaturesFunnel.swift */,
-				F758B423212C516300515F55 /* CaptureSessionManager.swift */,
-				F758B424212C516300515F55 /* ShutterButton.swift */,
-				F758B425212C516300515F55 /* CloseButton.swift */,
-				F758B426212C516300515F55 /* ScannerViewController.swift */,
-			);
-			path = Scan;
-			sourceTree = "<group>";
-		};
-		F758B427212C516300515F55 /* Extensions */ = {
-			isa = PBXGroup;
-			children = (
-				F758B428212C516300515F55 /* AVCaptureVideoOrientation+Utils.swift */,
-				F758B429212C516300515F55 /* CGPoint+Utils.swift */,
-				F758B42A212C516300515F55 /* CGAffineTransform+Utils.swift */,
-				F758B42B212C516300515F55 /* CGRect+Utils.swift */,
-				F758B42C212C516300515F55 /* Array+Utils.swift */,
-				F758B42D212C516300515F55 /* UIImage+Orientation.swift */,
-				F758B42E212C516300515F55 /* UIImage+Utils.swift */,
-				F758B42F212C516300515F55 /* CIRectangleFeature+Utils.swift */,
-			);
-			path = Extensions;
-			sourceTree = "<group>";
-		};
-		F758B430212C516300515F55 /* Edit */ = {
-			isa = PBXGroup;
-			children = (
-				F758B431212C516300515F55 /* ZoomGestureController.swift */,
-				F758B432212C516300515F55 /* EditScanViewController.swift */,
-			);
-			path = Edit;
-			sourceTree = "<group>";
-		};
-		F758B434212C516300515F55 /* Common */ = {
-			isa = PBXGroup;
-			children = (
-				F758B435212C516300515F55 /* EditScanCornerView.swift */,
-				F758B436212C516300515F55 /* Error.swift */,
-				F758B437212C516300515F55 /* RectangleDetector.swift */,
-				F758B438212C516300515F55 /* QuadrilateralView.swift */,
-				F758B439212C516300515F55 /* Quadrilateral.swift */,
-			);
-			path = Common;
-			sourceTree = "<group>";
-		};
-		F758B43A212C516300515F55 /* Review */ = {
-			isa = PBXGroup;
-			children = (
-				F758B43B212C516300515F55 /* ReviewViewController.swift */,
-			);
-			path = Review;
-			sourceTree = "<group>";
-		};
-		F758B43C212C516300515F55 /* Protocols */ = {
-			isa = PBXGroup;
-			children = (
-				F758B43D212C516300515F55 /* Transformable.swift */,
-			);
-			path = Protocols;
-			sourceTree = "<group>";
-		};
 		F76185582198A28E00A65DC4 /* NCPhotosPickerViewController */ = {
 			isa = PBXGroup;
 			children = (
@@ -2520,8 +2404,9 @@
 			isa = PBXGroup;
 			children = (
 				F7B1FBB01E72E3D1001781FE /* Resources */,
-				F7B1FBBF1E72E3D1001781FE /* SwiftModalWebVC.swift */,
+				F734A8BE21B59137009DE2E8 /* WKCookieWebView.swift */,
 				F7B1FBC01E72E3D1001781FE /* SwiftWebVC.swift */,
+				F7B1FBBF1E72E3D1001781FE /* SwiftModalWebVC.swift */,
 				F7B1FBC11E72E3D1001781FE /* SwiftWebVCActivity.swift */,
 				F7B1FBC21E72E3D1001781FE /* SwiftWebVCActivityChrome.swift */,
 				F7B1FBC31E72E3D1001781FE /* SwiftWebVCActivitySafari.swift */,
@@ -2985,6 +2870,7 @@
 		F7FC7D541DC1F93700BB2C6A /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				F72E0B9C21AD60BC00898D7B /* WeScan.framework */,
 				F7063DF02199E56E003F38DA /* CocoaLumberjackSwift.framework */,
 				F7063DEE2199E568003F38DA /* CocoaLumberjack.framework */,
 				F7063DEC2199E55F003F38DA /* SVGKit.framework */,
@@ -3434,6 +3320,7 @@
 				"$(SRCROOT)/Carthage/Build/iOS/SVGKit.framework",
 				"$(SRCROOT)/Carthage/Build/iOS/CocoaLumberjack.framework",
 				"$(SRCROOT)/Carthage/Build/iOS/CocoaLumberjackSwift.framework",
+				"$(SRCROOT)/Carthage/Build/iOS/WeScan.framework",
 			);
 			outputPaths = (
 			);
@@ -3611,7 +3498,6 @@
 				F762CAFD1EACB66200B38484 /* XLFormInlineSelectorCell.m in Sources */,
 				F77B0DF21D118A16002130FE /* CCUploadFromOtherUpp.m in Sources */,
 				F754EECB21772B6100BB1CDF /* DropdownMenu.swift in Sources */,
-				F758B450212C516300515F55 /* RectangleDetector.swift in Sources */,
 				F77B0DF41D118A16002130FE /* CCMain.m in Sources */,
 				F7E9C41B20F4CA870040CF18 /* CCTransfers.m in Sources */,
 				F73B4F0D1F470D9100BBEE4B /* nsLatin1Prober.cpp in Sources */,
@@ -3625,9 +3511,7 @@
 				F7B0C0CD1EE7E7750033AC24 /* CCSynchronize.m in Sources */,
 				F754EEC921772B6100BB1CDF /* DropdownItem.swift in Sources */,
 				F77B0DFF1D118A16002130FE /* OCNetworking.m in Sources */,
-				F758B440212C516300515F55 /* CaptureSessionManager.swift in Sources */,
 				F73B4F081F470D9100BBEE4B /* nsEUCJPProber.cpp in Sources */,
-				F758B43F212C516300515F55 /* RectangleFeaturesFunnel.swift in Sources */,
 				F70022DA1EC4C9100080073F /* OCHTTPRequestOperation.m in Sources */,
 				F790110E21415BF600D7B136 /* NCViewerRichdocument.swift in Sources */,
 				F70022A11EC4C9100080073F /* AFHTTPSessionManager.m in Sources */,
@@ -3638,9 +3522,7 @@
 				F77B0E031D118A16002130FE /* CCShareInfoCMOC.m in Sources */,
 				F77B0E041D118A16002130FE /* UIImage+animatedGIF.m in Sources */,
 				F7D423881F0596C6009C9782 /* ReaderThumbView.m in Sources */,
-				F758B44B212C516300515F55 /* CIRectangleFeature+Utils.swift in Sources */,
 				F73B4EFE1F470D9100BBEE4B /* LangHungarianModel.cpp in Sources */,
-				F758B442212C516300515F55 /* CloseButton.swift in Sources */,
 				F7D4238A1F0596C6009C9782 /* ThumbsMainToolbar.m in Sources */,
 				F70022EC1EC4C9100080073F /* OCXMLSharedParser.m in Sources */,
 				F7F54D061E5B14C800E19C62 /* MWCaptionView.m in Sources */,
@@ -3658,7 +3540,6 @@
 				F73F537F1E929C8500F8678D /* CCMore.swift in Sources */,
 				F73B4EF71F470D9100BBEE4B /* LangBulgarianModel.cpp in Sources */,
 				F7F54D0C1E5B14C800E19C62 /* MWTapDetectingView.m in Sources */,
-				F758B444212C516300515F55 /* AVCaptureVideoOrientation+Utils.swift in Sources */,
 				F7B1FBC61E72E3D1001781FE /* SwiftModalWebVC.swift in Sources */,
 				F7A5541F204EF8AF008468EC /* TOScrollBar.m in Sources */,
 				F7A321651E9E37960069AD1B /* CCActivity.m in Sources */,
@@ -3670,7 +3551,6 @@
 				F7DFB7F2219C5C0000680748 /* NCCreateFormUploadFileText.swift in Sources */,
 				F762CB861EACB81000B38484 /* RECommonFunctions.m in Sources */,
 				F76C6F8E21943C8C0063591B /* NCActionSheetHeader.swift in Sources */,
-				F758B443212C516300515F55 /* ScannerViewController.swift in Sources */,
 				F750374F1DBFA91A008FB480 /* NSArray+PureLayout.m in Sources */,
 				F77B0E141D118A16002130FE /* CCError.m in Sources */,
 				F73B4F131F470D9100BBEE4B /* nsUniversalDetector.cpp in Sources */,
@@ -3688,8 +3568,6 @@
 				F762CB111EACB66200B38484 /* NSString+XLFormAdditions.m in Sources */,
 				F762CB9B1EACB84400B38484 /* TWMessageBarManager.m in Sources */,
 				F7D423871F0596C6009C9782 /* ReaderThumbsView.m in Sources */,
-				F758B451212C516300515F55 /* QuadrilateralView.swift in Sources */,
-				F758B44D212C516300515F55 /* EditScanViewController.swift in Sources */,
 				F77B0E201D118A16002130FE /* CCShareUserOC.m in Sources */,
 				F7B1FBCA1E72E3D1001781FE /* SwiftWebVCActivitySafari.swift in Sources */,
 				F7DFB7EB219C5A2E00680748 /* NCCreateMenuAdd.swift in Sources */,
@@ -3719,7 +3597,6 @@
 				F70022E91EC4C9100080073F /* OCXMLShareByLinkParser.m in Sources */,
 				F70022E31EC4C9100080073F /* OCXMLParser.m in Sources */,
 				F77B0E311D118A16002130FE /* CCExifGeo.m in Sources */,
-				F758B449212C516300515F55 /* UIImage+Orientation.swift in Sources */,
 				F73B4F0E1F470D9100BBEE4B /* nsMBCSGroupProber.cpp in Sources */,
 				F7EC9CBC21185F2000F1C5CE /* CCMedia.m in Sources */,
 				F7D423831F0596C6009C9782 /* ReaderThumbFetch.m in Sources */,
@@ -3741,10 +3618,8 @@
 				F7BAADC81ED5A87C00B7EAD4 /* NCDatabase.swift in Sources */,
 				F77B0E541D118A16002130FE /* CCMove.m in Sources */,
 				F7A5541E204EF8AF008468EC /* TOScrollBarGestureRecognizer.m in Sources */,
-				F758B452212C516300515F55 /* Quadrilateral.swift in Sources */,
 				F70022E61EC4C9100080073F /* OCXMLServerErrorsParser.m in Sources */,
 				F762CB171EACB66200B38484 /* XLFormRegexValidator.m in Sources */,
-				F758B44F212C516300515F55 /* Error.swift in Sources */,
 				F729B92D217A2F1B00FE2150 /* NCActionSheetHeaderView.swift in Sources */,
 				F73CC0691E813DFF006E3047 /* BKPasscodeDummyViewController.m in Sources */,
 				F762CB1A1EACB66200B38484 /* XLForm.m in Sources */,
@@ -3755,8 +3630,6 @@
 				F73B4EFB1F470D9100BBEE4B /* LangGermanModel.cpp in Sources */,
 				F73B4F061F470D9100BBEE4B /* nsEscCharsetProber.cpp in Sources */,
 				F7D4237D1F0596C6009C9782 /* ReaderContentView.m in Sources */,
-				F758B44E212C516300515F55 /* EditScanCornerView.swift in Sources */,
-				F758B445212C516300515F55 /* CGPoint+Utils.swift in Sources */,
 				F73B4EFA1F470D9100BBEE4B /* LangFrenchModel.cpp in Sources */,
 				F762CAF91EACB66200B38484 /* XLFormCheckCell.m in Sources */,
 				F762CB101EACB66200B38484 /* NSPredicate+XLFormAdditions.m in Sources */,
@@ -3798,7 +3671,6 @@
 				F7CA1ED720E7E3FE002CC65E /* PKDownloadButton.m in Sources */,
 				F72AAECB1E5C60C700BB17E1 /* AHKActionSheetViewController.m in Sources */,
 				F77B0E921D118A16002130FE /* CCCellMainTransfer.m in Sources */,
-				F758B44A212C516300515F55 /* UIImage+Utils.swift in Sources */,
 				F7B1FBC81E72E3D1001781FE /* SwiftWebVCActivity.swift in Sources */,
 				F77B0E981D118A16002130FE /* CCManageAccount.m in Sources */,
 				F762CB011EACB66200B38484 /* XLFormSelectorCell.m in Sources */,
@@ -3812,7 +3684,6 @@
 				F7CA1ED020E7E3FE002CC65E /* UIImage+PKDownloadButton.m in Sources */,
 				F7DFB7F4219C5CA800680748 /* NCCreateFormUploadScanDocument.swift in Sources */,
 				F73B4F011F470D9100BBEE4B /* LangThaiModel.cpp in Sources */,
-				F758B446212C516300515F55 /* CGAffineTransform+Utils.swift in Sources */,
 				F70022DD1EC4C9100080073F /* OCWebDAVClient.m in Sources */,
 				F73B4F001F470D9100BBEE4B /* LangSpanishModel.cpp in Sources */,
 				F70022BC1EC4C9100080073F /* OCExternalSites.m in Sources */,
@@ -3820,12 +3691,10 @@
 				F762CB031EACB66200B38484 /* XLFormStepCounterCell.m in Sources */,
 				F762CAF71EACB66200B38484 /* XLFormBaseCell.m in Sources */,
 				F70022E01EC4C9100080073F /* OCXMLListParser.m in Sources */,
-				F758B43E212C516300515F55 /* ImageScannerController.swift in Sources */,
 				F70022B31EC4C9100080073F /* OCActivity.m in Sources */,
+				F734A8BF21B59137009DE2E8 /* WKCookieWebView.swift in Sources */,
 				F70022D41EC4C9100080073F /* NSDate+ISO8601.m in Sources */,
-				F758B44C212C516300515F55 /* ZoomGestureController.swift in Sources */,
 				F762CB151EACB66200B38484 /* XLFormRowNavigationAccessoryView.m in Sources */,
-				F758B447212C516300515F55 /* CGRect+Utils.swift in Sources */,
 				F762CB0A1EACB66200B38484 /* XLFormDescriptor.m in Sources */,
 				F7D4238C1F0596C6009C9782 /* UIXToolbarView.m in Sources */,
 				F726EEEC1FED1C820030B9C8 /* NCEndToEndInitialize.swift in Sources */,
@@ -3856,18 +3725,14 @@
 				F7D423811F0596C6009C9782 /* ReaderMainToolbar.m in Sources */,
 				F762CB131EACB66200B38484 /* XLFormRightDetailCell.m in Sources */,
 				F7CA1ED820E7E3FE002CC65E /* PKBorderedButton.m in Sources */,
-				F758B441212C516300515F55 /* ShutterButton.swift in Sources */,
 				F7D4237B1F0596C6009C9782 /* ReaderContentPage.m in Sources */,
 				F73B4F0A1F470D9100BBEE4B /* nsEUCTWProber.cpp in Sources */,
 				F762CB871EACB81000B38484 /* REMenu.m in Sources */,
 				F762CB091EACB66200B38484 /* XLFormViewController.m in Sources */,
 				F762CB161EACB66200B38484 /* XLFormTextView.m in Sources */,
 				F75AC2431F1F62450073EC19 /* NCManageAutoUploadFileName.swift in Sources */,
-				F758B448212C516300515F55 /* Array+Utils.swift in Sources */,
-				F758B453212C516300515F55 /* ReviewViewController.swift in Sources */,
 				F79630EE215527D40015EEA5 /* NCViewerMedia.swift in Sources */,
 				F7CA1ED620E7E3FE002CC65E /* CALayer+PKDownloadButtonAnimations.m in Sources */,
-				F758B454212C516300515F55 /* Transformable.swift in Sources */,
 				F7ECBA6D1E239DCD003E6328 /* NCCreateFormUploadRichdocuments.swift in Sources */,
 				F758B45E212C569D00515F55 /* ScanCell.swift in Sources */,
 				F70022FE1EC4C9100080073F /* UtilsFramework.m in Sources */,
@@ -3986,7 +3851,7 @@
 				);
 				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/Share.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 9.1;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
 				LIBRARY_SEARCH_PATHS = "\"Libraries external\"/**";
 				OTHER_LDFLAGS = "-ObjC";
@@ -4028,7 +3893,7 @@
 				);
 				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/Share.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 9.1;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
 				LIBRARY_SEARCH_PATHS = "\"Libraries external\"/**";
 				OTHER_LDFLAGS = "-ObjC";
@@ -4266,7 +4131,7 @@
 				);
 				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/iOSClient.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 9.1;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
 				LIBRARY_SEARCH_PATHS = "\"Libraries external/openssl\"";
 				OTHER_LDFLAGS = "-ObjC";
@@ -4313,7 +4178,7 @@
 				);
 				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/iOSClient.plist";
-				IPHONEOS_DEPLOYMENT_TARGET = 9.1;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
 				LIBRARY_SEARCH_PATHS = "\"Libraries external/openssl\"";
 				OTHER_LDFLAGS = "-ObjC";
@@ -4376,7 +4241,7 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.1;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = (
@@ -4428,7 +4293,7 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 9.1;
+				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				OTHER_LDFLAGS = (
 					"-Obj-C",

+ 1 - 1
Notification Service Extension/NotificationService.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 27/07/18.
 //  Copyright © 2018 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
Notification Service Extension/NotificationServiceExtension-Bridging-Header.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 27/07/18.
 //  Copyright © 2018 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
Share/CCCellShareExt.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 27/01/16.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
Share/CCCellShareExt.m

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 29/07/15.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
Share/CCloadItemData.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 19/02/16.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
Share/ShareViewController.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 26/01/16.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
Share/ShareViewController.m

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 26/01/16.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/Activity/CCActivity.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 12/04/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/Activity/CCActivity.m

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 12/04/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/AppDelegate.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 04/09/14.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 11 - 45
iOSClient/AppDelegate.m

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 04/09/14.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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
@@ -152,24 +152,11 @@
         NSLog(@"[LOG] Something went wrong while configuring Firebase");
     }
     
-    if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max) {
-        
-        UIUserNotificationType allNotificationTypes =(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
-        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
-        
-        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
-        
-    } else {
-        
-        // iOS 10 or later
-#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
-        // For iOS 10 display notification (sent via APNS)
-        [UNUserNotificationCenter currentNotificationCenter].delegate = self;
-        UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
-        [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) {
-        }];
-#endif
-    }
+    // Display notification (sent via APNS)
+    [UNUserNotificationCenter currentNotificationCenter].delegate = self;
+    UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
+    [[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) {
+    }];
     
     [application registerForRemoteNotifications];
     [FIRMessaging messaging].delegate = self;
@@ -215,21 +202,16 @@
     self.timerProcessAutoDownloadUpload = [NSTimer scheduledTimerWithTimeInterval:k_timerProcessAutoDownloadUpload target:self selector:@selector(loadAutoDownloadUpload) userInfo:nil repeats:YES];
     self.timerUpdateApplicationIconBadgeNumber = [NSTimer scheduledTimerWithTimeInterval:k_timerUpdateApplicationIconBadgeNumber target:self selector:@selector(updateApplicationIconBadgeNumber) userInfo:nil repeats:YES];
 
-    // Registration Push Notification
-    UIUserNotificationType types = UIUserNotificationTypeSound | UIUserNotificationTypeBadge | UIUserNotificationTypeAlert;
-    UIUserNotificationSettings *notificationSettings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
-    [application registerUserNotificationSettings:notificationSettings];
-    
     // Fabric
     [Fabric with:@[[Crashlytics class]]];
     [self logUser];
     
     // Store review
-#if !TARGET_OS_SIMULATOR
-    NCStoreReview *review = [NCStoreReview new];
-    [review incrementAppRuns];
-    [review showStoreReview];
-#endif
+    if ([[NCUtility sharedInstance] isSimulatorOrTestFlight] == false) {
+        NCStoreReview *review = [NCStoreReview new];
+        [review incrementAppRuns];
+        [review showStoreReview];
+    }
     
     return YES;
 }
@@ -748,20 +730,12 @@
     item.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"tabBarFiles"] multiplier:2 color:[NCBrandColor sharedInstance].brandElement];
     item.selectedImage = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"tabBarFiles"] multiplier:2 color:[NCBrandColor sharedInstance].brandElement];
     
-    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 10.0) {
-        item.image = item.selectedImage = [UIImage imageNamed:@"tabBarFilesIOS9"];
-    }
-    
     // Favorites
     item = [tabBarController.tabBar.items objectAtIndex: k_tabBarApplicationIndexFavorite];
     [item setTitle:NSLocalizedString(@"_favorites_", nil)];
     item.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"tabBarFavorites"] multiplier:2 color:[NCBrandColor sharedInstance].brandElement];
     item.selectedImage = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"tabBarFavorites"] multiplier:2 color:[NCBrandColor sharedInstance].brandElement];
     
-    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 10.0) {
-        item.image = item.selectedImage = [UIImage imageNamed:@"tabBarFavoritesIOS9"];
-    }
-    
     // (PLUS)
     item = [tabBarController.tabBar.items objectAtIndex: k_tabBarApplicationIndexPlusHide];
     item.title = @"";
@@ -774,20 +748,12 @@
     item.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"tabBarMedia"] multiplier:2 color:[NCBrandColor sharedInstance].brandElement];
     item.selectedImage = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"tabBarMedia"] multiplier:2 color:[NCBrandColor sharedInstance].brandElement];
     
-    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 10.0) {
-        item.image = item.selectedImage = [UIImage imageNamed:@"tabBarMediaIOS9"];
-    }
-    
     // More
     item = [tabBarController.tabBar.items objectAtIndex: k_tabBarApplicationIndexMore];
     [item setTitle:NSLocalizedString(@"_more_", nil)];
     item.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"tabBarMore"] multiplier:2 color:[NCBrandColor sharedInstance].brandElement];
     item.selectedImage = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"tabBarMore"] multiplier:2 color:[NCBrandColor sharedInstance].brandElement];
     
-    if ([[[UIDevice currentDevice] systemVersion] floatValue] < 10.0) {
-        item.image = item.selectedImage = [UIImage imageNamed:@"tabBarMoreIOS9"];
-    }
-    
     // Plus Button
     UIImage *buttonImage = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"tabBarPlus"] multiplier:3 color:[NCBrandColor sharedInstance].brandElement];
     UIButton *buttonPlus = [UIButton buttonWithType:UIButtonTypeCustom];

+ 1 - 1
iOSClient/AutoUpload/NCAutoUpload.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 07/06/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/AutoUpload/NCAutoUpload.m

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 07/06/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 2 - 2
iOSClient/Brand/File_Provider_Extension.plist

@@ -17,9 +17,9 @@
 	<key>CFBundlePackageType</key>
 	<string>XPC!</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.22.6</string>
+	<string>2.22.7</string>
 	<key>CFBundleVersion</key>
-	<string>20</string>
+	<string>4</string>
 	<key>NSExtension</key>
 	<dict>
 		<key>NSExtensionFileProviderDocumentGroup</key>

+ 1 - 1
iOSClient/Brand/Intro/CCIntro.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 05/11/15.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 15 - 28
iOSClient/Brand/Intro/CCIntro.m

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 05/11/15.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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
@@ -64,18 +64,6 @@
 {
 }
 
-- (void)login:(id)sender
-{
-    selector = k_intro_login;
-    [self.intro hideWithFadeOutDuration:0.7];
-}
-
-- (void)signUp:(id)sender
-{
-    selector = k_intro_signup;
-    [self.intro hideWithFadeOutDuration:0.7];
-}
-
 - (void)show
 {
     [self showIntro];
@@ -230,42 +218,41 @@
 }
 
 #pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Web =====
+#pragma mark ===== Action =====
 #pragma --------------------------------------------------------------------------------------------
 
+- (void)login:(id)sender
+{
+    selector = k_intro_login;
+    [self.intro hideWithFadeOutDuration:0.7];
+}
+
+- (void)signUp:(id)sender
+{
+    selector = k_intro_signup;
+    [self.intro hideWithFadeOutDuration:0.7];
+}
+
 - (void)host:(id)sender
 {
     AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
     
-    SwiftModalWebVC *webVC = [[SwiftModalWebVC alloc] initWithUrlString:[NCBrandOptions sharedInstance].linkLoginHost colorText:[UIColor whiteColor] colorDoneButton:[UIColor blackColor] doneButtonVisible:YES hideToolbar:NO];    
+    SwiftModalWebVC *webVC = [[SwiftModalWebVC alloc] initWithUrlString:[NCBrandOptions sharedInstance].linkLoginHost colorText:[UIColor whiteColor] colorDoneButton:[UIColor blackColor] doneButtonVisible:YES hideToolbar:NO];
     webVC.delegateWeb = self;
     
     [appDelegate.window.rootViewController presentViewController:webVC animated:YES completion:nil];
 }
-    
 - (void)didStartLoading
 {
-    
 }
-
 - (void)didReceiveServerRedirectForProvisionalNavigationWithUrl:(NSURL *)url
 {
-    
 }
-
 - (void)didFinishLoadingWithSuccess:(BOOL)success url:(NSURL *)url
 {
-    
 }
-
 - (void)webDismiss
 {
-    
-}
-
-- (void)decidePolicyForNavigationAction:(WKWebView *)webView decidePolicyFor:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
-{
-    decisionHandler(WKNavigationActionPolicyAllow);
 }
 
 @end

+ 1 - 1
iOSClient/Brand/NCBrand.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 24/04/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/Brand/NCBridgeSwift.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 11/05/17.
 //  Copyright © 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 2 - 2
iOSClient/Brand/Notification_Service_Extension.plist

@@ -17,9 +17,9 @@
 	<key>CFBundlePackageType</key>
 	<string>XPC!</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.22.6</string>
+	<string>2.22.7</string>
 	<key>CFBundleVersion</key>
-	<string>20</string>
+	<string>4</string>
 	<key>NSExtension</key>
 	<dict>
 		<key>NSExtensionPointIdentifier</key>

+ 2 - 2
iOSClient/Brand/Share.plist

@@ -17,9 +17,9 @@
 	<key>CFBundlePackageType</key>
 	<string>XPC!</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.22.6</string>
+	<string>2.22.7</string>
 	<key>CFBundleVersion</key>
-	<string>20</string>
+	<string>4</string>
 	<key>NSAppTransportSecurity</key>
 	<dict>
 		<key>NSAllowsArbitraryLoads</key>

+ 2 - 2
iOSClient/Brand/iOSClient.plist

@@ -46,11 +46,11 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>2.22.6</string>
+	<string>2.22.7</string>
 	<key>CFBundleSignature</key>
 	<string>????</string>
 	<key>CFBundleVersion</key>
-	<string>20</string>
+	<string>4</string>
 	<key>FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED</key>
 	<true/>
 	<key>Fabric</key>

+ 2 - 1
iOSClient/CCGlobal.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 13/10/14.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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
@@ -302,6 +302,7 @@
 
 // Trash Version
 #define k_trash_version_available                       14
+#define k_trash_version_available_more_fix              15
 
 // Cell Reload Data Source
 #define k_action_NULL                                   0

+ 1 - 1
iOSClient/CryptoCloud.pch

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 17/09/15.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 2 - 1
iOSClient/Database/NCDatabase.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 06/05/17.
 //  Copyright © 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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
@@ -94,6 +94,7 @@ class tableCapabilities: Object {
     @objc dynamic var endToEndEncryption: Bool = false
     @objc dynamic var endToEndEncryptionVersion = ""
     let richdocumentsMimetypes = List<String>()
+    @objc dynamic var richdocumentsDirectEditing: Bool = false
 }
 
 class tableCertificates: Object {

+ 14 - 6
iOSClient/Database/NCManageDatabase.swift

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 06/05/17.
 //  Copyright © 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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
@@ -57,7 +57,7 @@ class NCManageDatabase: NSObject {
         let config = Realm.Configuration(
         
             fileURL: dirGroup?.appendingPathComponent("\(k_appDatabaseNextcloud)/\(k_databaseDefault)"),
-            schemaVersion: 32,
+            schemaVersion: 33,
             
             // 10 : Version 2.18.0
             // 11 : Version 2.18.2
@@ -82,6 +82,7 @@ class NCManageDatabase: NSObject {
             // 30 : Version 2.22.6.0
             // 31 : Version 2.22.6.3
             // 32 : Version 2.22.6.10
+            // 33 : Version 2.22.7.1
             
             migrationBlock: { migration, oldSchemaVersion in
                 // We haven’t migrated anything yet, so oldSchemaVersion == 0
@@ -676,6 +677,7 @@ class NCManageDatabase: NSObject {
                 for mimeType in capabilities.richdocumentsMimetypes {
                     resultCapabilities.richdocumentsMimetypes.append(mimeType as! String)
                 }
+                resultCapabilities.richdocumentsDirectEditing = capabilities.richdocumentsDirectEditing
                 
                 if result == nil {
                     realm.add(resultCapabilities)
@@ -2573,21 +2575,27 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func deleteTrash(fileID: String) {
+    @objc func deleteTrash(fileID: String?) {
         
         guard let tableAccount = self.getAccountActive() else {
             return
         }
         
         let realm = try! Realm()
+        var predicate = NSPredicate()
         
         realm.beginWrite()
         
-        guard let result = realm.objects(tableTrash.self).filter("account = %@ AND fileID = %@", tableAccount.account, fileID).first else {
-            realm.cancelWrite()
-            return
+        if fileID == nil {
+            
+            predicate = NSPredicate(format: "account == %@", tableAccount.account)
+            
+        } else {
+            
+            predicate = NSPredicate(format: "account = %@ AND fileID = %@", tableAccount.account, fileID!)
         }
         
+        let result = realm.objects(tableTrash.self).filter(predicate)
         realm.delete(result)
         
         do {

+ 1 - 1
iOSClient/Favorites/CCFavorites.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 16/01/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/Favorites/CCFavorites.m

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 16/01/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 0 - 23
iOSClient/Images.xcassets/tabBarFavoritesIOS9.imageset/Contents.json

@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarFavoritesIOS9.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarFavoritesIOS9@2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarFavoritesIOS9@3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

BIN
iOSClient/Images.xcassets/tabBarFavoritesIOS9.imageset/tabBarFavoritesIOS9.png


BIN
iOSClient/Images.xcassets/tabBarFavoritesIOS9.imageset/tabBarFavoritesIOS9@2x.png


BIN
iOSClient/Images.xcassets/tabBarFavoritesIOS9.imageset/tabBarFavoritesIOS9@3x.png


+ 0 - 23
iOSClient/Images.xcassets/tabBarFilesIOS9.imageset/Contents.json

@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarFilesIOS9.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarFilesIOS9@2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarFilesIOS9@3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

BIN
iOSClient/Images.xcassets/tabBarFilesIOS9.imageset/tabBarFilesIOS9.png


BIN
iOSClient/Images.xcassets/tabBarFilesIOS9.imageset/tabBarFilesIOS9@2x.png


BIN
iOSClient/Images.xcassets/tabBarFilesIOS9.imageset/tabBarFilesIOS9@3x.png


+ 0 - 23
iOSClient/Images.xcassets/tabBarMediaIOS9.imageset/Contents.json

@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarMediaIOS9.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarMediaIOS9@2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarMediaIOS9@3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

BIN
iOSClient/Images.xcassets/tabBarMediaIOS9.imageset/tabBarMediaIOS9.png


BIN
iOSClient/Images.xcassets/tabBarMediaIOS9.imageset/tabBarMediaIOS9@2x.png


BIN
iOSClient/Images.xcassets/tabBarMediaIOS9.imageset/tabBarMediaIOS9@3x.png


+ 0 - 23
iOSClient/Images.xcassets/tabBarMoreIOS9.imageset/Contents.json

@@ -1,23 +0,0 @@
-{
-  "images" : [
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarMoreIOS9.png",
-      "scale" : "1x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarMoreIOS9@2x.png",
-      "scale" : "2x"
-    },
-    {
-      "idiom" : "universal",
-      "filename" : "tabBarMoreIOS9@3x.png",
-      "scale" : "3x"
-    }
-  ],
-  "info" : {
-    "version" : 1,
-    "author" : "xcode"
-  }
-}

BIN
iOSClient/Images.xcassets/tabBarMoreIOS9.imageset/tabBarMoreIOS9.png


BIN
iOSClient/Images.xcassets/tabBarMoreIOS9.imageset/tabBarMoreIOS9@2x.png


BIN
iOSClient/Images.xcassets/tabBarMoreIOS9.imageset/tabBarMoreIOS9@3x.png


+ 1 - 1
iOSClient/Library/AHKActionSheet/AHKActionSheet.h

@@ -9,7 +9,7 @@
 //  Modify by Marino Faggiana on 11/01/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 
 #import <UIKit/UIKit.h>

+ 1 - 1
iOSClient/Library/AHKActionSheet/AHKActionSheet.m

@@ -9,7 +9,7 @@
 //  Modify by Marino Faggiana on 11/01/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 
 #import <QuartzCore/QuartzCore.h>

+ 1 - 1
iOSClient/Library/NCUchardet/NCUchardet.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 16/08/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/Library/NCUchardet/NCUchardet.m

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 16/08/17.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/Library/OCCommunicationLib/NCRichDocumentTemplate.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 14/11/2018.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/Library/OCCommunicationLib/NCRichDocumentTemplate.m

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 14/11/2018.
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/Library/OCCommunicationLib/OCActivity.h

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 01/03/17.
 //  Copyright © 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 1 - 1
iOSClient/Library/OCCommunicationLib/OCActivity.m

@@ -5,7 +5,7 @@
 //  Created by Marino Faggiana on 01/03/17.
 //  Copyright © 2017 Marino Faggiana. All rights reserved.
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //
 //  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

+ 2 - 1
iOSClient/Library/OCCommunicationLib/OCCapabilities.h

@@ -84,6 +84,7 @@
 @property (nonatomic, strong) NSString *endToEndEncryptionVersion;
 
 // Richdocuments
-@property (nonatomic, strong) NSArray *RichdocumentsMimetypes;
+@property (nonatomic, strong) NSArray *richdocumentsMimetypes;
+@property (nonatomic) BOOL richdocumentsDirectEditing;
 
 @end

+ 1 - 1
iOSClient/Library/OCCommunicationLib/OCCapabilities.m

@@ -39,7 +39,7 @@
         
         self.spreedFeatures = @"";
         
-        self.RichdocumentsMimetypes = [NSArray new];
+        self.richdocumentsMimetypes = [NSArray new];
     }
     return self;
 }

+ 3 - 1
iOSClient/Library/OCCommunicationLib/OCCommunication.h

@@ -28,7 +28,7 @@
 //  Add : Support for Favorite
 //  Add : getActivityServer
 //
-//  Author Marino Faggiana <m.faggiana@twsweb.it>
+//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
 //  Copyright (c) 2017 Marino Faggiana. All rights reserved.
 //
 
@@ -963,6 +963,8 @@ typedef enum {
 
 - (void)listingTrash:(NSString *)path onCommunication:(OCCommunication *)sharedOCCommunication successRequest:(void(^)(NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer)) successRequest failureRequest:(void(^)(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer)) failureRequest;
 
+- (void)emptyTrash:(NSString *)path onCommunication:(OCCommunication *)sharedOCCommunication successRequest:(void(^)(NSHTTPURLResponse *response, NSString *redirectedServer)) successRequest failureRequest:(void(^)(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer)) failureRequest;
+
 @end
 
 

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно