瀏覽代碼

new view share

marinofaggiana 5 年之前
父節點
當前提交
5fd89600e2

+ 1 - 0
iOSClient/Nextcloud-Bridging-Header.h

@@ -21,6 +21,7 @@
 #import "OCNotifications.h"
 #import "OCNotifications.h"
 #import "OCConstants.h"
 #import "OCConstants.h"
 #import "OCNotificationsAction.h"
 #import "OCNotificationsAction.h"
+#import "OCShareUser.h"
 #import "UtilsFramework.h"
 #import "UtilsFramework.h"
 #import "NCNetworkingEndToEnd.h"
 #import "NCNetworkingEndToEnd.h"
 #import "NCRichDocumentTemplate.h"
 #import "NCRichDocumentTemplate.h"

+ 0 - 225
iOSClient/Share/CCShare.storyboard

@@ -1,225 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES">
-    <device id="retina4_7" orientation="portrait">
-        <adaptation id="fullscreen"/>
-    </device>
-    <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
-        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
-    </dependencies>
-    <scenes>
-        <!--Share ownCloud-->
-        <scene sceneID="8Af-7G-uzd">
-            <objects>
-                <viewController storyboardIdentifier="CCShareOC" id="FgK-eH-DI1" userLabel="Share ownCloud" customClass="CCShareOC" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="ypH-iM-3do"/>
-                        <viewControllerLayoutGuide type="bottom" id="g3i-ij-OJy"/>
-                    </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="e6B-CP-Y0Y">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" translatesAutoresizingMaskIntoConstraints="NO" id="ejc-ux-EAE">
-                                <rect key="frame" x="0.0" y="78" width="375" height="589"/>
-                                <color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                            </tableView>
-                            <imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="g7r-0n-C6A" userLabel="File Image View">
-                                <rect key="frame" x="16" y="28" width="50" height="50"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" constant="50" id="aFd-Ss-ph2"/>
-                                    <constraint firstAttribute="height" constant="50" id="fWJ-Sq-Yb3"/>
-                                </constraints>
-                            </imageView>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0rc-qU-t2v">
-                                <rect key="frame" x="314" y="29" width="53" height="32"/>
-                                <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
-                                <state key="normal" title="Button"/>
-                                <connections>
-                                    <action selector="endButtonAction:" destination="FgK-eH-DI1" eventType="touchDown" id="Ibi-H5-8Lo"/>
-                                </connections>
-                            </button>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qJU-ls-kRT">
-                                <rect key="frame" x="74" y="57" width="232" height="16"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="16" id="Vdr-Qz-Db3"/>
-                                </constraints>
-                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                                <nil key="textColor"/>
-                                <nil key="highlightedColor"/>
-                            </label>
-                            <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="wordWrap" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="5R0-1B-nUL" userLabel="Label Title">
-                                <rect key="frame" x="74" y="35" width="232" height="16"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="16" id="I73-FO-nfA"/>
-                                </constraints>
-                                <fontDescription key="fontDescription" type="system" pointSize="13"/>
-                                <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                                <nil key="highlightedColor"/>
-                            </label>
-                        </subviews>
-                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                        <constraints>
-                            <constraint firstItem="ejc-ux-EAE" firstAttribute="leading" secondItem="e6B-CP-Y0Y" secondAttribute="leading" id="67Z-Q5-Cgm"/>
-                            <constraint firstItem="g7r-0n-C6A" firstAttribute="top" secondItem="ypH-iM-3do" secondAttribute="bottom" constant="8" id="7as-6H-my4"/>
-                            <constraint firstItem="5R0-1B-nUL" firstAttribute="leading" secondItem="e6B-CP-Y0Y" secondAttribute="leadingMargin" constant="58" id="B3Z-eo-tqx"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="0rc-qU-t2v" secondAttribute="trailing" constant="-8" id="F2h-Gs-1HX"/>
-                            <constraint firstItem="qJU-ls-kRT" firstAttribute="top" secondItem="5R0-1B-nUL" secondAttribute="bottom" constant="6" id="M0T-ZH-G18"/>
-                            <constraint firstItem="5R0-1B-nUL" firstAttribute="top" secondItem="g7r-0n-C6A" secondAttribute="bottom" constant="-43" id="Nt2-22-66i"/>
-                            <constraint firstAttribute="trailing" secondItem="ejc-ux-EAE" secondAttribute="trailing" id="Qmg-GS-aNl"/>
-                            <constraint firstAttribute="trailing" secondItem="qJU-ls-kRT" secondAttribute="trailing" constant="69" id="SP4-ET-g7O"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="5R0-1B-nUL" secondAttribute="trailing" constant="53" id="Wf2-P9-9R0"/>
-                            <constraint firstItem="0rc-qU-t2v" firstAttribute="top" secondItem="ypH-iM-3do" secondAttribute="bottom" constant="9" id="ZUu-Ur-vra"/>
-                            <constraint firstItem="ejc-ux-EAE" firstAttribute="top" secondItem="ypH-iM-3do" secondAttribute="bottom" constant="58" id="e5l-5V-Ic6"/>
-                            <constraint firstItem="g3i-ij-OJy" firstAttribute="top" secondItem="ejc-ux-EAE" secondAttribute="bottom" id="g0g-ki-s02"/>
-                            <constraint firstItem="qJU-ls-kRT" firstAttribute="leading" secondItem="g7r-0n-C6A" secondAttribute="trailing" constant="8" id="gTe-TJ-zdC"/>
-                            <constraint firstAttribute="leadingMargin" secondItem="g7r-0n-C6A" secondAttribute="leading" id="pUq-DL-LqB"/>
-                        </constraints>
-                    </view>
-                    <connections>
-                        <outlet property="endButton" destination="0rc-qU-t2v" id="9is-oc-P0a"/>
-                        <outlet property="fileImageView" destination="g7r-0n-C6A" id="Tc2-yQ-RmV"/>
-                        <outlet property="labelSharedWithYouBy" destination="qJU-ls-kRT" id="QGo-K6-7IE"/>
-                        <outlet property="labelTitle" destination="5R0-1B-nUL" id="2We-Yk-se8"/>
-                        <outlet property="tableView" destination="ejc-ux-EAE" id="Z3m-ev-PLR"/>
-                    </connections>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="Zxn-bc-fzJ" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="512.79999999999995" y="613.94302848575717"/>
-        </scene>
-        <!--ShareUser ownCloud-->
-        <scene sceneID="NIA-LD-rfC">
-            <objects>
-                <viewController storyboardIdentifier="CCShareUserOC" id="uGP-Rl-nGJ" userLabel="ShareUser ownCloud" customClass="CCShareUserOC" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="ZiR-UH-h8a"/>
-                        <viewControllerLayoutGuide type="bottom" id="Iv5-it-wkO"/>
-                    </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="Jiu-JY-UWo">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" translatesAutoresizingMaskIntoConstraints="NO" id="Gm7-74-eSh">
-                                <rect key="frame" x="0.0" y="45" width="375" height="622"/>
-                                <color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                            </tableView>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tz1-hm-QBT">
-                                <rect key="frame" x="314" y="20" width="53" height="32"/>
-                                <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
-                                <state key="normal" title="Button"/>
-                                <connections>
-                                    <action selector="endButtonAction:" destination="uGP-Rl-nGJ" eventType="touchDown" id="Uxd-Sd-jCh"/>
-                                </connections>
-                            </button>
-                        </subviews>
-                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                        <constraints>
-                            <constraint firstItem="Gm7-74-eSh" firstAttribute="top" secondItem="ZiR-UH-h8a" secondAttribute="bottom" constant="25" id="9fi-43-f40"/>
-                            <constraint firstItem="Gm7-74-eSh" firstAttribute="leading" secondItem="Jiu-JY-UWo" secondAttribute="leading" id="GP9-0g-84R"/>
-                            <constraint firstItem="tz1-hm-QBT" firstAttribute="top" secondItem="ZiR-UH-h8a" secondAttribute="bottom" id="aGS-9O-wzn"/>
-                            <constraint firstItem="Iv5-it-wkO" firstAttribute="top" secondItem="Gm7-74-eSh" secondAttribute="bottom" id="fhG-d5-kpd"/>
-                            <constraint firstAttribute="trailing" secondItem="Gm7-74-eSh" secondAttribute="trailing" id="kUP-di-82P"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="tz1-hm-QBT" secondAttribute="trailing" constant="-8" id="rBB-in-TrC"/>
-                        </constraints>
-                    </view>
-                    <connections>
-                        <outlet property="endButton" destination="tz1-hm-QBT" id="1Em-nb-5p1"/>
-                        <outlet property="tableView" destination="Gm7-74-eSh" id="GZF-vb-bC1"/>
-                    </connections>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="BYc-9w-DfS" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="1309.5999999999999" y="613.94302848575717"/>
-        </scene>
-        <!--SharePermission ownCloud-->
-        <scene sceneID="RFG-Po-tNO">
-            <objects>
-                <viewController storyboardIdentifier="CCSharePermissionOC" id="6IJ-Tt-iX8" userLabel="SharePermission ownCloud" customClass="CCSharePermissionOC" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="eqs-fE-Yye"/>
-                        <viewControllerLayoutGuide type="bottom" id="YLL-Ma-4iJ"/>
-                    </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="vkr-eQ-OYs">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" translatesAutoresizingMaskIntoConstraints="NO" id="DRw-C6-XHf">
-                                <rect key="frame" x="0.0" y="44" width="375" height="623"/>
-                                <color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                            </tableView>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UkB-6i-4rS">
-                                <rect key="frame" x="314" y="20" width="53" height="32"/>
-                                <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
-                                <state key="normal" title="Button"/>
-                                <connections>
-                                    <action selector="endButtonAction:" destination="6IJ-Tt-iX8" eventType="touchDown" id="A3w-y5-pNx"/>
-                                </connections>
-                            </button>
-                        </subviews>
-                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                        <constraints>
-                            <constraint firstItem="DRw-C6-XHf" firstAttribute="top" secondItem="eqs-fE-Yye" secondAttribute="bottom" constant="24" id="02t-PL-QWM"/>
-                            <constraint firstAttribute="trailing" secondItem="DRw-C6-XHf" secondAttribute="trailing" id="Akh-kD-zen"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="UkB-6i-4rS" secondAttribute="trailing" constant="-8" id="ZYs-Fv-ghX"/>
-                            <constraint firstItem="DRw-C6-XHf" firstAttribute="leading" secondItem="vkr-eQ-OYs" secondAttribute="leading" id="dPK-kZ-gF6"/>
-                            <constraint firstItem="UkB-6i-4rS" firstAttribute="top" secondItem="eqs-fE-Yye" secondAttribute="bottom" id="g3N-JQ-Uih"/>
-                            <constraint firstItem="YLL-Ma-4iJ" firstAttribute="top" secondItem="DRw-C6-XHf" secondAttribute="bottom" id="lw0-cL-Nmj"/>
-                        </constraints>
-                    </view>
-                    <connections>
-                        <outlet property="endButton" destination="UkB-6i-4rS" id="5lf-Ef-iev"/>
-                        <outlet property="tableView" destination="DRw-C6-XHf" id="HNp-ew-flf"/>
-                    </connections>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="a31-QY-djo" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="1949.5999999999999" y="613.94302848575717"/>
-        </scene>
-        <!--CCShareInfoCMOC ownCloud-->
-        <scene sceneID="9He-gi-9NT">
-            <objects>
-                <viewController storyboardIdentifier="CCShareInfoCMOC" id="rOp-4O-AKn" userLabel="CCShareInfoCMOC ownCloud" customClass="CCShareInfoCMOC" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="cJu-FE-egs"/>
-                        <viewControllerLayoutGuide type="bottom" id="LKN-3A-aUQ"/>
-                    </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="ThM-gV-z79">
-                        <rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" translatesAutoresizingMaskIntoConstraints="NO" id="0Tl-U6-oZH">
-                                <rect key="frame" x="0.0" y="45" width="375" height="622"/>
-                                <color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                            </tableView>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="z1J-6F-519">
-                                <rect key="frame" x="314" y="20" width="53" height="32"/>
-                                <fontDescription key="fontDescription" type="boldSystem" pointSize="16"/>
-                                <state key="normal" title="Button"/>
-                                <connections>
-                                    <action selector="endButtonAction:" destination="rOp-4O-AKn" eventType="touchDown" id="fdb-Pp-Ifg"/>
-                                </connections>
-                            </button>
-                        </subviews>
-                        <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
-                        <constraints>
-                            <constraint firstAttribute="trailingMargin" secondItem="z1J-6F-519" secondAttribute="trailing" constant="-8" id="470-o5-hbr"/>
-                            <constraint firstItem="z1J-6F-519" firstAttribute="top" secondItem="cJu-FE-egs" secondAttribute="bottom" id="4ax-aH-ys3"/>
-                            <constraint firstItem="0Tl-U6-oZH" firstAttribute="top" secondItem="cJu-FE-egs" secondAttribute="bottom" constant="25" id="7hl-hq-nP4"/>
-                            <constraint firstItem="0Tl-U6-oZH" firstAttribute="leading" secondItem="ThM-gV-z79" secondAttribute="leading" id="E6g-O0-jvY"/>
-                            <constraint firstItem="LKN-3A-aUQ" firstAttribute="top" secondItem="0Tl-U6-oZH" secondAttribute="bottom" id="PTW-nP-5Cr"/>
-                            <constraint firstAttribute="trailing" secondItem="0Tl-U6-oZH" secondAttribute="trailing" id="kTy-Ip-ZUU"/>
-                        </constraints>
-                    </view>
-                    <connections>
-                        <outlet property="endButton" destination="z1J-6F-519" id="TTI-ri-5dB"/>
-                        <outlet property="tableView" destination="0Tl-U6-oZH" id="kgD-bk-e0n"/>
-                    </connections>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="NFe-CI-5yc" userLabel="First Responder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="2592.8000000000002" y="613.94302848575717"/>
-        </scene>
-    </scenes>
-</document>

