Do not allow sync for account containers that clash with "shared to me".
authorMiltiadis Vasilakis <mvasilak@gmail.com>
Thu, 5 Apr 2012 10:26:19 +0000 (13:26 +0300)
committerMiltiadis Vasilakis <mvasilak@gmail.com>
Thu, 5 Apr 2012 10:26:19 +0000 (13:26 +0300)
pithos-macos/PithosAccount.m
pithos-macos/PithosPreferencesController.m

index 61a5093..c149f32 100644 (file)
     if (aSyncAccountsDictionary && ![self.syncAccountsDictionary isEqualToDictionary:aSyncAccountsDictionary]) {
         [syncAccountsDictionary release];
         syncAccountsDictionary = [aSyncAccountsDictionary retain];
-        // XXX maybe check also here the validity of the dictionary? 
+        // Validity of the dictionary is checked when loading from user defaults, and when modified in preferences
         
         @synchronized(self) {
             resetSyncDaemonLocalState = YES;
             NSDictionary *immutableContainersDictionary = [immutableAccountsDictionary objectForKey:accountName];
             NSMutableDictionary *syncContainersDictionary = [NSMutableDictionary dictionary];
             for (NSString *containerName in [immutableAccountsDictionary objectForKey:accountName]) {
-                [syncContainersDictionary setObject:[NSMutableArray arrayWithArray:[immutableContainersDictionary objectForKey:containerName]] 
-                                             forKey:containerName];
+                if (![accountName isEqualToString:@""] || ![[containerName lowercaseString] isEqualToString:@"shared to me"])
+                    [syncContainersDictionary setObject:[NSMutableArray arrayWithArray:[immutableContainersDictionary objectForKey:containerName]] 
+                                                 forKey:containerName];
             }
             if ([syncContainersDictionary count])
                 [syncAccountsDictionary setObject:syncContainersDictionary forKey:accountName];
index b37c17e..bc2fa33 100644 (file)
         NSDictionary *aSyncContainersDictionary = [aSyncAccountsDictionary objectForKey:accountName];
         NSMutableDictionary *syncContainersDictionary = [NSMutableDictionary dictionary];
         for (NSString *containerName in aSyncContainersDictionary) {
-            [syncContainersDictionary setObject:[NSMutableArray arrayWithArray:[aSyncContainersDictionary objectForKey:containerName]] 
-                                         forKey:containerName];
+            if (![accountName isEqualToString:@""] || ![[containerName lowercaseString] isEqualToString:@"shared to me"])
+                [syncContainersDictionary setObject:[NSMutableArray arrayWithArray:[aSyncContainersDictionary objectForKey:containerName]] 
+                                             forKey:containerName];
         }
         if ([syncContainersDictionary count])
             [syncAccountsDictionary setObject:syncContainersDictionary forKey:accountName];
                     accountName = @"";
                     accountNode = syncAccountsMyAccountNode;
                 }
+                if ([accountName isEqualToString:@""] && [[node.displayName lowercaseString] isEqualToString:@"shared to me"]) {
+                    [outlineView reloadItem:item];
+                    return;
+                }
                 NSMutableDictionary *syncContainersDictionary = [syncAccountsDictionary objectForKey:accountName];
                 if ((newState == NSOnState) || (newState == NSMixedState)) {
                     if (!syncContainersDictionary) {