diff options
author | jan Iversen <jani@libreoffice.org> | 2017-03-14 09:08:00 +0100 |
---|---|---|
committer | jan iversen <jani@libreoffice.org> | 2017-03-21 16:59:34 +0000 |
commit | 46a71fa01a2268a0a6e02ed04ece3094153ab247 (patch) | |
tree | 12c7b180049867be5f4bb92cf7dbb1fc94e6646f /ios | |
parent | 17307a10537fbd1f04c683c2f93bf880173ce3b4 (diff) |
ios LibreOfficeLight iCloud support
Added iCloud document support to fileManager
Change-Id: I7c8f78b6b148926398b170ee8a32d3c09413205f
Reviewed-on: https://gerrit.libreoffice.org/35503
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: jan iversen <jani@libreoffice.org>
Diffstat (limited to 'ios')
8 files changed, 152 insertions, 40 deletions
diff --git a/ios/experimental/LibreOfficeLight/Default-568h@2x.png b/ios/experimental/LibreOfficeLight/Default-568h@2x.png Binary files differnew file mode 100644 index 000000000000..0891b7aabfcf --- /dev/null +++ b/ios/experimental/LibreOfficeLight/Default-568h@2x.png diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj b/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj index 82f9ed2c73a9..8cd983ccb6ec 100644 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 392ED9B31E5E4B03005C8435 /* ViewPrintManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */; }; + 397275401E782CDC006ACDCC /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3972753F1E782CDC006ACDCC /* Default-568h@2x.png */; }; 397868D61E59A3EA007F9248 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 397868D81E59A3EA007F9248 /* LaunchScreen.xib */; }; 397E08FE1E597BD8001374E0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 397E08FD1E597BD8001374E0 /* AppDelegate.swift */; }; 397E09031E597BD8001374E0 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 397E09011E597BD8001374E0 /* Main.storyboard */; }; @@ -53,6 +54,8 @@ /* Begin PBXFileReference section */ 392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewPrintManager.swift; path = LibreOfficeLight/ViewPrintManager.swift; sourceTree = SOURCE_ROOT; }; + 397275391E77D9F1006ACDCC /* LibreOfficeLight.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = LibreOfficeLight.entitlements; sourceTree = "<group>"; }; + 3972753F1E782CDC006ACDCC /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; }; 397868D71E59A3EA007F9248 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/LaunchScreen.xib; sourceTree = "<group>"; }; 397E08FA1E597BD8001374E0 /* LibreOfficeLight.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LibreOfficeLight.app; sourceTree = BUILT_PRODUCTS_DIR; }; 397E08FD1E597BD8001374E0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = LibreOfficeLight/AppDelegate.swift; sourceTree = SOURCE_ROOT; }; @@ -125,15 +128,24 @@ path = LibreOfficeLight; sourceTree = SOURCE_ROOT; }; + 3972753A1E77D9F7006ACDCC /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = "<group>"; + }; 397E08F11E597BD8001374E0 = { isa = PBXGroup; children = ( + 3972753F1E782CDC006ACDCC /* Default-568h@2x.png */, 39B084E41E5F0B5200682A59 /* Resources */, 3911D89F1E5993600050D6BC /* Support files */, 397E08FC1E597BD8001374E0 /* LibreOfficeLight */, 397E09141E597BD8001374E0 /* LibreOfficeLightTests */, 397E091F1E597BD8001374E0 /* LibreOfficeLightUITests */, 397E08FB1E597BD8001374E0 /* Products */, + 3972753A1E77D9F7006ACDCC /* Frameworks */, ); sourceTree = "<group>"; }; @@ -150,6 +162,7 @@ 397E08FC1E597BD8001374E0 /* LibreOfficeLight */ = { isa = PBXGroup; children = ( + 397275391E77D9F1006ACDCC /* LibreOfficeLight.entitlements */, 39A83A8E1E5F471D00D0C683 /* lokit.c */, 397E08FD1E597BD8001374E0 /* AppDelegate.swift */, 3992D8571E5B761700BEA987 /* ViewController.swift */, @@ -268,8 +281,17 @@ TargetAttributes = { 397E08F91E597BD8001374E0 = { CreatedOnToolsVersion = 8.2; + DevelopmentTeam = TM977DU7EF; LastSwiftMigration = 0820; ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Push = { + enabled = 0; + }; + com.apple.iCloud = { + enabled = 1; + }; + }; }; 397E09101E597BD8001374E0 = { CreatedOnToolsVersion = 8.2; @@ -312,6 +334,7 @@ 39B08BD71E5F0BB600682A59 /* rc in Resources */, 39B08B9E1E5F0BB600682A59 /* offapi.rdb in Resources */, 39B084E31E5F0A9600682A59 /* lo.xcconfig in Resources */, + 397275401E782CDC006ACDCC /* Default-568h@2x.png in Resources */, 397868D61E59A3EA007F9248 /* LaunchScreen.xib in Resources */, 39B08B9F1E5F0BB600682A59 /* oovbaapi.rdb in Resources */, 39B08B9D1E5F0BB600682A59 /* fundamentalrc in Resources */, @@ -550,21 +573,25 @@ isa = XCBuildConfiguration; baseConfigurationReference = 39B084E21E5F0A9600682A59 /* lo.xcconfig */; buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = NO; CLANG_WARN_INFINITE_RECURSION = NO; + CODE_SIGN_ENTITLEMENTS = LibreOfficeLight/LibreOfficeLight.entitlements; + DEVELOPMENT_TEAM = TM977DU7EF; ENABLE_TESTABILITY = NO; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "LibreOfficeLight/LibreOfficeLight-Prefix.pch"; GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = LibreOfficeLight/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = LibreOfficeLight; + PRODUCT_BUNDLE_IDENTIFIER = com.jani.Editors.LibreOfficeLight; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "LibreOfficeLight/lokit-Bridging-Header.h"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 3.0; + "VALID_ARCHS[sdk=*]" = arm64; }; name = Debug; }; @@ -572,21 +599,25 @@ isa = XCBuildConfiguration; baseConfigurationReference = 39B084E21E5F0A9600682A59 /* lo.xcconfig */; buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = NO; CLANG_WARN_INFINITE_RECURSION = NO; + CODE_SIGN_ENTITLEMENTS = LibreOfficeLight/LibreOfficeLight.entitlements; COPY_PHASE_STRIP = YES; + DEVELOPMENT_TEAM = TM977DU7EF; ENABLE_TESTABILITY = NO; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "LibreOfficeLight/LibreOfficeLight-Prefix.pch"; INFOPLIST_FILE = LibreOfficeLight/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = LibreOfficeLight; + PRODUCT_BUNDLE_IDENTIFIER = com.jani.Editors.LibreOfficeLight; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "LibreOfficeLight/lokit-Bridging-Header.h"; SWIFT_VERSION = 3.0; + "VALID_ARCHS[sdk=*]" = arm64; }; name = Release; }; @@ -598,7 +629,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; INFOPLIST_FILE = LibreOfficeLightTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = jani.libreofficeLight.LibreOfficeLightTests; + PRODUCT_BUNDLE_IDENTIFIER = com.jani.Editors.LibreOfficeLight.LibreOfficeLightTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LibreOfficeLight.app/LibreOfficeLight"; @@ -613,7 +644,7 @@ BUNDLE_LOADER = "$(TEST_HOST)"; INFOPLIST_FILE = LibreOfficeLightTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = jani.libreofficeLight.LibreOfficeLightTests; + PRODUCT_BUNDLE_IDENTIFIER = com.jani.Editors.LibreOfficeLight.LibreOfficeLightTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LibreOfficeLight.app/LibreOfficeLight"; @@ -627,7 +658,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; INFOPLIST_FILE = LibreOfficeLightUITests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = jani.libreofficeLight.LibreOfficeLightUITests; + PRODUCT_BUNDLE_IDENTIFIER = com.jani.Editors.LibreOfficeLight.LibreOfficeLightUITests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; TEST_TARGET_NAME = LibreOfficeLight; @@ -641,7 +672,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; INFOPLIST_FILE = LibreOfficeLightUITests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = jani.libreofficeLight.LibreOfficeLightUITests; + PRODUCT_BUNDLE_IDENTIFIER = com.jani.Editors.LibreOfficeLight.LibreOfficeLightUITests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 3.0; TEST_TARGET_NAME = LibreOfficeLight; diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/AppDelegate.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/AppDelegate.swift index 3c09d88bd671..b100ed05875d 100644 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/AppDelegate.swift +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/AppDelegate.swift @@ -57,6 +57,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { // Called as part of the transition from the background to the active state; // here you can undo many of the changes made on entering the background. + + //JIX add code to check iCloud again } diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/FileManagerController.swift b/ios/experimental/LibreOfficeLight/LibreOfficeLight/FileManagerController.swift index e5b1df3d1ac8..94f4106edf1a 100755 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/FileManagerController.swift +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/FileManagerController.swift @@ -25,10 +25,10 @@ private class FileStorage // make access to current dir independent of storage selection private var localDir : URL - private var cloudDir : URL + private var cloudDir : URL? private var currentDir : URL { get { - return storageIsLocal ? localDir : cloudDir + return storageIsLocal ? localDir : cloudDir! } set(newDir) { if storageIsLocal { @@ -50,7 +50,7 @@ private class FileStorage // Support functions func iCloudEnabled() -> Bool { - return baseCloudDocPath != nil + return filemgr.ubiquityIdentityToken != nil } @@ -121,7 +121,7 @@ private class FileStorage func copyFile(_ name: String) { try! filemgr.copyItem(at: currentDir.appendingPathComponent(name), - to: (storageIsLocal ? localDir : cloudDir).appendingPathComponent(name)) + to: (storageIsLocal ? cloudDir! : localDir).appendingPathComponent(name)) } @@ -129,7 +129,7 @@ private class FileStorage func moveFile(_ name: String) { try! filemgr.moveItem(at: currentDir.appendingPathComponent(name), - to: (storageIsLocal ? localDir : cloudDir).appendingPathComponent(name)) + to: (storageIsLocal ? localDir : cloudDir!).appendingPathComponent(name)) buildFileList() } @@ -157,11 +157,11 @@ private class FileStorage init() { baseLocalDocPath = filemgr.urls(for: .documentDirectory, in: .userDomainMask)[0] - baseCloudDocPath = nil localDir = baseLocalDocPath - // JIX, fix add support for iCloud - cloudDir = baseLocalDocPath + let cloudUrl = filemgr.url(forUbiquityContainerIdentifier: nil) + baseCloudDocPath = (cloudUrl == nil) ? nil : cloudUrl?.appendingPathComponent("Documents") + cloudDir = baseCloudDocPath buildFileList() } } @@ -175,7 +175,18 @@ class FileManagerController : UITableViewController, actionsControlDelegate private var fileData = FileStorage() private var selectedRow : IndexPath? + + + // selectStorage is only enabled when iCloud is active + @IBOutlet weak var buttonSelectStorage: UIBarButtonItem! + override func viewDidLoad() + { + super.viewDidLoad() + buttonSelectStorage.isEnabled = fileData.iCloudEnabled() + } + + // Toogle between local and cloud storage @IBAction func doSelectStorage(_ sender: UIBarButtonItem) { @@ -192,6 +203,7 @@ class FileManagerController : UITableViewController, actionsControlDelegate vc.delegate = self vc.inFileSelect = (selectedRow != nil) vc.inSubDirectory = fileData.isSubDirectory() + vc.useCloud = fileData.iCloudEnabled() } @@ -224,7 +236,11 @@ class FileManagerController : UITableViewController, actionsControlDelegate func actionUploadDownload() { - // JIX filemanager copy + if selectedRow != nil { + let currentCell = self.tableView.cellForRow(at: selectedRow!) as! FileManagerCell + fileData.copyFile(currentCell.fileName) + reloadData() + } } @@ -330,6 +346,7 @@ class FileManagerActions : UITableViewController var delegate : actionsControlDelegate? var inSubDirectory : Bool = false var inFileSelect : Bool = false + var useCloud : Bool = false // Calling class might enable/disable each button @IBOutlet weak var buttonUploadDownload: UIButton! @@ -359,7 +376,7 @@ class FileManagerActions : UITableViewController @IBAction func doUploadDownload(_ sender: UIButton) { - delegate?.actionDelete() + delegate?.actionUploadDownload() dismiss(animated: false) } @@ -387,6 +404,6 @@ class FileManagerActions : UITableViewController buttonLevelUp.isEnabled = inSubDirectory buttonOpen.isEnabled = inFileSelect buttonDelete.isEnabled = inFileSelect - buttonUploadDownload.isEnabled = inFileSelect + buttonUploadDownload.isEnabled = (inFileSelect && useCloud) } } diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/Info.plist b/ios/experimental/LibreOfficeLight/LibreOfficeLight/Info.plist index 6905cc67bbf7..a030ad44af3b 100755 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/Info.plist +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/Info.plist @@ -4,6 +4,21 @@ <dict> <key>CFBundleDevelopmentRegion</key> <string>en</string> + <key>CFBundleDocumentTypes</key> + <array> + <dict> + <key>CFBundleTypeName</key> + <string>ODF-Document</string> + <key>LSHandlerRank</key> + <string>Owner</string> + <key>LSItemContentTypes</key> + <array> + <string>com.odf.doc</string> + <string>com.odf.calc</string> + <string>com.odf.impress</string> + </array> + </dict> + </array> <key>CFBundleExecutable</key> <string>$(EXECUTABLE_NAME)</string> <key>CFBundleIdentifier</key> @@ -15,13 +30,39 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>1.0</string> + <string>0.2</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> - <string>1</string> + <string>3</string> + <key>LSApplicationCategoryType</key> + <string>public.app-category.business</string> + <key>LSMultipleInstancesProhibited</key> + <true/> <key>LSRequiresIPhoneOS</key> <true/> + <key>LSSupportsOpeningDocumentsInPlace</key> + <true/> + <key>NSHighResolutionCapable</key> + <true/> + <key>NSHumanReadableCopyright</key> + <string>The Source Code Form is subject to the terms of the Mozilla Public +License, v. 2.0. If a copy of the MPL was not distributed with this +file, You can obtain one at http://mozilla.org/MPL/2.0/.</string> + <key>NSUbiquitousContainers</key> + <dict> + <key>iCloud.com.jani.Editors.LibreOfficeLight</key> + <dict> + <key>NSUbiquitousContainerIsDocumentScopePublic</key> + <true/> + <key>NSUbiquitousContainerName</key> + <string>LibreOffice</string> + <key>NSUbiquitousContainerSupportedFolderLevels</key> + <string>None</string> + </dict> + </dict> + <key>UIFileSharingEnabled</key> + <true/> <key>UILaunchStoryboardName</key> <string>LaunchScreen</string> <key>UIMainStoryboardFile</key> @@ -32,6 +73,12 @@ </array> <key>UISupportedInterfaceOrientations</key> <array> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>UISupportedInterfaceOrientations~ipad</key> + <array> + <string>UIInterfaceOrientationPortraitUpsideDown</string> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/LibreOfficeLight.entitlements b/ios/experimental/LibreOfficeLight/LibreOfficeLight/LibreOfficeLight.entitlements new file mode 100644 index 000000000000..bb42bb6ead0b --- /dev/null +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/LibreOfficeLight.entitlements @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>com.apple.developer.icloud-container-identifiers</key> + <array> + <string>iCloud.$(CFBundleIdentifier)</string> + </array> + <key>com.apple.developer.icloud-services</key> + <array> + <string>CloudDocuments</string> + </array> + <key>com.apple.developer.ubiquity-container-identifiers</key> + <array> + <string>iCloud.$(CFBundleIdentifier)</string> + </array> +</dict> +</plist> diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/LaunchScreen.xib b/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/LaunchScreen.xib index 55da64dac5a8..dc876d9b7181 100644 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/LaunchScreen.xib +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/LaunchScreen.xib @@ -54,7 +54,7 @@ </subviews> </stackView> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="n2g-DN-Rct"> - <rect key="frame" x="75" y="137" width="330" height="180.5"/> + <rect key="frame" x="75" y="169" width="330" height="143"/> <subviews> <imageView userInteractionEnabled="NO" contentMode="center" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="intro" translatesAutoresizingMaskIntoConstraints="NO" id="iba-PG-iZB"> <rect key="frame" x="0.0" y="0.0" width="330" height="84"/> @@ -65,12 +65,6 @@ <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> <nil key="highlightedColor"/> </label> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Version 0.1" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="ZEw-zA-Ntv"> - <rect key="frame" x="0.0" y="159" width="330" height="21.5"/> - <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/> - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> - <nil key="highlightedColor"/> - </label> </subviews> </stackView> </subviews> diff --git a/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard b/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard index 35fa0d50834e..d7589a64ea2d 100755 --- a/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard +++ b/ios/experimental/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard @@ -58,7 +58,7 @@ <rect key="frame" x="0.0" y="28" width="768" height="44"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="kKu-xM-S1e" id="80i-6K-kty"> - <rect key="frame" x="0.0" y="0.0" width="768" height="43"/> + <rect key="frame" x="0.0" y="0.0" width="768" height="43.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="fileEntry" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vlx-gc-YQQ"> @@ -111,6 +111,9 @@ </connections> </barButtonItem> </navigationItem> + <connections> + <outlet property="buttonSelectStorage" destination="aad-FF-63q" id="1zz-Vy-Wve"/> + </connections> </tableViewController> <placeholder placeholderIdentifier="IBFirstResponder" id="HFd-ah-Xo4" userLabel="First Responder" sceneMemberID="firstResponder"/> <exit id="iOm-U1-ALi" userLabel="Exit" sceneMemberID="exit"/> @@ -132,7 +135,7 @@ <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="VuG-w2-cW6" id="8SA-cA-5eZ"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZSm-By-dJs"> @@ -150,7 +153,7 @@ <rect key="frame" x="0.0" y="30" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="L5l-rq-TxW" id="dmK-Lh-hje"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="IQ3-hK-KmM"> @@ -168,7 +171,7 @@ <rect key="frame" x="0.0" y="60" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="gCu-Su-BAB" id="P2T-Nb-OqI"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BSN-dd-e84"> @@ -186,7 +189,7 @@ <rect key="frame" x="0.0" y="90" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="bzW-XI-AgR" id="z9x-qQ-lou"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="fNi-5u-PqA"> @@ -204,7 +207,7 @@ <rect key="frame" x="0.0" y="120" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="b9s-rz-SjN" id="NVs-9k-H8m"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5Rk-LW-Ub9"> @@ -222,7 +225,7 @@ <rect key="frame" x="0.0" y="150" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Va5-1U-paI" id="LW9-jL-3U7"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="type name" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Lms-Tp-Xtt"> @@ -513,7 +516,7 @@ <rect key="frame" x="0.0" y="0.0" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KLS-lN-QYa" id="dA0-Ji-bxj"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mCx-kB-iUI"> @@ -531,7 +534,7 @@ <rect key="frame" x="0.0" y="30" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="VNE-JL-Lw0" id="EB2-HA-y79"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="myk-zs-md7"> @@ -549,7 +552,7 @@ <rect key="frame" x="0.0" y="60" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="mPa-wa-TDO" id="jhW-pd-Qkl"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Iva-rO-9V3"> @@ -567,7 +570,7 @@ <rect key="frame" x="0.0" y="90" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="XW7-H5-0ob" id="lJN-OL-mO8"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="b90-ja-Wm0"> @@ -586,7 +589,7 @@ <rect key="frame" x="0.0" y="120" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="fqs-uC-KiW" id="nT7-Ly-JW5"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ioJ-xc-RrS"> @@ -607,7 +610,7 @@ <rect key="frame" x="0.0" y="150" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="GmK-gj-GYu" id="3OK-Zz-mqN"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="apE-3B-lUt"> @@ -626,7 +629,7 @@ <rect key="frame" x="0.0" y="180" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="1ly-sz-g0x" id="wVi-tX-eKD"> - <rect key="frame" x="0.0" y="0.0" width="134" height="29"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="516-b0-K4N"> |