+ 0 - 39
iOSClient/Share/CCShareInfoCMOC.h

@@ -1,39 +0,0 @@
-//
-//  CCShareInfoCMOC.h
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 07/03/16.
-//  Copyright (c) 2017 Marino Faggiana. All rights reserved.
-//
-//  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
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-//
-
-#import <UIKit/UIKit.h>
-
-#import "XLFormViewController.h"
-#import "UtilsFramework.h"
-
-@class tableMetadata;
-
-@interface CCShareInfoCMOC : XLFormViewController
-
-@property (nonatomic, weak) IBOutlet UIButton *endButton;
-
-@property (nonatomic, strong) tableMetadata *metadata;
-
-- (IBAction)endButtonAction:(id)sender;
-
-@end

+ 0 - 190
iOSClient/Share/CCShareInfoCMOC.m

@@ -1,190 +0,0 @@
-//
-//  CCShareInfoCMOC.m
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 07/03/16.
-//  Copyright (c) 2017 Marino Faggiana. All rights reserved.
-//
-//  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
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-//
-
-#import "CCShareInfoCMOC.h"
-#import "XLFormViewController.h"
-#import "XLForm.h"
-#import "AppDelegate.h"
-#import "CCHud.h"
-#import "NCBridgeSwift.h"
-
-@interface CCShareInfoCMOC ()
-{
-    AppDelegate *appDelegate;
-    CCHud *_hud;
-}
-@end
-
-/*
-const PERMISSION_CREATE = 4;
-const PERMISSION_READ = 1;
-const PERMISSION_UPDATE = 2;
-const PERMISSION_DELETE = 8;
-const PERMISSION_SHARE = 16;
-const PERMISSION_ALL = 31;
-*/
-
-@implementation CCShareInfoCMOC
-
-- (instancetype)initWithCoder:(NSCoder *)coder
-{
-    self = [super initWithCoder:coder];
-    if (self) {
-        
-        appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
-    }
-    return self;
-}
-
-- (void)initializeForm
-{
-    XLFormDescriptor *form ;
-    XLFormSectionDescriptor *section;
-    XLFormRowDescriptor *row;
-    
-    form = [XLFormDescriptor formDescriptor];
-    form.rowNavigationOptions = XLFormRowNavigationOptionNone;
-    
-    section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_share_permission_title_", nil)];
-    [form addFormSection:section];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"create" rowType:XLFormRowDescriptorTypeBooleanCheck title:NSLocalizedString(@"_share_permission_create_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"tintColor"];
-    [section addFormRow:row];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"read" rowType:XLFormRowDescriptorTypeBooleanCheck title:NSLocalizedString(@"_share_permission_read_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"tintColor"];
-    [section addFormRow:row];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"change" rowType:XLFormRowDescriptorTypeBooleanCheck title:NSLocalizedString(@"_share_permission_change_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"tintColor"];
-    [section addFormRow:row];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"delete" rowType:XLFormRowDescriptorTypeBooleanCheck title:NSLocalizedString(@"_share_permission_delete_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"tintColor"];
-    [section addFormRow:row];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"share" rowType:XLFormRowDescriptorTypeBooleanCheck title:NSLocalizedString(@"_share_permission_share_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"tintColor"];
-    [section addFormRow:row];
-    
-    section = [XLFormSectionDescriptor formSection];
-    [form addFormSection:section];
-    
-    section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_share_permission_info_", nil)];
-    [form addFormSection:section];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"sharetype" rowType:XLFormRowDescriptorTypeInfo title:NSLocalizedString(@"_share_permission_type_", nil)];
-    
-    if ([self.metadata.permissions rangeOfString:k_permission_shared].location != NSNotFound) row.value = NSLocalizedString(@"_type_resource_connect_you_", nil);
-    if ([self.metadata.permissions rangeOfString:k_permission_mounted].location != NSNotFound) row.value = NSLocalizedString(@"_type_resource_external_", nil);
-    
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"detailTextLabel.font"];
-    [section addFormRow:row];
-    
-    self.form = form;
-    
-    form.disabled = YES;
-}
-
-- (void)viewDidLoad
-{
-    [super viewDidLoad];
-    
-    self.view.backgroundColor = [NCBrandColor sharedInstance].backgroundView;
-    
-    [self.endButton setTitle:NSLocalizedString(@"_done_", nil) forState:UIControlStateNormal];
-    self.endButton.tintColor = [UIColor blackColor];
-    
-    self.tableView.backgroundColor = [NCBrandColor sharedInstance].backgroundView;
-    
-    _hud = [[CCHud alloc] initWithView:[[[UIApplication sharedApplication] delegate] window]];
-    
-    [[OCNetworking sharedManager] getSharePermissionsFileWithAccount:appDelegate.activeAccount fileNamePath:[NSString stringWithFormat:@"%@/%@", _metadata.serverUrl, _metadata.fileName] completion:^(NSString *account, NSString *permissions, NSString *message, NSInteger errorCode) {
-        
-        [_hud hideHud];
-
-        if (errorCode == 0 && [account isEqualToString:appDelegate.activeAccount] && permissions != nil) {
-            
-            NSInteger iPermissions = [permissions integerValue];
-            
-            // ------------------------------------------------------------------
-            
-            XLFormRowDescriptor *rowCreate = [self.form formRowWithTag:@"create"];
-            XLFormRowDescriptor *rowRead = [self.form formRowWithTag:@"read"];
-            XLFormRowDescriptor *rowChange = [self.form formRowWithTag:@"change"];
-            XLFormRowDescriptor *rowDelete = [self.form formRowWithTag:@"delete"];
-            XLFormRowDescriptor *rowShare = [self.form formRowWithTag:@"share"];
-            
-            // ------------------------------------------------------------------
-            
-            if ([UtilsFramework isPermissionToCanCreate:iPermissions]) rowCreate.value = @1;
-            else rowCreate.value = @0;
-            
-            if ([UtilsFramework isPermissionToRead:iPermissions]) rowRead.value = @1;
-            else rowRead.value = @0;
-            
-            if ([UtilsFramework isPermissionToCanChange:iPermissions]) rowChange.value = @1;
-            else rowChange.value = @0;
-            
-            if ([UtilsFramework isPermissionToCanDelete:iPermissions]) rowDelete.value = @1;
-            else rowDelete.value = @0;
-            
-            if ([UtilsFramework isPermissionToCanShare:iPermissions]) rowShare.value = @1;
-            else rowShare.value = @0;
-            
-            // -----------------------------------------------------------------
-            
-            [self.tableView reloadData];
-            
-        } else if (errorCode != 0) {
-            
-            [appDelegate messageNotification:@"_error_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-            
-            [self dismissViewControllerAnimated:YES completion:nil];
-        } else {
-            NSLog(@"[LOG] It has been changed user during networking process, error.");
-        }
-    }];
-    
-    [_hud visibleHudTitle:@"" mode:MBProgressHUDModeIndeterminate color:nil];
-
-    [self initializeForm];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Button =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (IBAction)endButtonAction:(id)sender
-{
-    [self dismissViewControllerAnimated:YES completion:nil];
-}
-
-@end

+ 0 - 62
iOSClient/Share/CCShareOC.h

@@ -1,62 +0,0 @@
-//
-//  CCShareOC.h
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 13/11/15.
-//  Copyright (c) 2017 Marino Faggiana. All rights reserved.
-//
-//  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
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-//
-
-#import <UIKit/UIKit.h>
-
-#import "XLFormViewController.h"
-#import "CCShareUserOC.h"
-#import "CCSharePermissionOC.h"
-
-@class tableMetadata;
-
-@protocol CCShareOCDelegate;
-
-@interface CCShareOC : XLFormViewController
-
-@property (nonatomic, weak) id <CCShareOCDelegate> delegate;
-
-@property (nonatomic, weak) IBOutlet UIImageView *fileImageView;
-@property (nonatomic, weak) IBOutlet UILabel *labelTitle;
-@property (nonatomic, weak) IBOutlet UILabel *labelSharedWithYouBy;
-@property (nonatomic, weak) IBOutlet UIButton *endButton;
-
-@property (nonatomic, strong) NSString *serverUrl;
-@property (nonatomic, strong) NSString *shareLink;
-@property (nonatomic, strong) NSString *shareUserAndGroup;
-@property (nonatomic, strong) tableMetadata *metadata;
-
-@property (nonatomic, strong) OCSharedDto *itemShareLink;
-@property (nonatomic, strong) NSArray *itemsUserAndGroupLink;
-@property (nonatomic, strong) NSMutableArray *itemsShareWith;
-@property (nonatomic, weak) CCShareUserOC *shareUserOC;
-@property (nonatomic, weak) CCSharePermissionOC *sharePermissionOC;
-
-- (IBAction)endButtonAction:(id)sender;
-
-@end
-
-@protocol CCShareOCDelegate
-
-- (void)readShareServer;
-
-@end

+ 0 - 716
iOSClient/Share/CCShareOC.m

@@ -1,716 +0,0 @@
-//
-//  CCShareOC.m
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 13/11/15.
-//  Copyright (c) 2017 Marino Faggiana. All rights reserved.
-//
-//  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
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-//
-
-#import "CCShareOC.h"
-#import "AppDelegate.h"
-#import "NCBridgeSwift.h"
-
-@interface CCShareOC ()
-{
-    AppDelegate *appDelegate;
-    tableCapabilities *capabilities;
-}
-@end
-
-@implementation CCShareOC
-
-- (instancetype)initWithCoder:(NSCoder *)coder
-{
-    self = [super initWithCoder:coder];
-    if (self) {
-        
-        appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
-        self.itemsShareWith = [NSMutableArray new];
-
-        [self initializeForm];
-    }
-    return self;
-}
-
-- (void)initializeForm
-{
-    XLFormDescriptor *form ;
-    XLFormSectionDescriptor *section;
-    XLFormRowDescriptor *row;
-    
-    form = [XLFormDescriptor formDescriptor];
-    form.rowNavigationOptions = XLFormRowNavigationOptionNone;
-    
-    // Share Link
-    
-    section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_share_link_", nil)];
-    [form addFormSection:section];
-
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"shareLinkSwitch" rowType:XLFormRowDescriptorTypeBooleanSwitch title:NSLocalizedString(@"_share_link_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [section addFormRow:row];
-
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"shareLinkPermission" rowType:XLFormRowDescriptorTypePicker];
-    row.height = 70;
-    [section addFormRow:row];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"password" rowType:XLFormRowDescriptorTypePassword title:NSLocalizedString(@"_password_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [section addFormRow:row];
- 
-    capabilities = [[NCManageDatabase sharedInstance] getCapabilitesWithAccount:appDelegate.activeAccount];
-    if (capabilities != nil && capabilities.versionMajor >= k_nextcloud_version_15_0) {
-        row = [XLFormRowDescriptor formRowDescriptorWithTag:@"hideDownload" rowType:XLFormRowDescriptorTypeBooleanSwitch title:NSLocalizedString(@"_share_link_hide_download_", nil)];
-        [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-        [section addFormRow:row];
-    }
-        
-    // Expiration date
-    
-    section = [XLFormSectionDescriptor formSection];
-    [form addFormSection:section];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"expirationDate" rowType:XLFormRowDescriptorTypeDate title:NSLocalizedString(@"_date_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    row.value = [self tomorrow];
-    [row.cellConfigAtConfigure setObject:[self tomorrow] forKey:@"minimumDate"];
-    [section addFormRow:row];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"expirationDateSwitch" rowType:XLFormRowDescriptorTypeBooleanSwitch title:NSLocalizedString(@"_share_expirationdate_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [section addFormRow:row];
-    
-    // Send Link To
-    
-    section = [XLFormSectionDescriptor formSection];
-    [form addFormSection:section];
-
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"sendLinkTo" rowType:XLFormRowDescriptorTypeButton title:NSLocalizedString(@"_share_link_button_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[UIColor blackColor] forKey:@"textLabel.textColor"];
-    row.action.formSelector = @selector(sendLinkTo:);
-    [section addFormRow:row];
-
-    // Sharee
-    
-    section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_share_title_", nil)];
-    [form addFormSection:section];
-    section.footerTitle = NSLocalizedString(@"_add_sharee_footer_", nil);
-        
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"findUser" rowType:XLFormRowDescriptorTypeButton title:NSLocalizedString(@"_add_sharee_", nil)];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[UIColor blackColor] forKey:@"textLabel.textColor"];
-    row.action.formSelector = @selector(shareUserButton:);
-    [section addFormRow:row];
-        
-    section = [XLFormSectionDescriptor formSectionWithTitle:@"" sectionOptions:XLFormSectionOptionCanDelete];
-    [form addFormSection:section];
-    
-    self.form = form;
-}
-
-- (void)viewDidLoad
-{
-    [super viewDidLoad];
-    
-    self.view.backgroundColor = [NCBrandColor sharedInstance].backgroundView;
-    
-    XLFormRowDescriptor *rowShareLinkPermission = [self.form formRowWithTag:@"shareLinkPermission"];
-    if (self.metadata.directory) {
-        rowShareLinkPermission.selectorOptions = @[NSLocalizedString(@"_share_link_readonly_", nil), NSLocalizedString(@"_share_link_upload_modify_", nil), NSLocalizedString(@"_share_link_upload_", nil)];
-    } else {
-        rowShareLinkPermission.selectorOptions = @[NSLocalizedString(@"_share_link_readonly_", nil), NSLocalizedString(@"_share_link_modify_", nil)];
-    }
-    
-    [self.endButton setTitle:NSLocalizedString(@"_done_", nil) forState:UIControlStateNormal];
-    self.endButton.tintColor = [UIColor blackColor];
-    
-    if ([[NSFileManager defaultManager] fileExistsAtPath:[CCUtility getDirectoryProviderStorageIconFileID:self.metadata.fileID fileNameView:self.metadata.fileNameView]]) {
-        
-        self.fileImageView.image = [UIImage imageWithContentsOfFile:[CCUtility getDirectoryProviderStorageIconFileID:self.metadata.fileID fileNameView:self.metadata.fileNameView]];
-        
-    } else {
-        
-        if (self.metadata.directory)
-            self.fileImageView.image = [CCGraphics changeThemingColorImage:[UIImage imageNamed:@"folder"] multiplier:2 color:[NCBrandColor sharedInstance].brandElement];
-        else
-            self.fileImageView.image = [UIImage imageNamed:self.metadata.iconName];
-
-    }
-    
-    self.labelTitle.text = self.metadata.fileNameView;
-    self.labelTitle.textColor = [UIColor blackColor];
-    
-    self.tableView.tableHeaderView = ({UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 0.1 / UIScreen.mainScreen.scale)];
-        line.backgroundColor = self.tableView.separatorColor;
-        line;
-    });
-    
-    self.tableView.backgroundColor = [NCBrandColor sharedInstance].backgroundView;
-}
-
-- (void)viewWillAppear:(BOOL)animated
-{
-    [super viewWillAppear:animated];
-}
-
-- (void)viewDidAppear:(BOOL)animated
-{
-    [super viewDidAppear:animated];
-    
-    [self reloadDatasource];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Networking =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)share:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl password:(NSString *)password permission:(NSInteger)permission hideDownload:(BOOL)hideDownload
-{
-    NSString *fileName = [CCUtility returnFileNamePathFromFileName:metadata.fileName serverUrl:serverUrl activeUrl:appDelegate.activeUrl];
-    
-    [[OCNetworking sharedManager] shareWithAccount:appDelegate.activeAccount fileName:fileName password:password permission:permission hideDownload:hideDownload completion:^(NSString *account, NSString *message, NSInteger errorCode) {
-        
-        if (errorCode != 0) {
-            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-        }
-        
-        [self reloadDatasource];
-    }];
-}
-
-- (void)unShare:(NSString *)share metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl
-{
-    [[OCNetworking sharedManager] unshareAccount:appDelegate.activeAccount shareID:[share integerValue] completion:^(NSString *account, NSString *message, NSInteger errorCode) {
-        
-        if (errorCode != 0) {
-            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-        }
-        
-        [self reloadDatasource];
-    }];
-}
-
-- (void)updateShare:(NSString *)share metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl password:(NSString *)password expirationTime:(NSString *)expirationTime permission:(NSInteger)permission hideDownload:(BOOL)hideDownload
-{
-    [[OCNetworking sharedManager] shareUpdateAccount:appDelegate.activeAccount shareID:[share integerValue] password:password permission:permission expirationTime:expirationTime hideDownload:hideDownload completion:^(NSString *account, NSString *message, NSInteger errorCode) {
-        
-        if (errorCode != 0) {
-            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-        }
-        
-        [self reloadDatasource];
-    }];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Reload Data =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)reloadDatasource
-{    
-    // bugfix
-    if (!self.serverUrl || !self.metadata) {
-        
-        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
-            [self.delegate readShareServer];
-            [self dismissViewControllerAnimated:YES completion:nil];
-        });
-        
-        return;
-    }
-    
-    XLFormRowDescriptor *rowShareLinkSwitch = [self.form formRowWithTag:@"shareLinkSwitch"];
-    XLFormRowDescriptor *rowShareLinkPermission = [self.form formRowWithTag:@"shareLinkPermission"];
-    XLFormRowDescriptor *rowPassword = [self.form formRowWithTag:@"password"];
-    XLFormRowDescriptor *rowHideDownload = [self.form formRowWithTag:@"hideDownload"];
-    XLFormRowDescriptor *rowExpirationDate = [self.form formRowWithTag:@"expirationDate"];
-    XLFormRowDescriptor *rowExpirationDateSwitch = [self.form formRowWithTag:@"expirationDateSwitch"];
-    XLFormRowDescriptor *rowSendLinkTo = [self.form formRowWithTag:@"sendLinkTo"];
-    XLFormRowDescriptor *rowFindUser = [self.form formRowWithTag:@"findUser"];
-    
-    NSString *path = [CCUtility returnFileNamePathFromFileName:self.metadata.fileName serverUrl:self.serverUrl activeUrl:appDelegate.activeUrl];
-
-    [[OCNetworking sharedManager] readShareWithAccount:appDelegate.activeAccount path:path completion:^(NSString *account, NSArray *items, NSString *message, NSInteger errorCode) {
-        
-        if (errorCode == 0) {
-            
-            [appDelegate.sharesID removeAllObjects];
-
-            for (OCSharedDto *item in items) {
-                [appDelegate.sharesID setObject:item forKey:[@(item.idRemoteShared) stringValue]];
-            }
-            
-            NSArray *result = [[NCManageDatabase sharedInstance] updateShare:appDelegate.sharesID activeUrl:appDelegate.activeUrl account:appDelegate.activeAccount];
-            if (result) {
-                appDelegate.sharesLink = result[0];
-                appDelegate.sharesUserAndGroup = result[1];
-            }
-            
-            self.shareLink = [appDelegate.sharesLink objectForKey:[self.serverUrl stringByAppendingString:self.metadata.fileName]];
-            self.shareUserAndGroup = [appDelegate.sharesUserAndGroup objectForKey:[self.serverUrl stringByAppendingString:self.metadata.fileName]];
-            
-            self.itemShareLink = [appDelegate.sharesID objectForKey:self.shareLink];
-            if ([self.shareUserAndGroup length] > 0) self.itemsUserAndGroupLink = [self.shareUserAndGroup componentsSeparatedByString:@","];
-            else self.itemsUserAndGroupLink = nil;
-            
-        } else {
-            
-            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-        }
-        
-        self.form.delegate = nil;
-        
-        // Share Link
-        if ([self.shareLink length] > 0) {
-            
-            [rowShareLinkSwitch setValue:@1];
-            
-            rowShareLinkPermission.disabled = @NO;
-            rowPassword.disabled = @NO;
-            rowHideDownload.disabled = @NO;
-            rowExpirationDate.disabled = @NO;
-            rowExpirationDateSwitch.disabled = @NO;
-            
-            rowSendLinkTo.disabled = @NO;
-            
-        } else {
-            
-            [rowShareLinkSwitch setValue:@0];
-            
-            rowShareLinkPermission.disabled = @YES;
-            rowPassword.disabled = @YES;
-            rowHideDownload.disabled = @YES;
-            rowExpirationDate.disabled = @YES;
-            rowExpirationDateSwitch.disabled = @YES;
-            
-            rowSendLinkTo.disabled = @YES;
-        }
-        
-        // Permission
-       
-        if (self.itemShareLink.permissions > 0 && self.itemShareLink.shareType == shareTypeLink) {
-            switch (self.itemShareLink.permissions) {
-                case 1:
-                    rowShareLinkPermission.value = NSLocalizedString(@"_share_link_readonly_", nil);
-                    break;
-                case 3:
-                    rowShareLinkPermission.value = NSLocalizedString(@"_share_link_modify_", nil);
-                    break;
-                case 4:
-                    rowShareLinkPermission.value = NSLocalizedString(@"_share_link_upload_", nil);
-                    break;
-                case 15:
-                    rowShareLinkPermission.value = NSLocalizedString(@"_share_link_upload_modify_", nil);
-                    break;
-                default:
-                    break;
-            }
-        } else {
-            rowShareLinkPermission.value = NSLocalizedString(@"_share_link_readonly_", nil);
-        }
-        
-        // Password
-        if ([[self.itemShareLink shareWith] length] > 0 && self.itemShareLink.shareType == shareTypeLink)
-            rowPassword.value = [self.itemShareLink shareWith];
-        else
-            rowPassword.value = @"";
-        
-        // Hide Download
-        if (self.itemShareLink.hideDownload) rowHideDownload.value = @1;
-        else rowHideDownload.value = @0;
-        
-        // Expiration Date
-        if (self.itemShareLink.expirationDate) {
-            
-            rowExpirationDateSwitch.value = @1;
-            NSDate *expireDate;
-            
-            if (self.itemShareLink.expirationDate) expireDate = [NSDate dateWithTimeIntervalSince1970: self.itemShareLink.expirationDate];
-            else expireDate = [self tomorrow];
-            
-            rowExpirationDate.value = expireDate;
-            
-        } else {
-            
-            rowExpirationDateSwitch.value = @0;
-            rowExpirationDate.value = [self tomorrow];
-        }
-        
-        // User & Group
-        XLFormSectionDescriptor *section = [self.form formSectionAtIndex:4];
-        [section.formRows removeAllObjects];
-        [self.itemsShareWith removeAllObjects];
-        
-        if ([self.itemsUserAndGroupLink count] > 0) {
-            
-            for (NSString *idRemoteShared in self.itemsUserAndGroupLink) {
-                
-                OCSharedDto *item = [appDelegate.sharesID objectForKey:idRemoteShared];
-                
-                XLFormRowDescriptor *row = [XLFormRowDescriptor formRowDescriptorWithTag:idRemoteShared rowType:XLFormRowDescriptorTypeButton];
-                
-                [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-                //[row.cellConfig setObject:@(UITableViewCellAccessoryDisclosureIndicator) forKey:@"accessoryType"];
-                [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"textLabel.textColor"];
-                row.action.formSelector = @selector(sharePermissionButton:);
-                
-                if (item.shareType == shareTypeGroup) row.title = [item.shareWithDisplayName stringByAppendingString:NSLocalizedString(@"_user_is_group_", nil)];
-                else row.title = item.shareWithDisplayName;
-                
-                //If the initiator or the recipient is not the current user, show the list of sharees without any options to edit it.
-                if (![item.uidOwner isEqualToString:appDelegate.activeUserID] && ![item.uidFileOwner isEqualToString:appDelegate.activeUserID]) {
-                    row.disabled = @YES;
-                }
-                
-                [section addFormRow:row];
-                
-                // add users
-                [self.itemsShareWith addObject:item];
-                
-                // shared with you by
-                if (![item.uidFileOwner isEqualToString:appDelegate.activeUserID]) {
-                    self.labelSharedWithYouBy.text = [NSString stringWithFormat:@"%@ %@", NSLocalizedString(@"_shared_with_you_by_", nil), item.displayNameFileOwner];
-                }
-            }
-            
-            section.footerTitle = NSLocalizedString(@"_user_sharee_footer_", nil);
-            
-        } else {
-            
-            section.footerTitle = @"";
-        }
-        
-        // canShare
-        BOOL canShare = [self.metadata.permissions containsString:k_permission_can_share];
-        if (! canShare) {
-            
-            rowShareLinkSwitch.disabled = @YES;
-            rowShareLinkPermission.disabled = @YES;
-            rowPassword.disabled = @YES;
-            rowHideDownload.disabled = @YES;
-            rowExpirationDate.disabled = @YES;
-            rowExpirationDateSwitch.disabled = @YES;
-            rowSendLinkTo.disabled = @YES;
-            rowFindUser.disabled = @YES;
-            
-            XLFormSectionDescriptor *section = [self.form formSectionAtIndex:4];
-            [section.formRows removeAllObjects];
-        }
-        
-        self.form.disabled = NO;
-        
-        [self.tableView reloadData];
-        
-        self.form.delegate = self;
-    }];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Change Value & Button =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)sendLinkTo:(XLFormRowDescriptor *)sender
-{
-    [self deselectFormRow:sender];
-    
-    NSString *sharedLink = self.itemShareLink.token;
-    NSString *url;
-    
-    if ([sharedLink hasPrefix:@"http://"] || [sharedLink hasPrefix:@"https://"]) {
-        
-        url = sharedLink;
-        
-    } else if (self.itemShareLink.url) {
-        
-        url = self.itemShareLink.url;
-        
-    } else {
-
-        url = [NSString stringWithFormat:@"%@/%@%@", appDelegate.activeUrl, k_share_link_middle_part_url_after_version_8, sharedLink];
-
-    }
-
-    NSArray *activityItems = @[[NSString stringWithFormat:@""], [NSURL URLWithString:url]];
-    NSArray *applicationActivities = nil;
-    
-    UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
-    
-    activityController.popoverPresentationController.sourceView = self.view;
-    NSIndexPath *indexPath = [self.form indexPathOfFormRow:sender];
-    CGRect cellRect = [self.tableView rectForRowAtIndexPath:indexPath];
-    activityController.popoverPresentationController.sourceRect = CGRectOffset(cellRect, -self.tableView.contentOffset.x, -self.tableView.contentOffset.y);
-    
-    [self presentViewController:activityController animated:YES completion:nil];
-}
-
-- (void)shareUserButton:(XLFormRowDescriptor *)rowDescriptor
-{
-    [self deselectFormRow:rowDescriptor];
-    
-    self.shareUserOC = [[UIStoryboard storyboardWithName:@"CCShare" bundle:nil] instantiateViewControllerWithIdentifier:@"CCShareUserOC"];
-    self.shareUserOC.metadata = self.metadata;
-    self.shareUserOC.serverUrl = self.serverUrl;
-    self.shareUserOC.itemsShareWith = self.itemsShareWith;
-    self.shareUserOC.isDirectory = self.metadata.directory;
-    
-    [self.shareUserOC setModalPresentationStyle:UIModalPresentationFormSheet];
-    [self presentViewController:self.shareUserOC animated:YES completion:NULL];
-}
-
-- (void)sharePermissionButton:(XLFormRowDescriptor *)rowDescriptor
-{
-    [self deselectFormRow:rowDescriptor];
-    
-    self.sharePermissionOC = [[UIStoryboard storyboardWithName:@"CCShare" bundle:nil] instantiateViewControllerWithIdentifier:@"CCSharePermissionOC"];
-    self.sharePermissionOC.idRemoteShared = rowDescriptor.tag;
-    self.sharePermissionOC.metadata = self.metadata;
-    self.sharePermissionOC.serverUrl = self.serverUrl;
-    
-    [self.sharePermissionOC setModalPresentationStyle:UIModalPresentationFormSheet];
-    [self presentViewController:self.sharePermissionOC animated:YES completion:NULL];
-}
-
-- (void)formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)rowDescriptor oldValue:(id)oldValue newValue:(id)newValue
-{
-    [super formRowDescriptorValueHasChanged:rowDescriptor oldValue:oldValue newValue:newValue];
-    
-    //OCSharedDto *shareDto = [appDelegate.sharesID objectForKey:self.shareLink];
-    
-    if ([rowDescriptor.tag isEqualToString:@"shareLinkSwitch"]) {
-        
-        if ([[rowDescriptor.value valueData] boolValue] == YES) {
-            
-            if (capabilities.isFilesSharingPublicPasswordEnforced == YES) {
-                
-                __weak __typeof(UIAlertController) *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"_enforce_password_protection_",nil) message:nil preferredStyle:UIAlertControllerStyleAlert];
-                [alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {
-                    textField.secureTextEntry = true;
-                    [textField addTarget:self action:@selector(minCharTextFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
-                }];
-                UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"_cancel_",nil) style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
-                    [self reloadDatasource];
-                }];
-                UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"_ok_", nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
-                    NSString *password = alertController.textFields.firstObject.text;
-                    XLFormRowDescriptor *rowPassword = [self.form formRowWithTag:@"password"];
-                    rowPassword.value = password;
-                    [self share:self.metadata serverUrl:self.serverUrl password:password permission:1 hideDownload:false];
-                    [self disableForm];
-                }];
-                
-                okAction.enabled = NO;
-                
-                [alertController addAction:cancelAction];
-                [alertController addAction:okAction];
-                
-                [self presentViewController:alertController animated:YES completion:nil];
-                
-            } else {
-                
-                [self share:self.metadata serverUrl:self.serverUrl password:@"" permission:1 hideDownload:false];
-                [self disableForm];
-            }
-            
-        } else {
-            
-            // unshare
-            [self unShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl];
-            [self disableForm];
-        }
-    }
-    
-    if ([rowDescriptor.tag isEqualToString:@"shareLinkPermission"]) {
-        
-        [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:nil permission:[self getShareLinkPermission:newValue] hideDownload:false];
-        [self disableForm];
-    }
-    
-    if ([rowDescriptor.tag isEqualToString:@"hideDownload"]) {
-        
-        BOOL hideDownload = [newValue boolValue];
-        
-        [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:nil permission:0 hideDownload:hideDownload];
-        [self disableForm];
-    }
-    
-    if ([rowDescriptor.tag isEqualToString:@"expirationDateSwitch"]) {
-        
-        // remove expiration date
-        if ([[rowDescriptor.value valueData] boolValue] == NO) {
-            
-            [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:@"" permission:0 hideDownload:false];
-            [self disableForm];
-            
-        } else {
-            
-            // new date
-            XLFormRowDescriptor *rowExpirationDate = [self.form formRowWithTag:@"expirationDate"];
-            NSString *expirationDate = [self convertDateInServerFormat:rowExpirationDate.value];
-            
-            [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:expirationDate permission:0 hideDownload:false];
-            [self disableForm];
-        }
-    }
-}
-
-- (void)formRowHasBeenRemoved:(XLFormRowDescriptor *)formRow atIndexPath:(NSIndexPath *)indexPath
-{
-    long long idRemoteShared = [formRow.tag longLongValue];
-    
-    if ([formRow.rowType isEqualToString:@"button"] && idRemoteShared > 0) {
-        
-        [self unShare:formRow.tag metadata:self.metadata serverUrl:self.serverUrl];
-        [self disableForm];
-    }
-}
-
-- (void)beginEditing:(XLFormRowDescriptor *)rowDescriptor
-{
-    [super beginEditing:rowDescriptor];
-    
-    if ([rowDescriptor.tag isEqualToString:@"expirationDate"]) {
-        
-        self.endButton.enabled = NO;
-    }
-}
-
-- (void)endEditing:(XLFormRowDescriptor *)rowDescriptor
-{
-    [super endEditing:rowDescriptor];
-    
-    //OCSharedDto *shareDto = [appDelegate.sharesID objectForKey:self.shareLink];
-    
-    if ([rowDescriptor.tag isEqualToString:@"expirationDate"]) {
-        
-        NSDate *old = [NSDate dateWithTimeIntervalSince1970: self.itemShareLink.expirationDate];
-        NSDate *new = rowDescriptor.value;
-        
-        if ([old compare:new] != NSOrderedSame) {
-        
-            NSString *expirationDate = [self convertDateInServerFormat:rowDescriptor.value];
-        
-            [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:expirationDate permission:0 hideDownload:false];
-            [self disableForm];
-        }
-        
-        self.endButton.enabled = YES;
-    }
-    
-    if ([rowDescriptor.tag isEqualToString:@"password"]) {
-        
-        NSString *password = rowDescriptor.value;
-        
-        // Public Password Enforced Test
-        if (capabilities.isFilesSharingPublicPasswordEnforced == YES && password == nil) {
-            
-            [appDelegate messageNotification:@"_share_link_" description:@"_password_obligatory_" visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:k_CCErrorInternalError];
-
-            [self reloadDatasource];
-            
-        } else {
-        
-            // if the password is not changed or is 0 lenght
-            if ([[self.itemShareLink shareWith] isEqualToString:password]) {
-                
-                [self reloadDatasource];
-                
-            } else {
-                
-                if (password == nil)
-                    password = @"";
-                
-                if (self.shareLink) {
-                    
-                    [self updateShare:self.shareLink metadata:self.metadata serverUrl:self.serverUrl password:password expirationTime:nil permission:0 hideDownload:false];
-                    [self disableForm];
-                }
-            }
-        }
-    }
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Button =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (IBAction)endButtonAction:(id)sender
-{
-    [self.tableView endEditing:YES];
-    
-    [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:self.metadata.serverUrl fileID:self.metadata.fileID action:k_action_MOD];
-    
-    [self.delegate readShareServer];
-    
-    [self dismissViewControllerAnimated:YES completion:nil];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Utility =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)minCharTextFieldDidChange:(UITextField *)sender
-{
-    UIAlertController *alertController = (UIAlertController *)self.presentedViewController;
-    
-    if (alertController) {
-        UITextField *password = alertController.textFields.firstObject;
-        UIAlertAction *okAction = alertController.actions.lastObject;
-        okAction.enabled = password.text.length >= 8;
-    }
-}
-
--(void)disableForm
-{
-    self.form.disabled = YES;
-    [self.tableView endEditing:YES];
-    [self.tableView reloadData];
-}
-
-- (NSString *)convertDateInServerFormat:(NSDate *)date {
-    
-    NSDateFormatter *dateFormatter = [NSDateFormatter new];
-    
-    [dateFormatter setDateFormat:@"YYYY-MM-dd"];
-    
-    return [dateFormatter stringFromDate:date];
-}
-
--(NSDate *)tomorrow
-{
-    NSDate *now = [NSDate date];
-    int daysToAdd = 1;
-    return [now dateByAddingTimeInterval:60*60*24*daysToAdd];
-}
-
-- (NSInteger)getShareLinkPermission:(NSString *)value
-{
-    if ([value isEqualToString:NSLocalizedString(@"_share_link_readonly_", nil)]) {
-        return 1;
-    } else if ([value isEqualToString:NSLocalizedString(@"_share_link_modify_", nil)]) {
-        return 3;
-    } else if ([value isEqualToString:NSLocalizedString(@"_share_link_upload_", nil)]) {
-        return 4;
-    } else if ([value isEqualToString:NSLocalizedString(@"_share_link_upload_modify_", nil)]) {
-        return 15;
-    } else {
-        return 1;
-    }
-}
-
-@end

+ 0 - 41
iOSClient/Share/CCSharePermissionOC.h

@@ -1,41 +0,0 @@
-//
-//  CCSharePermissionOC.h
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 07/03/16.
-//  Copyright (c) 2017 Marino Faggiana. All rights reserved.
-//
-//  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
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-//
-
-#import <UIKit/UIKit.h>
-
-#import "XLFormViewController.h"
-#import "OCShareUser.h"
-#import "UtilsFramework.h"
-
-@class tableMetadata;
-
-@interface CCSharePermissionOC : XLFormViewController
-
-@property (nonatomic, weak) IBOutlet UIButton *endButton;
-@property (nonatomic, strong) NSString *idRemoteShared;
-@property (nonatomic, strong) tableMetadata *metadata;
-@property (nonatomic, strong) NSString *serverUrl;
-
-- (IBAction)endButtonAction:(id)sender;
-
-@end

+ 0 - 205
iOSClient/Share/CCSharePermissionOC.m

@@ -1,205 +0,0 @@
-//
-//  CCSharePermissionOC.m
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 07/03/16.
-//  Copyright (c) 2017 Marino Faggiana. All rights reserved.
-//
-//  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
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-//
-
-#import "CCSharePermissionOC.h"
-#import "AppDelegate.h"
-#import "NCBridgeSwift.h"
-
-@interface CCSharePermissionOC ()
-{
-    AppDelegate *appDelegate;
-    OCSharedDto *shareDto;
-}
-@end
-
-@implementation CCSharePermissionOC
-
-- (instancetype)initWithCoder:(NSCoder *)coder
-{
-    self = [super initWithCoder:coder];
-    if (self) {
-        
-        appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
-    }
-    return self;
-}
-
-- (void)initializeForm
-{
-    XLFormDescriptor *form ;
-    XLFormSectionDescriptor *section;
-    XLFormRowDescriptor *row;
-    
-    form = [XLFormDescriptor formDescriptor];
-    form.rowNavigationOptions = XLFormRowNavigationOptionNone;
-    
-    section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_share_permission_title_", nil)];
-    [form addFormSection:section];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"edit" rowType:XLFormRowDescriptorTypeBooleanCheck title:NSLocalizedString(@"_share_permission_edit_", nil)];
-    if ([UtilsFramework isAnyPermissionToEdit:shareDto.permissions]) row.value = @1;
-    else row.value = @0;
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"tintColor"];
-    [section addFormRow:row];
-    
-    if (shareDto.isDirectory) {
-    
-        row = [XLFormRowDescriptor formRowDescriptorWithTag:@"create" rowType:XLFormRowDescriptorTypeBooleanCheck title:NSLocalizedString(@"_share_permission_create_", nil)];
-        row.hidden = [NSString stringWithFormat:@"$%@==0", @"edit"];
-        if ([UtilsFramework isPermissionToCanCreate:shareDto.permissions]) row.value = @1;
-        else row.value = @0;
-        [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-        [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"tintColor"];
-        [section addFormRow:row];
-    
-        row = [XLFormRowDescriptor formRowDescriptorWithTag:@"change" rowType:XLFormRowDescriptorTypeBooleanCheck title:NSLocalizedString(@"_share_permission_change_", nil)];
-        row.hidden = [NSString stringWithFormat:@"$%@==0", @"edit"];
-        if ([UtilsFramework isPermissionToCanChange:shareDto.permissions]) row.value = @1;
-        else row.value = @0;
-        [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-        [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"tintColor"];
-        [section addFormRow:row];
-    
-        row = [XLFormRowDescriptor formRowDescriptorWithTag:@"delete" rowType:XLFormRowDescriptorTypeBooleanCheck title:NSLocalizedString(@"_share_permission_delete_", nil)];
-        row.hidden = [NSString stringWithFormat:@"$%@==0", @"edit"];
-        if ([UtilsFramework isPermissionToCanDelete:shareDto.permissions]) row.value = @1;
-        else row.value = @0;
-        [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-        [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"tintColor"];
-        [section addFormRow:row];
-    }
-    
-    section = [XLFormSectionDescriptor formSection];
-    [form addFormSection:section];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"share" rowType:XLFormRowDescriptorTypeBooleanCheck title:NSLocalizedString(@"_share_permission_share_", nil)];
-    if ([UtilsFramework isPermissionToCanShare:shareDto.permissions]) row.value = @1;
-    else row.value = @0;
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"tintColor"];
-    [section addFormRow:row];
-    
-    section = [XLFormSectionDescriptor formSection];
-    [form addFormSection:section];
-    
-    section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_share_permission_info_", nil)];
-    [form addFormSection:section];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"sharepath" rowType:XLFormRowDescriptorTypeInfo title:NSLocalizedString(@"_share_permission_path_", nil)];
-    row.value = self.metadata.fileNameView;
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"detailTextLabel.font"];
-    [section addFormRow:row];
-
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"sharetype" rowType:XLFormRowDescriptorTypeInfo title:NSLocalizedString(@"_share_permission_type_", nil)];
-    if (shareDto.shareType == shareTypeUser) row.value = NSLocalizedString(@"_share_permission_typeuser_", nil);
-    if (shareDto.shareType == shareTypeGroup) row.value = NSLocalizedString(@"_share_permission_typegroup_", nil);
-    if (shareDto.shareType == shareTypeLink) row.value = NSLocalizedString(@"_share_permission_typepubliclink_", nil);
-    if (shareDto.shareType == shareTypeRemote) row.value = NSLocalizedString(@"_share_permission_typefederated_", nil);
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"detailTextLabel.font"];
-    [section addFormRow:row];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"shareowner" rowType:XLFormRowDescriptorTypeInfo title:NSLocalizedString(@"_share_permission_owner_", nil)];
-    row.value = shareDto.displayNameOwner;
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"detailTextLabel.font"];
-    [section addFormRow:row];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"sharedate" rowType:XLFormRowDescriptorTypeInfo title:NSLocalizedString(@"_share_permission_date_", nil)];
-    NSDate *date = [NSDate dateWithTimeIntervalSince1970:shareDto.sharedDate];
-    row.value = [NSDateFormatter localizedStringFromDate:date dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"detailTextLabel.font"];
-    [section addFormRow:row];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"sharemail" rowType:XLFormRowDescriptorTypeInfo title:NSLocalizedString(@"_share_permission_email_", nil)];
-    if (shareDto.mailSend == 0) row.value = NSLocalizedString(@"_no_", nil);
-    if (shareDto.mailSend == 1) row.value = NSLocalizedString(@"_yes_", nil);
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"detailTextLabel.font"];
-    [section addFormRow:row];
-
-    self.form = form;
-}
-
-- (void)viewDidLoad
-{
-    [super viewDidLoad];
-    
-    self.view.backgroundColor = [NCBrandColor sharedInstance].backgroundView;
-    
-    [self.endButton setTitle:NSLocalizedString(@"_done_", nil) forState:UIControlStateNormal];
-    self.endButton.tintColor = [UIColor blackColor];
-    
-    self.tableView.backgroundColor = [NCBrandColor sharedInstance].backgroundView;
-    
-    shareDto = [appDelegate.sharesID objectForKey:self.idRemoteShared];
-        
-    [self initializeForm];    
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Networking =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)updateShare:(NSString *)share metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl password:(NSString *)password expirationTime:(NSString *)expirationTime permission:(NSInteger)permission hideDownload:(BOOL)hideDownload
-{
-    [[OCNetworking sharedManager] shareUpdateAccount:appDelegate.activeAccount shareID:[share integerValue] password:password permission:permission expirationTime:expirationTime hideDownload:hideDownload completion:^(NSString *account, NSString *message, NSInteger errorCode) {
-        
-        if (errorCode != 0) {
-            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-        }
-        
-        [self dismissViewControllerAnimated:YES completion:nil];
-    }];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Button =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (IBAction)endButtonAction:(id)sender
-{
-    NSInteger permission;
-    
-    XLFormRowDescriptor *rowEdit = [self.form formRowWithTag:@"edit"];
-    XLFormRowDescriptor *rowCreate = [self.form formRowWithTag:@"create"];
-    XLFormRowDescriptor *rowChange = [self.form formRowWithTag:@"change"];
-    XLFormRowDescriptor *rowDelete = [self.form formRowWithTag:@"delete"];
-    XLFormRowDescriptor *rowShare = [self.form formRowWithTag:@"share"];
-    
-    if ([rowEdit.value boolValue] == 0) 
-        permission = [UtilsFramework getPermissionsValueByCanEdit:NO andCanCreate:NO andCanChange:NO andCanDelete:NO andCanShare:[rowShare.value boolValue] andIsFolder:shareDto.isDirectory];
-    else
-        permission = [UtilsFramework getPermissionsValueByCanEdit:[rowEdit.value boolValue] andCanCreate:[rowCreate.value boolValue] andCanChange:[rowChange.value boolValue] andCanDelete:[rowDelete.value boolValue] andCanShare:[rowShare.value boolValue] andIsFolder:shareDto.isDirectory];
-    
-    if (permission != shareDto.permissions) {
-        [self updateShare:self.idRemoteShared metadata:self.metadata serverUrl:self.serverUrl password:nil expirationTime:nil permission:permission hideDownload:false];
-    } else {
-        [self dismissViewControllerAnimated:YES completion:nil];
-    }
-}
-
-@end

+ 0 - 50
iOSClient/Share/CCShareUserOC.h

@@ -1,50 +0,0 @@
-//
-//  CCShareUserOC.h
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 30/11/15.
-//  Copyright (c) 2017 Marino Faggiana. All rights reserved.
-//
-//  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
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-//
-
-#import <UIKit/UIKit.h>
-
-#import "XLFormViewController.h"
-#import "OCShareUser.h"
-#import "OCConstants.h"
-
-@class tableMetadata;
-
-@interface CCShareUserOC : XLFormViewController
-
-@property (nonatomic, weak) IBOutlet UIButton *endButton;
-
-@property (nonatomic, strong) NSMutableArray *selectedItems;
-@property (nonatomic, strong) NSArray *itemsShareWith;
-@property (nonatomic, strong) NSMutableArray *users;
-@property (nonatomic, strong) NSString *directUser;
-@property (nonatomic, strong) tableMetadata *metadata;
-@property (nonatomic, strong) NSString *serverUrl;
-
-@property BOOL isDirectory;
-@property NSInteger shareType;
-
-- (IBAction)endButtonAction:(id)sender;
-
-- (void)reloadUserAndGroup:(NSArray *)items;
-
-@end

+ 0 - 268
iOSClient/Share/CCShareUserOC.m

@@ -1,268 +0,0 @@
-//
-//  CCShareUserOC.m
-//  Nextcloud
-//
-//  Created by Marino Faggiana on 30/11/15.
-//  Copyright (c) 2017 Marino Faggiana. All rights reserved.
-//
-//  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
-//  the Free Software Foundation, either version 3 of the License, or
-//  (at your option) any later version.
-//
-//  This program is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-//  GNU General Public License for more details.
-//
-//  You should have received a copy of the GNU General Public License
-//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
-//
-
-#import "CCShareUserOC.h"
-#import "AppDelegate.h"
-#import "NCBridgeSwift.h"
-
-@interface CCShareUserOC ()
-{
-    AppDelegate *appDelegate;
-}
-@end
-
-@implementation CCShareUserOC
-
-- (instancetype)initWithCoder:(NSCoder *)coder
-{
-    self = [super initWithCoder:coder];
-    if (self) {
-        
-        appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
-
-        self.directUser = @"";
-        
-        [self initializeForm];
-    }
-    return self;
-}
-
-- (void)initializeForm
-{
-    XLFormDescriptor *form ;
-    XLFormSectionDescriptor *section;
-    XLFormRowDescriptor *row;
-    
-    form = [XLFormDescriptor formDescriptor];
-    form.rowNavigationOptions = XLFormRowNavigationOptionNone;
-    form.assignFirstResponderOnShow = NO;
-    
-    section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_find_sharee_title_", nil)];
-    [form addFormSection:section];
-    section.footerTitle = NSLocalizedString(@"_find_sharee_footer_", nil);
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"findUser" rowType:XLFormRowDescriptorTypeAccount];
-    [row.cellConfigAtConfigure setObject:NSLocalizedString(@"_find_sharee_", nil) forKey:@"textField.placeholder"];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textField.font"];
-    [section addFormRow:row];
-    
-    section = [XLFormSectionDescriptor formSection];
-    [form addFormSection:section];
-    
-    section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_direct_sharee_title_", nil)];
-    [form addFormSection:section];
-    section.footerTitle = NSLocalizedString(@"_direct_sharee_footer_", nil);
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"directUser" rowType:XLFormRowDescriptorTypeAccount];
-    [row.cellConfigAtConfigure setObject:NSLocalizedString(@"_direct_sharee_", nil) forKey:@"textField.placeholder"];
-    [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textField.font"];
-    [section addFormRow:row];
-    
-    section = [XLFormSectionDescriptor formSectionWithTitle:NSLocalizedString(@"_share_type_title_", nil)];
-    [form addFormSection:section];
-    
-    row = [XLFormRowDescriptor formRowDescriptorWithTag:@"shareType" rowType:XLFormRowDescriptorTypePicker];
-    row.selectorOptions = @[NSLocalizedString(@"_share_type_user_", nil), NSLocalizedString(@"_share_type_group_", nil), NSLocalizedString(@"_share_type_remote_", nil)];
-    row.value = NSLocalizedString(@"_share_type_user_", nil);
-    self.shareType = shareTypeUser;
-    row.height = 100;
-    [section addFormRow:row];
-
-    section = [XLFormSectionDescriptor formSection];
-    [form addFormSection:section];
-    
-    self.form = form;
-}
-
-- (void)viewDidLoad
-{
-    [super viewDidLoad];
-    
-    self.selectedItems = [[NSMutableArray alloc] init];
-    
-    self.view.backgroundColor = [NCBrandColor sharedInstance].backgroundView;
-    
-    [self.endButton setTitle:NSLocalizedString(@"_done_", nil) forState:UIControlStateNormal];
-    self.endButton.tintColor = [UIColor blackColor];
-    
-    self.tableView.backgroundColor = [NCBrandColor sharedInstance].backgroundView;
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Networking =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)shareUserAndGroup:(NSString *)user shareeType:(NSInteger)shareeType permission:(NSInteger)permission metadata:(tableMetadata *)metadata serverUrl:(NSString *)serverUrl
-{
-    NSString *fileName = [CCUtility returnFileNamePathFromFileName:metadata.fileName serverUrl:serverUrl activeUrl:appDelegate.activeUrl];
-    
-    [[OCNetworking sharedManager] shareUserGroupWithAccount:appDelegate.activeAccount userOrGroup:user fileName:fileName permission:permission shareeType:shareeType completion:^(NSString *account, NSString *message, NSInteger errorCode) {
-        
-        if (errorCode != 0) {
-            [appDelegate messageNotification:@"_share_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-        }
-    }];
-}
-
-- (void)getUserAndGroup:(NSString *)find
-{
-    [[OCNetworking sharedManager] getUserGroupWithAccount:appDelegate.activeAccount searchString:find completion:^(NSString *account, NSArray *item, NSString *message, NSInteger errorCode) {
-        
-        if (errorCode == 0) {
-            [self reloadUserAndGroup:item];
-        } else {
-            [appDelegate messageNotification:@"_error_" description:message visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:errorCode];
-        }
-    }];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Button =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (IBAction)endButtonAction:(id)sender
-{
-    NSInteger permission;
-        
-    if (self.isDirectory) permission = k_max_folder_share_permission;
-    else permission = k_max_file_share_permission;
-    
-    // start share of select users
-    for (NSString *num in self.selectedItems) {
-        
-        // fix #166 Crashlytics
-        if (self.users.count > 0 && [num integerValue] < self.users.count) {
-            
-            OCShareUser *item = [self.users objectAtIndex:[num integerValue]];
-            [self shareUserAndGroup:item.name shareeType:item.shareeType permission:permission metadata:self.metadata serverUrl:self.serverUrl];
-        }
-    }
-    
-    // add manual user
-    if ([self.directUser isEqual:[NSNull null]] == NO && [self.directUser length] > 0 && [self.directUser isEqualToString:appDelegate.activeUser] == NO) {
-        [self shareUserAndGroup:self.directUser shareeType:self.shareType permission:permission metadata:self.metadata serverUrl:self.serverUrl];
-    }
-        
-    [self dismissViewControllerAnimated:YES completion:nil];
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Change Value =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)formRowDescriptorValueHasChanged:(XLFormRowDescriptor *)rowDescriptor oldValue:(id)oldValue newValue:(id)newValue
-{
-    [super formRowDescriptorValueHasChanged:rowDescriptor oldValue:oldValue newValue:newValue];
-    
-    if ([rowDescriptor.rowType isEqualToString:XLFormRowDescriptorTypeBooleanCheck]) {
-            
-        if ([newValue boolValue] == YES)
-            [self.selectedItems addObject:rowDescriptor.tag];
-        if ([newValue boolValue] == NO)
-            [self.selectedItems removeObject:rowDescriptor.tag];
-    }
-    
-    if ([rowDescriptor.tag isEqualToString:@"directUser"]) {
-        
-        self.directUser = newValue;
-    }
-    
-    if ([rowDescriptor.tag isEqualToString:@"shareType"]){
-        
-        if ([newValue isEqualToString:NSLocalizedString(@"_share_type_user_", nil)])
-            self.shareType = shareTypeUser;
-        if ([newValue isEqualToString:NSLocalizedString(@"_share_type_group_", nil)])
-            self.shareType = shareTypeGroup;
-        if ([newValue isEqualToString:NSLocalizedString(@"_share_type_remote_", nil)])
-            self.shareType = shareTypeRemote;
-    }
-}
-
-- (void)endEditing:(XLFormRowDescriptor *)rowDescriptor
-{
-    [super endEditing:rowDescriptor];
-    
-    if ([rowDescriptor.tag isEqualToString:@"findUser"]) {
-        
-        rowDescriptor.value = [rowDescriptor.value stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
-        
-        if ([rowDescriptor.value length] > 1)
-            [self getUserAndGroup:rowDescriptor.value];
-    }
-}
-
-#pragma --------------------------------------------------------------------------------------------
-#pragma mark ===== Delegate =====
-#pragma --------------------------------------------------------------------------------------------
-
-- (void)reloadUserAndGroup:(NSArray *)items
-{
-    self.users = [[NSMutableArray alloc] initWithArray:items];
-    
-    self.form.delegate = nil;
-    
-    // remove the select users and i
-    for (OCShareUser *user in items) {
-        
-        for (OCSharedDto *item in self.itemsShareWith)
-            if ([item.shareWith isEqualToString:user.name] && ((item.shareType == shareTypeGroup && user.shareeType == 1) || (item.shareType != shareTypeGroup && user.shareeType == 0)))
-                [self.users removeObject:user];
-        
-        if ([self.itemsShareWith containsObject:user.name] || [user.name isEqualToString:appDelegate.activeUser])
-            [self.users removeObject:user];
-    }
-    
-    XLFormSectionDescriptor *section = [self.form formSectionAtIndex:1];
-    [section.formRows removeAllObjects];
-    
-    for (OCShareUser *item in self.users) {
-        
-        NSInteger num = [self.users indexOfObject:item];
-        
-        NSString *title;
-        
-        if (item.shareeType == 1) {
-            if (item.displayName)
-                title = [item.displayName stringByAppendingString:NSLocalizedString(@"_user_is_group_", nil)];
-            else
-                title = [item.name stringByAppendingString:NSLocalizedString(@"_user_is_group_", nil)];
-        } else {
-            if (item.displayName)
-                title = item.displayName;
-            else
-                title = item.name;
-        }
-        
-        XLFormRowDescriptor *row = [XLFormRowDescriptor formRowDescriptorWithTag:[@(num) stringValue] rowType:XLFormRowDescriptorTypeBooleanCheck title:title];
-        [row.cellConfig setObject:[UIFont systemFontOfSize:15.0]forKey:@"textLabel.font"];
-        [row.cellConfig setObject:[NCBrandColor sharedInstance].brandElement forKey:@"self.tintColor"];
-        
-        [section addFormRow:row];
-    }
-    
-    [self.tableView reloadData];
-    
-    self.form.delegate = self;
-}
-
-@end

+ 5 - 14
iOSClient/Share/NCShare.storyboard

@@ -71,22 +71,17 @@
                                 <rect key="frame" x="5" y="244" width="404" height="608"/>
                                 <rect key="frame" x="5" y="244" width="404" height="608"/>
                                 <subviews>
                                 <subviews>
                                     <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" clearButtonMode="always" translatesAutoresizingMaskIntoConstraints="NO" id="iSO-mc-0TB">
                                     <textField opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" clearButtonMode="always" translatesAutoresizingMaskIntoConstraints="NO" id="iSO-mc-0TB">
-                                        <rect key="frame" x="5" y="20" width="354" height="30"/>
+                                        <rect key="frame" x="5" y="20" width="389" height="30"/>
                                         <constraints>
                                         <constraints>
                                             <constraint firstAttribute="height" constant="30" id="0aG-z9-fcy"/>
                                             <constraint firstAttribute="height" constant="30" id="0aG-z9-fcy"/>
                                         </constraints>
                                         </constraints>
                                         <nil key="textColor"/>
                                         <nil key="textColor"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="15"/>
                                         <fontDescription key="fontDescription" type="system" pointSize="15"/>
                                         <textInputTraits key="textInputTraits"/>
                                         <textInputTraits key="textInputTraits"/>
+                                        <connections>
+                                            <action selector="searchFieldDidEndOnExitWithTextField:" destination="bgO-Rz-2M1" eventType="editingDidEndOnExit" id="xH6-YR-5W9"/>
+                                        </connections>
                                     </textField>
                                     </textField>
-                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f5j-bG-pbj">
-                                        <rect key="frame" x="369" y="20" width="30" height="30"/>
-                                        <constraints>
-                                            <constraint firstAttribute="height" constant="30" id="Ikg-Fn-Sfc"/>
-                                            <constraint firstAttribute="width" constant="30" id="rfv-yn-tpm"/>
-                                        </constraints>
-                                        <state key="normal" image="arrowRight"/>
-                                    </button>
                                     <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="c94-b9-Sim">
                                     <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="c94-b9-Sim">
                                         <rect key="frame" x="0.0" y="118" width="404" height="490"/>
                                         <rect key="frame" x="0.0" y="118" width="404" height="490"/>
                                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
@@ -129,17 +124,15 @@
                                 </subviews>
                                 </subviews>
                                 <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <constraints>
                                 <constraints>
-                                    <constraint firstItem="f5j-bG-pbj" firstAttribute="centerY" secondItem="iSO-mc-0TB" secondAttribute="centerY" id="8Aa-Tz-QVA"/>
                                     <constraint firstAttribute="trailing" secondItem="c94-b9-Sim" secondAttribute="trailing" id="BtN-cJ-TTc"/>
                                     <constraint firstAttribute="trailing" secondItem="c94-b9-Sim" secondAttribute="trailing" id="BtN-cJ-TTc"/>
                                     <constraint firstItem="c94-b9-Sim" firstAttribute="top" secondItem="iSO-mc-0TB" secondAttribute="bottom" constant="68" id="Co6-l6-HiT"/>
                                     <constraint firstItem="c94-b9-Sim" firstAttribute="top" secondItem="iSO-mc-0TB" secondAttribute="bottom" constant="68" id="Co6-l6-HiT"/>
-                                    <constraint firstItem="f5j-bG-pbj" firstAttribute="leading" secondItem="iSO-mc-0TB" secondAttribute="trailing" constant="10" id="GBQ-j9-3mM"/>
                                     <constraint firstItem="SQW-aQ-ydN" firstAttribute="centerY" secondItem="8Cj-cK-AKZ" secondAttribute="centerY" id="LtS-8d-L7a"/>
                                     <constraint firstItem="SQW-aQ-ydN" firstAttribute="centerY" secondItem="8Cj-cK-AKZ" secondAttribute="centerY" id="LtS-8d-L7a"/>
                                     <constraint firstItem="Qek-aQ-NjE" firstAttribute="centerY" secondItem="8Cj-cK-AKZ" secondAttribute="centerY" id="NYZ-hc-SBk"/>
                                     <constraint firstItem="Qek-aQ-NjE" firstAttribute="centerY" secondItem="8Cj-cK-AKZ" secondAttribute="centerY" id="NYZ-hc-SBk"/>
                                     <constraint firstItem="SQW-aQ-ydN" firstAttribute="leading" secondItem="8Cj-cK-AKZ" secondAttribute="trailing" constant="8" id="Oby-Ea-MaC"/>
                                     <constraint firstItem="SQW-aQ-ydN" firstAttribute="leading" secondItem="8Cj-cK-AKZ" secondAttribute="trailing" constant="8" id="Oby-Ea-MaC"/>
                                     <constraint firstItem="cLd-wD-cSC" firstAttribute="leading" secondItem="SQW-aQ-ydN" secondAttribute="trailing" constant="10" id="PFh-qU-yXY"/>
                                     <constraint firstItem="cLd-wD-cSC" firstAttribute="leading" secondItem="SQW-aQ-ydN" secondAttribute="trailing" constant="10" id="PFh-qU-yXY"/>
                                     <constraint firstAttribute="bottom" secondItem="c94-b9-Sim" secondAttribute="bottom" id="Svm-RV-vnl"/>
                                     <constraint firstAttribute="bottom" secondItem="c94-b9-Sim" secondAttribute="bottom" id="Svm-RV-vnl"/>
+                                    <constraint firstAttribute="trailing" secondItem="iSO-mc-0TB" secondAttribute="trailing" constant="10" id="Vhu-GP-EJN"/>
                                     <constraint firstItem="8Cj-cK-AKZ" firstAttribute="leading" secondItem="X2m-IC-J1u" secondAttribute="leading" constant="5" id="WlZ-CY-x4s"/>
                                     <constraint firstItem="8Cj-cK-AKZ" firstAttribute="leading" secondItem="X2m-IC-J1u" secondAttribute="leading" constant="5" id="WlZ-CY-x4s"/>
-                                    <constraint firstAttribute="trailing" secondItem="f5j-bG-pbj" secondAttribute="trailing" constant="5" id="Yb4-KO-nwi"/>
                                     <constraint firstItem="Qek-aQ-NjE" firstAttribute="leading" secondItem="cLd-wD-cSC" secondAttribute="trailing" constant="30" id="bSw-vM-d12"/>
                                     <constraint firstItem="Qek-aQ-NjE" firstAttribute="leading" secondItem="cLd-wD-cSC" secondAttribute="trailing" constant="30" id="bSw-vM-d12"/>
                                     <constraint firstItem="iSO-mc-0TB" firstAttribute="leading" secondItem="X2m-IC-J1u" secondAttribute="leading" constant="5" id="d8E-WM-YfC"/>
                                     <constraint firstItem="iSO-mc-0TB" firstAttribute="leading" secondItem="X2m-IC-J1u" secondAttribute="leading" constant="5" id="d8E-WM-YfC"/>
                                     <constraint firstItem="iSO-mc-0TB" firstAttribute="top" secondItem="X2m-IC-J1u" secondAttribute="top" constant="20" id="jPM-Uo-0lS"/>
                                     <constraint firstItem="iSO-mc-0TB" firstAttribute="top" secondItem="X2m-IC-J1u" secondAttribute="top" constant="20" id="jPM-Uo-0lS"/>
@@ -162,7 +155,6 @@
                     <connections>
                     <connections>
                         <outlet property="buttonCopy" destination="cLd-wD-cSC" id="Sib-oL-uQx"/>
                         <outlet property="buttonCopy" destination="cLd-wD-cSC" id="Sib-oL-uQx"/>
                         <outlet property="buttonMenu" destination="Qek-aQ-NjE" id="xfp-a1-YDn"/>
                         <outlet property="buttonMenu" destination="Qek-aQ-NjE" id="xfp-a1-YDn"/>
-                        <outlet property="returnSearchButton" destination="f5j-bG-pbj" id="Frk-T3-NV9"/>
                         <outlet property="searchField" destination="iSO-mc-0TB" id="1vY-Js-dGQ"/>
                         <outlet property="searchField" destination="iSO-mc-0TB" id="1vY-Js-dGQ"/>
                         <outlet property="shareLinkImage" destination="8Cj-cK-AKZ" id="dIZ-nv-gyf"/>
                         <outlet property="shareLinkImage" destination="8Cj-cK-AKZ" id="dIZ-nv-gyf"/>
                         <outlet property="shareLinkLabel" destination="SQW-aQ-ydN" id="nBK-WJ-oKy"/>
                         <outlet property="shareLinkLabel" destination="SQW-aQ-ydN" id="nBK-WJ-oKy"/>
@@ -176,7 +168,6 @@
         </scene>
         </scene>
     </scenes>
     </scenes>
     <resources>
     <resources>
-        <image name="arrowRight" width="329" height="329"/>
         <image name="shareCopy" width="329" height="329"/>
         <image name="shareCopy" width="329" height="329"/>
         <image name="shareMenu" width="329" height="329"/>
         <image name="shareMenu" width="329" height="329"/>
     </resources>
     </resources>

+ 25 - 14
iOSClient/Share/NCShare.swift

@@ -28,7 +28,6 @@ class NCShare: UIViewController, UIGestureRecognizerDelegate, NCShareLinkCellDel
     
     
     @IBOutlet weak var viewContainerConstraint: NSLayoutConstraint!
     @IBOutlet weak var viewContainerConstraint: NSLayoutConstraint!
     @IBOutlet weak var searchField: UITextField!
     @IBOutlet weak var searchField: UITextField!
-    @IBOutlet weak var returnSearchButton: UIButton!
     @IBOutlet weak var shareLinkImage: UIImageView!
     @IBOutlet weak var shareLinkImage: UIImageView!
     @IBOutlet weak var shareLinkLabel: UILabel!
     @IBOutlet weak var shareLinkLabel: UILabel!
     @IBOutlet weak var buttonCopy: UIButton!
     @IBOutlet weak var buttonCopy: UIButton!
@@ -50,7 +49,6 @@ class NCShare: UIViewController, UIGestureRecognizerDelegate, NCShareLinkCellDel
         
         
         searchField.placeholder = NSLocalizedString("_shareLinksearch_placeholder_", comment: "")
         searchField.placeholder = NSLocalizedString("_shareLinksearch_placeholder_", comment: "")
         
         
-        returnSearchButton.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "arrowRight"), width: 100, height: 100, color: UIColor.gray), for: .normal)
         shareLinkLabel.text = NSLocalizedString("_share_link_", comment: "")
         shareLinkLabel.text = NSLocalizedString("_share_link_", comment: "")
         shareLinkImage.image = NCShareCommon.sharedInstance.createLinkAvatar()
         shareLinkImage.image = NCShareCommon.sharedInstance.createLinkAvatar()
         buttonCopy.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "shareCopy"), width: 100, height: 100, color: UIColor.gray), for: .normal)
         buttonCopy.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "shareCopy"), width: 100, height: 100, color: UIColor.gray), for: .normal)
@@ -77,6 +75,28 @@ class NCShare: UIViewController, UIGestureRecognizerDelegate, NCShareLinkCellDel
         shareUserMenuView = nil
         shareUserMenuView = nil
     }
     }
     
     
+    @objc func reloadData() {
+        let shares = NCManageDatabase.sharedInstance.getTableShares(metadata: metadata!)
+        if shares.firstShareLink == nil {
+            buttonMenu.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "shareAdd"), width: 100, height: 100, color: UIColor.gray), for: .normal)
+            buttonCopy.isHidden = true
+        } else {
+            buttonMenu.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "shareMenu"), width: 100, height: 100, color: UIColor.gray), for: .normal)
+            buttonCopy.isHidden = false
+        }
+        tableView.reloadData()
+    }
+    
+    // MARK: - IBAction
+
+    @IBAction func searchFieldDidEndOnExit(textField: UITextField) {
+        
+        guard let searchString = textField.text else { return }
+        
+        let networking = NCShareNetworking.init(account: metadata!.account, activeUrl: appDelegate.activeUrl, view: self.view, delegate: self)
+        networking.getUserAndGroup(searchString: searchString)
+    }
+    
     @IBAction func touchUpInsideButtonCopy(_ sender: Any) {
     @IBAction func touchUpInsideButtonCopy(_ sender: Any) {
         let shares = NCManageDatabase.sharedInstance.getTableShares(metadata: metadata!)
         let shares = NCManageDatabase.sharedInstance.getTableShares(metadata: metadata!)
         tapCopy(with: shares.firstShareLink, sender: sender)
         tapCopy(with: shares.firstShareLink, sender: sender)
@@ -133,19 +153,8 @@ class NCShare: UIViewController, UIGestureRecognizerDelegate, NCShareLinkCellDel
         }
         }
     }
     }
     
     
