diff options
author | Vitaly Takmazov | 2018-10-16 23:37:26 +0300 |
---|---|---|
committer | Vitaly Takmazov | 2018-10-16 23:37:26 +0300 |
commit | 0c94a6095e42fc5f14f521699601ada6895047aa (patch) | |
tree | c69f422ef2947499a8156117ba0ad48764b862cf | |
parent | b81b10a8d8e7f077eb5370e6c07b123de56cea8d (diff) |
Project cleanup
-rw-r--r-- | Juick.xcodeproj/project.pbxproj | 41 | ||||
-rw-r--r-- | Juick/CoreDataStack.h | 189 | ||||
-rw-r--r-- | Juick/CoreDataStack.m | 133 | ||||
-rw-r--r-- | Juick/Views/BubbleMessageCell.xib | 18 | ||||
-rw-r--r-- | Juick/Views/ConversationCell.xib | 7 | ||||
-rw-r--r-- | Juick/Views/MessageInputView.xib | 7 | ||||
-rw-r--r-- | Juick/buttons.png | bin | 2392 -> 0 bytes | |||
-rw-r--r-- | JuickTests/JuickTests.m | 36 | ||||
-rw-r--r-- | JuickTests/Supporting Files/JuickTests-Info.plist | 22 | ||||
-rw-r--r-- | JuickTests/Supporting Files/en.lproj/InfoPlist.strings | 2 |
10 files changed, 15 insertions, 440 deletions
diff --git a/Juick.xcodeproj/project.pbxproj b/Juick.xcodeproj/project.pbxproj index cd9032d..3b9d2fd 100644 --- a/Juick.xcodeproj/project.pbxproj +++ b/Juick.xcodeproj/project.pbxproj @@ -32,7 +32,6 @@ 774153CE1F92A61500A19A50 /* UserNotifications.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 774153CD1F92A61500A19A50 /* UserNotifications.framework */; }; 77418CBD182FB9B6004111B7 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77418CBC182FB9B6004111B7 /* ImageIO.framework */; }; 774528C21F930C06004D110B /* Attachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 774528C11F930C06004D110B /* Attachment.m */; }; - 774528C51F93AC0F004D110B /* CoreDataStack.m in Sources */ = {isa = PBXBuildFile; fileRef = 774528C41F93AC0F004D110B /* CoreDataStack.m */; }; 7761133821766A3000D350CD /* ContentLoadingCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7761133621766A3000D350CD /* ContentLoadingCell.m */; }; 7761133921766A3000D350CD /* ContentLoadingCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7761133721766A3000D350CD /* ContentLoadingCell.xib */; }; 776C41BD1FD3EF180063B82E /* MessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 776C41BB1FD3EF180063B82E /* MessageCell.m */; }; @@ -49,7 +48,6 @@ 77B8DCD62093FC03000DBB04 /* BlogViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77B8DCD52093FC03000DBB04 /* BlogViewController.m */; }; 77C67EE51828342000427098 /* NSURL+PathParameters.m in Sources */ = {isa = PBXBuildFile; fileRef = 77C67EE41828342000427098 /* NSURL+PathParameters.m */; }; 77C67EE81828379700427098 /* ColorScheme.m in Sources */ = {isa = PBXBuildFile; fileRef = 77C67EE71828379700427098 /* ColorScheme.m */; }; - 77C67EEA18283C8D00427098 /* buttons.png in Resources */ = {isa = PBXBuildFile; fileRef = 77C67EE918283C8D00427098 /* buttons.png */; }; 77C67EEC18283F2D00427098 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77C67EEB18283F2D00427098 /* QuartzCore.framework */; }; 77C6ADDE1F770EB2000AEA8C /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 77C6ADDD1F770EB2000AEA8C /* Main.storyboard */; }; 77C6ADE41F7717BC000AEA8C /* ThreadViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77C6ADE31F7717BC000AEA8C /* ThreadViewController.m */; }; @@ -75,9 +73,6 @@ 77317BC0181BBE8500D60005 /* MessagesViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MessagesViewController.h; sourceTree = "<group>"; }; 77317BC1181BBE8500D60005 /* MessagesViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MessagesViewController.m; sourceTree = "<group>"; }; 77317BC6181BBE8500D60005 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; }; - 77317BD5181BBE8500D60005 /* JuickTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "JuickTests-Info.plist"; sourceTree = "<group>"; }; - 77317BD7181BBE8500D60005 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; - 77317BD9181BBE8500D60005 /* JuickTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = JuickTests.m; sourceTree = "<group>"; }; 773E6391204BCAD6008B8F8D /* BubbleMessageCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BubbleMessageCell.xib; sourceTree = "<group>"; }; 773E6392204BCAD6008B8F8D /* ConversationCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ConversationCell.xib; sourceTree = "<group>"; }; 773E6395204BCB64008B8F8D /* ConversationCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConversationCell.h; sourceTree = "<group>"; }; @@ -101,8 +96,6 @@ 77418CBC182FB9B6004111B7 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; }; 774528C01F930C06004D110B /* Attachment.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Attachment.h; sourceTree = "<group>"; }; 774528C11F930C06004D110B /* Attachment.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Attachment.m; sourceTree = "<group>"; }; - 774528C31F93AC0F004D110B /* CoreDataStack.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreDataStack.h; sourceTree = "<group>"; }; - 774528C41F93AC0F004D110B /* CoreDataStack.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CoreDataStack.m; sourceTree = "<group>"; }; 774528C91F93EE83004D110B /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; 774528CB1F93EE9F004D110B /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 774528CD1F96B39C004D110B /* Juick.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Juick.entitlements; sourceTree = "<group>"; }; @@ -133,7 +126,6 @@ 77C67EE41828342000427098 /* NSURL+PathParameters.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSURL+PathParameters.m"; sourceTree = "<group>"; }; 77C67EE61828379700427098 /* ColorScheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorScheme.h; sourceTree = "<group>"; }; 77C67EE71828379700427098 /* ColorScheme.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ColorScheme.m; sourceTree = "<group>"; }; - 77C67EE918283C8D00427098 /* buttons.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttons.png; sourceTree = "<group>"; }; 77C67EEB18283F2D00427098 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; 77C6ADDD1F770EB2000AEA8C /* Main.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = "<group>"; }; 77C6ADE21F7717BC000AEA8C /* ThreadViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThreadViewController.h; sourceTree = "<group>"; }; @@ -174,7 +166,6 @@ children = ( 77317BAA181BBE8500D60005 /* Frameworks */, 77317BB1181BBE8500D60005 /* Juick */, - 77317BD3181BBE8500D60005 /* JuickTests */, 77317BA9181BBE8500D60005 /* Products */, F5489793EBFBBE7FFA7ABC1E /* Pods */, ); @@ -224,10 +215,7 @@ 77317BBA181BBE8500D60005 /* AppDelegate.h */, 77317BBB181BBE8500D60005 /* AppDelegate.m */, 77317BC6181BBE8500D60005 /* Images.xcassets */, - 77C67EE918283C8D00427098 /* buttons.png */, 77C6ADDD1F770EB2000AEA8C /* Main.storyboard */, - 774528C31F93AC0F004D110B /* CoreDataStack.h */, - 774528C41F93AC0F004D110B /* CoreDataStack.m */, ); path = Juick; sourceTree = "<group>"; @@ -244,24 +232,6 @@ path = "Supporting Files"; sourceTree = "<group>"; }; - 77317BD3181BBE8500D60005 /* JuickTests */ = { - isa = PBXGroup; - children = ( - 77317BD4181BBE8500D60005 /* Supporting Files */, - 77317BD9181BBE8500D60005 /* JuickTests.m */, - ); - path = JuickTests; - sourceTree = "<group>"; - }; - 77317BD4181BBE8500D60005 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 77317BD6181BBE8500D60005 /* InfoPlist.strings */, - 77317BD5181BBE8500D60005 /* JuickTests-Info.plist */, - ); - path = "Supporting Files"; - sourceTree = "<group>"; - }; 774DD45D1D735DDD00C7F290 /* Model */ = { isa = PBXGroup; children = ( @@ -418,7 +388,6 @@ buildActionMask = 2147483647; files = ( 77317BC7181BBE8500D60005 /* Images.xcassets in Resources */, - 77C67EEA18283C8D00427098 /* buttons.png in Resources */, 773F23391F76ED5E00B5B0DF /* Splash@3x.png in Resources */, 77B8B399207A52BD005CB20C /* MessageInputView.xib in Resources */, 77C6ADDE1F770EB2000AEA8C /* Main.storyboard in Resources */, @@ -497,7 +466,6 @@ 773E639D204BD0F2008B8F8D /* Chat.m in Sources */, 77B8DCD62093FC03000DBB04 /* BlogViewController.m in Sources */, 773E639A204BCE6D008B8F8D /* DialogsViewController.m in Sources */, - 774528C51F93AC0F004D110B /* CoreDataStack.m in Sources */, 77B09994189D0B9900A84F59 /* UIImage+Utils.m in Sources */, 77317BC2181BBE8500D60005 /* MessagesViewController.m in Sources */, 77B099A6189D57F000A84F59 /* User.m in Sources */, @@ -528,15 +496,6 @@ path = .; sourceTree = "<group>"; }; - 77317BD6181BBE8500D60005 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 77317BD7181BBE8500D60005 /* en */, - ); - name = InfoPlist.strings; - path = .; - sourceTree = "<group>"; - }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ diff --git a/Juick/CoreDataStack.h b/Juick/CoreDataStack.h deleted file mode 100644 index b430654..0000000 --- a/Juick/CoreDataStack.h +++ /dev/null @@ -1,189 +0,0 @@ -// -// CoreDataStack.h -// Juick -// -// Created by Vitaly Takmazov on 15/10/2017. -// Copyright © 2017 com.juick. All rights reserved. -// - -@import Foundation; -@import CoreData; - -NS_ASSUME_NONNULL_BEGIN - -API_AVAILABLE(macosx(10.12),ios(10.0),tvos(10.0),watchos(3.0)) -@interface CoreDataStack : NSObject - -/** - The default directory for the persistent stores on the current platform. - @return An `NSURL` for the directory containing the persistent store(s). If the - persistent store does not exist it will be created by default in this location - when loaded. - */ -+ (NSURL *)defaultDirectoryURL; - -///--------------------- -/// @name Properties -///--------------------- - -/** - A read-only flag indicating if the persistent store is loaded. - */ -@property (readonly, assign, getter=isStoreLoaded) BOOL storeLoaded; - -/** - The managed object context associated with the main queue (read-only). To - perform tasks on a private background queue see `performBackgroundTask:` and - `newPrivateContext`. - The context is configured to be generational and to automatically consume save - notifications from other contexts. - */ -@property (readonly, strong) NSManagedObjectContext *viewContext; - -/** - The `URL` of the persistent store for this Core Data Stack. If there are more - than one stores this property returns the first store it finds. The store may - not yet exist. It will be created at this URL by default when first loaded. - - This is a readonly property to create a persistent store in a different - location use `loadStoreAtURL:withCompletionHandler`. To move an existing - persistent store use `replacePersistentStoreAtURL:withPersistentStoreFromURL:`. - */ -@property (readonly, copy) NSURL *storeURL; - -/** - A flag that indicates whether this store is read-only. Set this value to YES - before loading the persistent store if you want a read-only store (for example - if you are loading a store from the application bundle). - - Default is NO. - */ -@property (assign, getter=isReadOnly) BOOL readOnly; - -/** - A flag that indicates whether the store is added asynchronously. Set this - value before loading the persistent store. - - Default is YES. - */ -@property (assign) BOOL shouldAddStoreAsynchronously; - -/** - A flag that indicates whether the store should be migrated - automatically if the store model version does not match the - coordinators model version. - - Set this value before loading the persistent store. - Default is YES. - */ -@property (assign) BOOL shouldMigrateStoreAutomatically; - -/** - A flag that indicates whether a mapping model should be inferred - when migrating a store. - Set this value before loading the persistent store. - - Default is YES. - */ -@property (assign) BOOL shouldInferMappingModelAutomatically; - -///--------------------- -/// @name Initialization -///--------------------- - -- (instancetype)init NS_UNAVAILABLE; - -/** - Creates and returns a `CoreDataController` object. This is the designated - initializer for the class. It creates the managed object model, persistent - store coordinator and main managed object context but does not load the - persistent store. - - @param name The name of the `NSManagedObjectModel` and by default the name used - for the persistent store - @return A `CoreDataController` object initialized with the given name. - */ -- (instancetype)initWithName:(NSString *)name NS_DESIGNATED_INITIALIZER; - -///--------------------------------- -/// @name Loading a Persistent Store -///--------------------------------- - -/** - Load the persistent store. - @param handler This handler block is executed on the calling thread when the - loading of the persistent store has completed. - - To override the default name and location of the persistent store use - `loadStoreAtURL:withCompletionHandler:`. - */ -- (void)loadStoreWithCompletionHandler:(void(^)(NSError *))handler; - -/** - Load the persistent store. - @param storeURL The URL for the location of the persistent store. It will be created if it does not exist. - @param handler This handler block is executed on the calling thread when the - loading of the persistent store has completed. - */ -- (void)loadStoreAtURL:(NSURL *)storeURL withCompletionHandler:(void(^)(NSError * _Nullable))handler; - -///---------------------------------- -/// @name Managing a Persistent Store -///---------------------------------- - -/** - A flag indicating if the persistent store exists at the specified URL. - @param storeURL An `NSURL` object for the location of the peristent store. - @return YES if a file exists at the specified URL otherwise NO. - @warning This method checks if a file exists at the specified location but - does not verify if it is a valid persistent store. - */ -- (BOOL)persistentStoreExistsAtURL:(NSURL *)storeURL; - -/** - Replace a persistent store. - @param destinationURL An `NSURL` for the persistent store to be replaced. - @param sourceURL An `NSURL` for the source persistent store. - @return A flag indicating if the operation was successful. - */ -- (BOOL)replacePersistentStoreAtURL:(NSURL *)destinationURL withPersistentStoreFromURL:(NSURL *)sourceURL; - -/** - Destroy a persistent store. - @param storeURL An `NSURL` for the persistent store to be destroyed. - @return A flag indicating if the operation was successful. - */ -- (BOOL)destroyPersistentStoreAtURL:(NSURL *)storeURL; - -///---------------------------------- -/// @name Performing Background tasks -///---------------------------------- - -/** - Execute a block on a new private queue context. - @param block A block to execute on a newly created private context. The context - is passed to the block as a paramater. - */ -- (void)performBackgroundTask:(void(^)(NSManagedObjectContext *))block; - -/** - Create and return a new private queue `NSManagedObjectContext`. The new context - is set to consume `NSManagedObjectContextSave` broadcasts automatically. - @return A new private managed object context. - */ -- (NSManagedObjectContext *)newPrivateContext NS_RETURNS_RETAINED; - -///------------------------ -/// @name NSManagedObjectID -///------------------------ - -/** - Return an object ID for the specified URI representation if a matching - store is available. - @param url An `NSURL` containing a URI of a managed object. - @return An `NSManagedObjectID` or `nil`. - */ -- (NSManagedObjectID *)managedObjectIDForURIRepresentation:(NSURL *)url; - -@end -NS_ASSUME_NONNULL_END diff --git a/Juick/CoreDataStack.m b/Juick/CoreDataStack.m deleted file mode 100644 index 6122731..0000000 --- a/Juick/CoreDataStack.m +++ /dev/null @@ -1,133 +0,0 @@ -// -// CoreDataStack.m -// Juick -// -// Created by Vitaly Takmazov on 15/10/2017. -// Copyright © 2017 com.juick. All rights reserved. -// - -#import "CoreDataStack.h" - -@interface CoreDataStack () -@property (nonatomic, getter=isStoreLoaded) BOOL storeLoaded; -@property (nonatomic, strong) NSPersistentContainer *persistentContainer; -@end - -@implementation CoreDataStack - -+ (NSURL *)defaultDirectoryURL { - return [NSPersistentContainer defaultDirectoryURL]; -} - -- (instancetype)initWithName:(NSString *)name { - - NSManagedObjectModel *mom = [NSManagedObjectModel mergedModelFromBundles:nil]; - if (mom == nil) return nil; - - self = [super init]; - if (self) { - _storeLoaded = NO; - _shouldAddStoreAsynchronously = YES; - _shouldMigrateStoreAutomatically = YES; - _shouldInferMappingModelAutomatically = YES; - _readOnly = NO; - _persistentContainer = [NSPersistentContainer persistentContainerWithName:name managedObjectModel:mom]; - _persistentContainer.viewContext.automaticallyMergesChangesFromParent = YES; - } - return self; -} - -- (void)loadStoreWithCompletionHandler:(void(^)(NSError *))handler { - - [self loadStoreAtURL:self.storeURL withCompletionHandler:handler]; -} - -- (void)loadStoreAtURL:(NSURL *)storeURL withCompletionHandler:(void(^)(NSError *))handler { - - if (!self.persistentContainer) { - NSError *error = [NSError errorWithDomain:NSCocoaErrorDomain code:NSNotFound userInfo:nil]; - if (handler) { - dispatch_async(dispatch_get_main_queue(), ^{ - handler(error); - }); - } - return; - } - - self.persistentContainer.persistentStoreDescriptions = @[[self storeDescriptionWithURL:storeURL]]; - [self.persistentContainer loadPersistentStoresWithCompletionHandler: - ^(NSPersistentStoreDescription *storeDescription, NSError *error) { - if (error == nil) { - self.storeLoaded = YES; - } - if (handler) { - dispatch_async(dispatch_get_main_queue(), ^{ - handler(error); - }); - } - }]; -} - -- (BOOL)persistentStoreExistsAtURL:(NSURL *)storeURL { - - if (storeURL.isFileURL && - [NSFileManager.defaultManager fileExistsAtPath:storeURL.path]) { - return YES; - } - return NO; -} - -- (NSURL *)storeURL { - NSArray *descriptions = self.persistentContainer.persistentStoreDescriptions; - NSPersistentStoreDescription *description = [descriptions firstObject]; - return description.URL; -} - -- (BOOL)destroyPersistentStoreAtURL:(NSURL *)storeURL { - - NSError *error = nil; - BOOL result = [self.persistentContainer.persistentStoreCoordinator destroyPersistentStoreAtURL:storeURL withType:NSSQLiteStoreType options:nil error:&error]; - return result; -} - -- (BOOL)replacePersistentStoreAtURL:(NSURL *)destinationURL withPersistentStoreFromURL:(NSURL *)sourceURL { - - NSError *error = nil; - BOOL result = [self.persistentContainer.persistentStoreCoordinator replacePersistentStoreAtURL:destinationURL destinationOptions:nil withPersistentStoreFromURL:sourceURL sourceOptions:nil storeType:NSSQLiteStoreType error:&error]; - return result; -} - -- (NSManagedObjectContext *)viewContext { - - return self.persistentContainer.viewContext; -} - -- (NSManagedObjectContext *)newPrivateContext { - - return [self.persistentContainer newBackgroundContext]; -} - -- (void)performBackgroundTask:(void(^)(NSManagedObjectContext *))block { - - [self.persistentContainer performBackgroundTask:block]; -} - -- (NSManagedObjectID *)managedObjectIDForURIRepresentation:(NSURL *)url { - return [self.persistentContainer.persistentStoreCoordinator managedObjectIDForURIRepresentation:url]; -} - -#pragma mark - -#pragma mark === Private methods === -#pragma mark - - -- (NSPersistentStoreDescription *)storeDescriptionWithURL:(NSURL *)URL { - - NSPersistentStoreDescription *description = [NSPersistentStoreDescription persistentStoreDescriptionWithURL:URL]; - description.shouldAddStoreAsynchronously = self.shouldAddStoreAsynchronously; - description.shouldMigrateStoreAutomatically = self.shouldMigrateStoreAutomatically; - description.shouldInferMappingModelAutomatically = self.shouldInferMappingModelAutomatically; - description.readOnly = self.isReadOnly; - return description; -} - -@end diff --git a/Juick/Views/BubbleMessageCell.xib b/Juick/Views/BubbleMessageCell.xib index b88ab17..3f9670e 100644 --- a/Juick/Views/BubbleMessageCell.xib +++ b/Juick/Views/BubbleMessageCell.xib @@ -1,25 +1,25 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14313.18" 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="13772"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="bubbleMessageCell" rowHeight="192" id="8qR-do-bgA" customClass="BubbleMessageCell"> - <rect key="frame" x="0.0" y="0.0" width="320" height="192"/> + <rect key="frame" x="0.0" y="0.0" width="377" height="192"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8qR-do-bgA" id="PhM-Oe-eqm"> - <rect key="frame" x="0.0" y="0.0" width="320" height="191.5"/> + <rect key="frame" x="0.0" y="0.0" width="377" height="191.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> <stackView opaque="NO" contentMode="scaleToFill" distribution="fillProportionally" alignment="center" spacing="12" translatesAutoresizingMaskIntoConstraints="NO" id="W9k-Ah-WF5"> - <rect key="frame" x="6" y="6" width="308" height="179.5"/> + <rect key="frame" x="6" y="6" width="365" height="179.5"/> <subviews> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="6" translatesAutoresizingMaskIntoConstraints="NO" id="qtf-Wj-Irh"> <rect key="frame" x="0.0" y="60.5" width="42" height="58.5"/> @@ -43,16 +43,16 @@ </constraints> </stackView> <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="12" translatesAutoresizingMaskIntoConstraints="NO" id="xm7-By-6oe"> - <rect key="frame" x="54" y="0.0" width="254" height="179.5"/> + <rect key="frame" x="54" y="10.5" width="311" height="158.5"/> <subviews> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" text="ermine" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UEj-yl-U0d"> - <rect key="frame" x="0.0" y="0.0" width="254" height="0.0"/> + <rect key="frame" x="0.0" y="0.0" width="311" height="16"/> <fontDescription key="fontDescription" style="UICTFontTextStyleFootnote"/> <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> <nil key="highlightedColor"/> </label> <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="751" verticalCompressionResistancePriority="1000" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yf3-FC-T1Y" customClass="FixedLabel"> - <rect key="frame" x="0.0" y="12" width="254" height="167.5"/> + <rect key="frame" x="0.0" y="28" width="311" height="130.5"/> <string key="text">Lorem sdsdasds sdsada ddas dsad asdsadas dasd asdsa sadsa dasdsad asd asdas dasd asdas dasd asdas dasdasdasd asdasdasdadasdasd asdasd asdas dasdsa dasdasdasdasdas dasdas</string> <fontDescription key="fontDescription" style="UICTFontTextStyleBody"/> <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> @@ -79,7 +79,7 @@ <outlet property="name" destination="UEj-yl-U0d" id="unG-q9-Kwv"/> <outlet property="unreadMarker" destination="5rl-Qo-5oW" id="an8-JJ-Gbb"/> </connections> - <point key="canvasLocation" x="461" y="234"/> + <point key="canvasLocation" x="610.39999999999998" y="216.79160419790108"/> </tableViewCell> </objects> </document> diff --git a/Juick/Views/ConversationCell.xib b/Juick/Views/ConversationCell.xib index 504f7a4..65f9766 100644 --- a/Juick/Views/ConversationCell.xib +++ b/Juick/Views/ConversationCell.xib @@ -1,12 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14313.18" 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="13772"/> - <capability name="Constraints to layout margins" minToolsVersion="6.0"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> @@ -77,7 +76,7 @@ <outlet property="lastMessage" destination="EiA-lG-gV5" id="Eq9-zQ-ivW"/> <outlet property="unreadMarker" destination="jW2-kr-sJn" id="E5Q-wn-yln"/> </connections> - <point key="canvasLocation" x="-1164" y="-1"/> + <point key="canvasLocation" x="-1846" y="27"/> </tableViewCell> </objects> </document> diff --git a/Juick/Views/MessageInputView.xib b/Juick/Views/MessageInputView.xib index 70fcdef..240391c 100644 --- a/Juick/Views/MessageInputView.xib +++ b/Juick/Views/MessageInputView.xib @@ -1,12 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14109" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES"> <device id="retina4_7" orientation="portrait"> <adaptation id="fullscreen"/> </device> <dependencies> <deployment identifier="iOS"/> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/> - <capability name="Constraints to layout margins" minToolsVersion="6.0"/> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> </dependencies> <objects> @@ -53,7 +52,7 @@ <outlet property="bottomConstraint" destination="hsT-4s-U3s" id="b1V-Gk-1At"/> <outlet property="textView" destination="Dkb-8O-5u6" id="6YC-Bn-7P6"/> </connections> - <point key="canvasLocation" x="-85" y="105"/> + <point key="canvasLocation" x="-387" y="95"/> </visualEffectView> </objects> </document> diff --git a/Juick/buttons.png b/Juick/buttons.png Binary files differdeleted file mode 100644 index 14879e4..0000000 --- a/Juick/buttons.png +++ /dev/null diff --git a/JuickTests/JuickTests.m b/JuickTests/JuickTests.m deleted file mode 100644 index bb57f28..0000000 --- a/JuickTests/JuickTests.m +++ /dev/null @@ -1,36 +0,0 @@ -// -// JuickTests.m -// JuickTests -// -// Created by Vitaly Takmazov on 26.10.13. -// Copyright (c) 2013 com.juick. All rights reserved. -// - -#import <XCTest/XCTest.h> - -@interface JuickTests : XCTestCase - -@end - -@implementation JuickTests - -- (void)setUp -{ - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown -{ - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample -{ - NSNumberFormatter *f = [NSNumberFormatter new]; - f.numberStyle = NSNumberFormatterNoStyle; - XCTAssertEqual(123456, [[f numberFromString:@"123456"] integerValue]); -} - -@end diff --git a/JuickTests/Supporting Files/JuickTests-Info.plist b/JuickTests/Supporting Files/JuickTests-Info.plist deleted file mode 100644 index 169b6f7..0000000 --- a/JuickTests/Supporting Files/JuickTests-Info.plist +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>en</string> - <key>CFBundleExecutable</key> - <string>${EXECUTABLE_NAME}</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundlePackageType</key> - <string>BNDL</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleVersion</key> - <string>1</string> -</dict> -</plist> diff --git a/JuickTests/Supporting Files/en.lproj/InfoPlist.strings b/JuickTests/Supporting Files/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/JuickTests/Supporting Files/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - |