Advertisement
iamalizade

Untitled

Nov 20th, 2015
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 3.53 KB | None | 0 0
  1. public class func removeUserAtIndexPath(indexPath: NSIndexPath) {
  2.         let user = OneChats.getChatsList().objectAtIndex(indexPath.row) as! XMPPUserCoreDataStorageObject
  3.        
  4.         sharedInstance.removeMyUserActivityFromCoreDataStorageWith(user: user)
  5.         sharedInstance.removeUserActivityFromCoreDataStorage(user: user)
  6.         removeUserFromChatList(user: user)
  7.     }
  8.    
  9.     public class func removeUserFromChatList(user user: XMPPUserCoreDataStorageObject) {
  10.         if sharedInstance.chatList.containsObject(user) {
  11.             sharedInstance.chatList.removeObjectIdenticalTo(user)
  12.             sharedInstance.chatListBare.removeObjectIdenticalTo(user.jidStr)
  13.         }
  14.     }
  15.    
  16.     public class func addUserToChatList(jidStr jidStr: String) {
  17.         if !knownUserForJid(jidStr: jidStr) {
  18.             sharedInstance.chatList.addObject(OneRoster.userFromRosterForJID(jid: jidStr)!)
  19.             sharedInstance.chatListBare.addObject(jidStr)
  20.         }
  21.     }
  22.    
  23.     func removeUserActivityFromCoreDataStorage(user user: XMPPUserCoreDataStorageObject) {
  24.         let moc = OneMessage.sharedInstance.xmppMessageStorage?.mainThreadManagedObjectContext
  25.         let entityDescription = NSEntityDescription.entityForName("XMPPMessageArchiving_Message_CoreDataObject", inManagedObjectContext: moc!)
  26.         let request = NSFetchRequest()
  27.         let predicateFormat = "bareJidStr like %@ "
  28.        
  29.         let predicate = NSPredicate(format: predicateFormat, user.jidStr)
  30.         request.predicate = predicate
  31.         request.entity = entityDescription
  32.        
  33.         do {
  34.             let results = try moc?.executeFetchRequest(request)
  35.             for message in results! {
  36.                 moc?.deleteObject(message as! NSManagedObject)
  37.             }
  38.         } catch _ {
  39.         }
  40.     }
  41.    
  42.     func removeMyUserActivityFromCoreDataStorageWith(user user: XMPPUserCoreDataStorageObject) {
  43.         let moc = OneMessage.sharedInstance.xmppMessageStorage?.mainThreadManagedObjectContext
  44.         let entityDescription = NSEntityDescription.entityForName("XMPPMessageArchiving_Message_CoreDataObject", inManagedObjectContext: moc!)
  45.         let request = NSFetchRequest()
  46.         let predicateFormat = "streamBareJidStr like %@ "
  47.        
  48.         if let predicateString = NSUserDefaults.standardUserDefaults().stringForKey("kXMPPmyJID") {
  49.             let predicate = NSPredicate(format: predicateFormat, predicateString)
  50.             request.predicate = predicate
  51.             request.entity = entityDescription
  52.            
  53.             do {
  54.                 let results = try moc?.executeFetchRequest(request)
  55.                 for message in results! {
  56.                     var element: DDXMLElement!
  57.                     do {
  58.                         element = try DDXMLElement(XMLString: message.messageStr)
  59.                     } catch _ {
  60.                         element = nil
  61.                     }
  62.                    
  63.                     if element.attributeStringValueForName("to") != NSUserDefaults.standardUserDefaults().stringForKey("kXMPPmyJID")! && !(element.attributeStringValueForName("to") as NSString).containsString(NSUserDefaults.standardUserDefaults().stringForKey("kXMPPmyJID")!) {
  64.                         if element.attributeStringValueForName("to") == user.jidStr {
  65.                             moc?.deleteObject(message as! NSManagedObject)
  66.                         }
  67.                     }
  68.                 }
  69.             } catch _ {
  70.             }
  71.         }
  72.     }
  73.  
  74. // I call it:
  75. OneChats.removeUserAtIndexPath(indexPath)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement