diff --git a/Yep.xcodeproj/project.pbxproj b/Yep.xcodeproj/project.pbxproj index 52ce6a11..5dd6400d 100644 --- a/Yep.xcodeproj/project.pbxproj +++ b/Yep.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ 0A3E60601ACCA9C0003DC853 /* String+Yep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A3E605F1ACCA9C0003DC853 /* String+Yep.swift */; }; 0A3E60621ACCAB50003DC853 /* NSDate+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A3E60611ACCAB50003DC853 /* NSDate+Extension.swift */; }; 0A3E60651ACCAC1D003DC853 /* NSDateTimeAgo.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 0A3E60641ACCAC1D003DC853 /* NSDateTimeAgo.bundle */; }; + 0A3E60671ACCAECE003DC853 /* YepLocationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A3E60661ACCAECE003DC853 /* YepLocationService.swift */; }; 0A5D83941AC5D3C8000045BF /* YepTabBarController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A5D83931AC5D3C8000045BF /* YepTabBarController.swift */; }; 0A5D83991AC5D91E000045BF /* ContactsSearchTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A5D83981AC5D91E000045BF /* ContactsSearchTableViewController.swift */; }; 0A6F46FD1ACBBF2D000CCD6F /* Waver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A6F46FC1ACBBF2D000CCD6F /* Waver.swift */; }; @@ -114,6 +115,7 @@ 0A3E605F1ACCA9C0003DC853 /* String+Yep.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "String+Yep.swift"; path = "Extensions/String+Yep.swift"; sourceTree = ""; }; 0A3E60611ACCAB50003DC853 /* NSDate+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSDate+Extension.swift"; sourceTree = ""; }; 0A3E60641ACCAC1D003DC853 /* NSDateTimeAgo.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = NSDateTimeAgo.bundle; sourceTree = ""; }; + 0A3E60661ACCAECE003DC853 /* YepLocationService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = YepLocationService.swift; path = Services/YepLocationService.swift; sourceTree = ""; }; 0A5D83931AC5D3C8000045BF /* YepTabBarController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = YepTabBarController.swift; path = ViewControllers/TabBar/YepTabBarController.swift; sourceTree = ""; }; 0A5D83981AC5D91E000045BF /* ContactsSearchTableViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ContactsSearchTableViewController.swift; path = ViewControllers/Contacts/Search/ContactsSearchTableViewController.swift; sourceTree = ""; }; 0A6F46FC1ACBBF2D000CCD6F /* Waver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Waver.swift; sourceTree = ""; }; @@ -500,6 +502,7 @@ 5076C5691AC46B9F00B22952 /* FayeService.swift */, 0A944C241AC8BB2F00037A06 /* YepStorageService.swift */, 0A271FD61ACA055400822DFC /* YepAudioService.swift */, + 0A3E60661ACCAECE003DC853 /* YepLocationService.swift */, ); name = Services; sourceTree = ""; @@ -926,6 +929,7 @@ 502AE5291AB81076005BD199 /* YepService.swift in Sources */, 502AE51E1AB712D2005BD199 /* RegisterPickNameViewController.swift in Sources */, 50E114F91ABC137A00F13000 /* YepServiceSync.swift in Sources */, + 0A3E60671ACCAECE003DC853 /* YepLocationService.swift in Sources */, 5023DE2A1AB685BA00B3EE96 /* ContactsViewController.swift in Sources */, 50CDBE491ACBAD3200459CE0 /* ChatLeftImageCell.swift in Sources */, 5033159C1AC101C80008A209 /* ChatRightTextCell.swift in Sources */, diff --git a/Yep/Info.plist b/Yep/Info.plist index 6af03650..6d778a89 100644 --- a/Yep/Info.plist +++ b/Yep/Info.plist @@ -2,6 +2,8 @@ + NSLocationWhenInUseUsageDescription + Find pepole around you CFBundleDevelopmentRegion en CFBundleExecutable diff --git a/Yep/Services/YepLocationService.swift b/Yep/Services/YepLocationService.swift new file mode 100644 index 00000000..8d0cf624 --- /dev/null +++ b/Yep/Services/YepLocationService.swift @@ -0,0 +1,55 @@ +// +// YepLocationService.swift +// Yep +// +// Created by kevinzhow on 15/4/2. +// Copyright (c) 2015年 Catch Inc. All rights reserved. +// + +import CoreLocation + +class YepLocationService: NSObject, CLLocationManagerDelegate { + + static let sharedManager = YepLocationService() + + var locationManager:CLLocationManager = CLLocationManager() + var currentLocation:CLLocation? + var address:String? + var geocoder = CLGeocoder() + + override init() { + super.init() + locationManager.delegate = self + locationManager.distanceFilter = kCLDistanceFilterNone + locationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters + locationManager.pausesLocationUpdatesAutomatically = true + locationManager.headingFilter = kCLHeadingFilterNone + locationManager.requestWhenInUseAuthorization() + println("Prepare Location") + if (CLLocationManager.locationServicesEnabled()){ + println("Update Location") + locationManager.startUpdatingLocation() + } + } + + func locationManager(manager: CLLocationManager!, didUpdateToLocation newLocation: CLLocation!, fromLocation oldLocation: CLLocation!) { + + geocoder.reverseGeocodeLocation(newLocation, completionHandler: { (placemarks, error) in + + if (error != nil) {println("reverse geodcode fail: \(error.localizedDescription)")} + + if let pm = placemarks as? [CLPlacemark] { + if pm.count > 0 { + + var placemark = pm.first + + self.address = placemark?.locality + + NSNotificationCenter.defaultCenter().postNotificationName("YepLocationUpdated", object: self.address) + } + } + + }) + } +} + diff --git a/Yep/Views/Cells/ProfileHeader/ProfileHeaderCell.swift b/Yep/Views/Cells/ProfileHeader/ProfileHeaderCell.swift index 18478e76..827a22c6 100644 --- a/Yep/Views/Cells/ProfileHeader/ProfileHeaderCell.swift +++ b/Yep/Views/Cells/ProfileHeader/ProfileHeaderCell.swift @@ -38,6 +38,17 @@ class ProfileHeaderCell: UICollectionViewCell { } } } + + YepLocationService.sharedManager + + NSNotificationCenter.defaultCenter().addObserver(self, selector: "updateAddress", name: "YepLocationUpdated", object: nil) + } + + func updateAddress() { + + println("Location YepLocationUpdated") + + self.locationLabel.text = YepLocationService.sharedManager.address } func tryChangeAvatar() { diff --git a/Yep/Views/Cells/ProfileHeader/ProfileHeaderCell.xib b/Yep/Views/Cells/ProfileHeader/ProfileHeaderCell.xib index e5f4d8da..9fb3bccc 100644 --- a/Yep/Views/Cells/ProfileHeader/ProfileHeaderCell.xib +++ b/Yep/Views/Cells/ProfileHeader/ProfileHeaderCell.xib @@ -1,7 +1,7 @@ - + - + @@ -28,7 +28,7 @@ -