marinofaggiana 5 tahun lalu
induk
melakukan
cbe1863c41

+ 19 - 7
iOSClient/Activity/NCActivity.swift

@@ -35,6 +35,9 @@ class NCActivity: UIViewController, DZNEmptyDataSetSource, DZNEmptyDataSetDelega
     var activities = [tableActivity]()
     var sectionDate = [Date]()
     var insets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
+    var refreshControlEnable: Bool = true
+    var didSelectItemEnable: Bool = true
+    var filterFileID: String?
     
     var loadingActivity = false
 
@@ -48,13 +51,15 @@ class NCActivity: UIViewController, DZNEmptyDataSetSource, DZNEmptyDataSetDelega
         tableView.allowsSelection = false
         tableView.separatorColor = UIColor.clear
         tableView.tableFooterView = UIView()
-        tableView.refreshControl = refreshControl
         tableView.contentInset = insets
         
         // Configure Refresh Control
-        refreshControl.tintColor = NCBrandColor.sharedInstance.brandText
-        refreshControl.backgroundColor = NCBrandColor.sharedInstance.brand
-        refreshControl.addTarget(self, action: #selector(loadActivityRefreshing), for: .valueChanged)
+        if refreshControlEnable {
+            tableView.refreshControl = refreshControl
+            refreshControl.tintColor = NCBrandColor.sharedInstance.brandText
+            refreshControl.backgroundColor = NCBrandColor.sharedInstance.brand
+            refreshControl.addTarget(self, action: #selector(loadActivityRefreshing), for: .valueChanged)
+        }
     }
     
     override func viewWillAppear(_ animated: Bool) {
@@ -105,7 +110,8 @@ class activityTableViewCell: UITableViewCell {
     var idActivity: Int = 0
     var account: String = ""
     var activityPreviews = [tableActivityPreview]()
-    
+    var didSelectItemEnable: Bool = true
+
     override func awakeFromNib() {
         super.awakeFromNib()
         
@@ -175,6 +181,7 @@ extension NCActivity: UITableViewDataSource {
             cell.avatar.image = nil
             cell.avatar.isHidden = true
             cell.subjectTrailingConstraint.constant = 10
+            cell.didSelectItemEnable = self.didSelectItemEnable
             
             // icon
             if activity.icon.count > 0 {
@@ -310,6 +317,11 @@ extension activityTableViewCell: UICollectionViewDelegate {
     
     func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
         
+        // Select not permitted
+        if !didSelectItemEnable {
+            return
+        }
+        
         let activityPreview = activityPreviews[indexPath.row]
         
         if activityPreview.view == "trashbin" {
@@ -511,7 +523,7 @@ extension NCActivity {
         
         sectionDate.removeAll()
         
-        activities = NCManageDatabase.sharedInstance.getActivity(predicate: NSPredicate(format: "account == %@", appDelegate.activeAccount))
+        activities = NCManageDatabase.sharedInstance.getActivity(predicate: NSPredicate(format: "account == %@", appDelegate.activeAccount), filterFileID: filterFileID)
         for tableActivity in activities {
             guard let date = Calendar.current.date(from: Calendar.current.dateComponents([.year, .month, .day], from: tableActivity.date as Date)) else {
                 continue
@@ -530,7 +542,7 @@ extension NCActivity {
             return Calendar.current.date(byAdding: components, to: startDate)!
         }()
         
-        return NCManageDatabase.sharedInstance.getActivity(predicate: NSPredicate(format: "account == %@ && date BETWEEN %@", appDelegate.activeAccount, [startDate, endDate]))
+        return NCManageDatabase.sharedInstance.getActivity(predicate: NSPredicate(format: "account == %@ && date BETWEEN %@", appDelegate.activeAccount, [startDate, endDate]), filterFileID: filterFileID)
     }
     
     @objc func loadActivityRefreshing() {

+ 16 - 3
iOSClient/Database/NCManageDatabase.swift

@@ -722,14 +722,27 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func getActivity(predicate: NSPredicate) -> [tableActivity] {
+    @objc func getActivity(predicate: NSPredicate, filterFileID: String?) -> [tableActivity] {
         
         let realm = try! Realm()
         realm.refresh()
         
         let results = realm.objects(tableActivity.self).filter(predicate).sorted(byKeyPath: "date", ascending: false)
-        
-        return Array(results.map { tableActivity.init(value:$0) })
+        if filterFileID != nil {
+            var resultsFilter = [tableActivity]()
+            for result in results {
+                let resultsActivitySubjectRich = realm.objects(tableActivitySubjectRich.self).filter("account = %@ && idActivity == %d", result.account, result.idActivity)
+                for resultActivitySubjectRich in resultsActivitySubjectRich {
+                    if filterFileID!.contains(resultActivitySubjectRich.id) {
+                        resultsFilter.append(result)
+                        break
+                    }
+                }
+            }
+            return Array(resultsFilter.map { tableActivity.init(value:$0) })
+        } else {
+            return Array(results.map { tableActivity.init(value:$0) })
+        }
     }
     
     @objc func getActivitySubjectRich(account: String, idActivity: Int, key: String) -> tableActivitySubjectRich? {

+ 9 - 9
iOSClient/Share/NCShare.swift

@@ -78,33 +78,33 @@ extension NCShare: PagingViewControllerDataSource {
     
     func pagingViewController<T>(_ pagingViewController: PagingViewController<T>, viewControllerForIndex index: Int) -> UIViewController {
         
-        var viewController: UIViewController?
         let height = pagingViewController.options.menuHeight + NCSharePagingView.HeaderHeight
         
         switch index {
         case 0:
             let viewController = UIStoryboard(name: "NCActivity", bundle: nil).instantiateInitialViewController() as! NCActivity
             viewController.insets = UIEdgeInsets(top: height, left: 0, bottom: 0, right: 0)
+            viewController.refreshControlEnable = false
+            viewController.didSelectItemEnable = false
+            viewController.filterFileID = metadata!.fileID
             return viewController
         case 1:
-            viewController = UIStoryboard(name: "NCShare", bundle: nil).instantiateViewController(withIdentifier: "comments")
+            return UIStoryboard(name: "NCShare", bundle: nil).instantiateViewController(withIdentifier: "comments")
         case 2:
-            viewController = UIStoryboard(name: "NCShare", bundle: nil).instantiateViewController(withIdentifier: "sharing")
+            return UIStoryboard(name: "NCShare", bundle: nil).instantiateViewController(withIdentifier: "sharing")
         default:
-           print("")
+            return UIViewController()
         }
-
-        return viewController!
     }
     
     func pagingViewController<T>(_ pagingViewController: PagingViewController<T>, pagingItemForIndex index: Int) -> T {
         switch index {
         case 0:
-            return PagingIndexItem(index: index, title: "activity") as! T
+            return PagingIndexItem(index: index, title: NSLocalizedString("_activity_", comment: "")) as! T
         case 1:
-            return PagingIndexItem(index: index, title: "comments") as! T
+            return PagingIndexItem(index: index, title: NSLocalizedString("_comments_", comment: "")) as! T
         case 2:
-            return PagingIndexItem(index: index, title: "sharing") as! T
+            return PagingIndexItem(index: index, title: NSLocalizedString("_sharing_", comment: "")) as! T
         default:
             return PagingIndexItem(index: index, title: "") as! T
         }

+ 2 - 0
iOSClient/Supporting Files/en.lproj/Localizable.strings

@@ -103,6 +103,8 @@
 "_purchase_"                = "Purchase";
 "_account_not_available_"   = "The account %@ of %@ do not exists, please add it to be able to read the file %@";
 "_error_parameter_schema_"  = "Wrong parameters, impossible to continue";
+"_comments_"                = "Comments";
+"_sharing_"                 = "Sharing";
 
 // App