-    @objc func reloadData() {
-        let shares = NCManageDatabase.sharedInstance.getTableShares(metadata: metadata!)
-        if shares.firstShareLink == nil {
-            buttonMenu.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "shareAdd"), width: 100, height: 100, color: UIColor.gray), for: .normal)
-            buttonCopy.isHidden = true
-        } else {
-            buttonMenu.setImage(CCGraphics.changeThemingColorImage(UIImage.init(named: "shareMenu"), width: 100, height: 100, color: UIColor.gray), for: .normal)
-            buttonCopy.isHidden = false
-        }
-        tableView.reloadData()
-    }
+    /// MARK: - NCShareNetworkingDelegate
     
     
-    // NCShareNetworkingDelegate
     func readShareCompleted(errorCode: Int) {
     func readShareCompleted(errorCode: Int) {
         NotificationCenter.default.post(name: NSNotification.Name(rawValue: "reloadDataNCShare"), object: nil, userInfo: nil)
         NotificationCenter.default.post(name: NSNotification.Name(rawValue: "reloadDataNCShare"), object: nil, userInfo: nil)
     }
     }
@@ -157,6 +166,8 @@ class NCShare: UIViewController, UIGestureRecognizerDelegate, NCShareLinkCellDel
     func unShareCompleted() { }
     func unShareCompleted() { }
     
     
     func updateShareWithError(idRemoteShared: Int) { }
     func updateShareWithError(idRemoteShared: Int) { }
+    
+    func getUserAndGroup(items: [OCShareUser]?) { }
 }
 }
 
 
 // MARK: - UITableViewDelegate
 // MARK: - UITableViewDelegate

+ 2 - 0
iOSClient/Share/NCShareLinkMenuView.swift

@@ -266,6 +266,8 @@ class NCShareLinkMenuView: UIView, UIGestureRecognizerDelegate, NCShareNetworkin
         reloadData(idRemoteShared: idRemoteShared)
         reloadData(idRemoteShared: idRemoteShared)
     }
     }
     
     
+    func getUserAndGroup(items: [OCShareUser]?) { }
+    
     // MARK: - Delegate calendar
     // MARK: - Delegate calendar
     
     
     func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
     func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {

+ 15 - 0
iOSClient/Share/NCShareNetworking.swift

@@ -101,6 +101,20 @@ class NCShareNetworking: NSObject {
             }
             }
         })
         })
     }
     }
+    
+    func getUserAndGroup(searchString: String) {
+        NCUtility.sharedInstance.startActivityIndicator(view: view, bottom: 0)
+        OCNetworking.sharedManager()?.getUserGroup(withAccount: account, search: searchString, completion: { (account, items, message, errorCode) in
+            NCUtility.sharedInstance.stopActivityIndicator()
+            if errorCode == 0 {
+                let itemsOCShareUser = items as! [OCShareUser]
+                self.delegate?.getUserAndGroup(items: itemsOCShareUser)
+            } else {
+                self.appDelegate.messageNotification("_share_", description: message, visible: true, delay: TimeInterval(k_dismissAfterSecond), type: TWMessageBarMessageType.error, errorCode: errorCode)
+                self.delegate?.getUserAndGroup(items: nil)
+            }
+        })
+    }
 }
 }
 
 
 protocol NCShareNetworkingDelegate {
 protocol NCShareNetworkingDelegate {
@@ -108,4 +122,5 @@ protocol NCShareNetworkingDelegate {
     func shareCompleted(errorCode: Int)
     func shareCompleted(errorCode: Int)
     func unShareCompleted()
     func unShareCompleted()
     func updateShareWithError(idRemoteShared: Int)
     func updateShareWithError(idRemoteShared: Int)
+    func getUserAndGroup(items: [OCShareUser]?)
 }
 }

+ 2 - 0
iOSClient/Share/NCShareUserMenuView.swift

@@ -202,6 +202,8 @@ class NCShareUserMenuView: UIView, UIGestureRecognizerDelegate, NCShareNetworkin
         reloadData(idRemoteShared: idRemoteShared)
         reloadData(idRemoteShared: idRemoteShared)
     }
     }
     
     
+    func getUserAndGroup(items: [OCShareUser]?) { }
+    
     // MARK: - Delegate calendar
     // MARK: - Delegate calendar
 
 
     func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {
     func calendar(_ calendar: FSCalendar, didSelect date: Date, at monthPosition: FSCalendarMonthPosition) {