mirror of
https://github.com/UrbanApps/Armchair.git
synced 2026-04-10 19:26:57 +02:00
@@ -55,12 +55,12 @@ extension ViewController {
|
||||
|
||||
// Only set it if we are using Armchair localizations
|
||||
if !Armchair.useMainAppBundleForLocalizations() {
|
||||
var currentLocalization: NSString = NSBundle.mainBundle().preferredLocalizations[0] as NSString
|
||||
var currentLocalization: NSString = NSBundle.mainBundle().preferredLocalizations[0] as! NSString
|
||||
// Only set it if we are using a different language than this apps development language
|
||||
if let developmentLocalization = NSBundle.mainBundle().developmentLocalization {
|
||||
if currentLocalization != developmentLocalization {
|
||||
languageLabelText = currentLocalization
|
||||
if let displayName = NSLocale(localeIdentifier: currentLocalization).displayNameForKey(NSLocaleIdentifier, value:currentLocalization) {
|
||||
languageLabelText = currentLocalization as String
|
||||
if let displayName = NSLocale(localeIdentifier: currentLocalization as String).displayNameForKey(NSLocaleIdentifier, value:currentLocalization) {
|
||||
languageLabelText = "\(displayName): \(currentLocalization)"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ import SystemConfiguration
|
||||
#if os(iOS)
|
||||
import UIKit
|
||||
#elseif os(OSX)
|
||||
import Appkit
|
||||
import AppKit
|
||||
#else
|
||||
// Not yet supported
|
||||
#endif
|
||||
@@ -586,20 +586,20 @@ public func shouldIncrementUseCountClosure(shouldIncrementUseCountClosure: Armch
|
||||
public class StandardUserDefaults: ArmchairDefaultsObject {
|
||||
let defaults = NSUserDefaults.standardUserDefaults()
|
||||
|
||||
public func objectForKey(defaultName: String) -> AnyObject? { return defaults.objectForKey(defaultName) }
|
||||
public func setObject(value: AnyObject?, forKey defaultName: String) { defaults.setObject(value, forKey: defaultName) }
|
||||
public func removeObjectForKey(defaultName: String) { defaults.removeObjectForKey(defaultName) }
|
||||
@objc public func objectForKey(defaultName: String) -> AnyObject? { return defaults.objectForKey(defaultName) }
|
||||
@objc public func setObject(value: AnyObject?, forKey defaultName: String) { defaults.setObject(value, forKey: defaultName) }
|
||||
@objc public func removeObjectForKey(defaultName: String) { defaults.removeObjectForKey(defaultName) }
|
||||
|
||||
public func stringForKey(defaultName: String) -> String? { return defaults.stringForKey(defaultName) }
|
||||
public func integerForKey(defaultName: String) -> Int { return defaults.integerForKey(defaultName) }
|
||||
public func doubleForKey(defaultName: String) -> Double { return defaults.doubleForKey(defaultName) }
|
||||
public func boolForKey(defaultName: String) -> Bool { return defaults.boolForKey(defaultName) }
|
||||
@objc public func stringForKey(defaultName: String) -> String? { return defaults.stringForKey(defaultName) }
|
||||
@objc public func integerForKey(defaultName: String) -> Int { return defaults.integerForKey(defaultName) }
|
||||
@objc public func doubleForKey(defaultName: String) -> Double { return defaults.doubleForKey(defaultName) }
|
||||
@objc public func boolForKey(defaultName: String) -> Bool { return defaults.boolForKey(defaultName) }
|
||||
|
||||
public func setInteger(value: Int, forKey defaultName: String) { defaults.setInteger(value, forKey: defaultName) }
|
||||
public func setDouble(value: Double, forKey defaultName: String) { defaults.setDouble(value, forKey: defaultName) }
|
||||
public func setBool(value: Bool, forKey defaultName: String) { defaults.setBool(value, forKey: defaultName) }
|
||||
@objc public func setInteger(value: Int, forKey defaultName: String) { defaults.setInteger(value, forKey: defaultName) }
|
||||
@objc public func setDouble(value: Double, forKey defaultName: String) { defaults.setDouble(value, forKey: defaultName) }
|
||||
@objc public func setBool(value: Bool, forKey defaultName: String) { defaults.setBool(value, forKey: defaultName) }
|
||||
|
||||
public func synchronize() -> Bool { return defaults.synchronize() }
|
||||
@objc public func synchronize() -> Bool { return defaults.synchronize() }
|
||||
}
|
||||
|
||||
public enum ArmchairKey: String, Printable {
|
||||
@@ -691,8 +691,8 @@ public class Manager : ArmchairManager {
|
||||
private func defaultAppName() -> String {
|
||||
let mainBundle = NSBundle.mainBundle()
|
||||
let displayName = mainBundle.objectForInfoDictionaryKey("CFBundleDisplayName") as? String
|
||||
let bundleNameKey = kCFBundleNameKey as NSString?
|
||||
let name = mainBundle.objectForInfoDictionaryKey(bundleNameKey as String) as? String
|
||||
let bundleNameKey = kCFBundleNameKey as String
|
||||
let name = mainBundle.objectForInfoDictionaryKey(bundleNameKey) as? String
|
||||
return displayName ?? name ?? "This App"
|
||||
}
|
||||
|
||||
@@ -918,8 +918,9 @@ public class Manager : ArmchairManager {
|
||||
private func _incrementCountForKeyType(incrementKeyType: ArmchairKey) {
|
||||
var incrementKey = keyForArmchairKeyType(incrementKeyType)
|
||||
|
||||
let bundleVersionKey = kCFBundleVersionKey as String
|
||||
// App's version. Not settable as the other ivars because that would be crazy.
|
||||
let currentVersion = NSBundle.mainBundle().objectForInfoDictionaryKey(kCFBundleVersionKey) as? NSString
|
||||
let currentVersion = NSBundle.mainBundle().objectForInfoDictionaryKey(bundleVersionKey) as? String
|
||||
if currentVersion == nil {
|
||||
assertionFailure("Could not read kCFBundleVersionKey from InfoDictionary")
|
||||
return
|
||||
@@ -1411,31 +1412,31 @@ public class Manager : ArmchairManager {
|
||||
private func setKey(key: NSString, armchairKeyType: ArmchairKey) {
|
||||
switch armchairKeyType {
|
||||
case .FirstUseDate:
|
||||
armchairKeyFirstUseDate = key
|
||||
armchairKeyFirstUseDate = key as String
|
||||
case .UseCount:
|
||||
armchairKeyUseCount = key
|
||||
armchairKeyUseCount = key as String
|
||||
case .SignificantEventCount:
|
||||
armchairKeySignificantEventCount = key
|
||||
armchairKeySignificantEventCount = key as String
|
||||
case .CurrentVersion:
|
||||
armchairKeyCurrentVersion = key
|
||||
armchairKeyCurrentVersion = key as String
|
||||
case .RatedCurrentVersion:
|
||||
armchairKeyRatedCurrentVersion = key
|
||||
armchairKeyRatedCurrentVersion = key as String
|
||||
case .DeclinedToRate:
|
||||
armchairKeyDeclinedToRate = key
|
||||
armchairKeyDeclinedToRate = key as String
|
||||
case .ReminderRequestDate:
|
||||
armchairKeyReminderRequestDate = key
|
||||
armchairKeyReminderRequestDate = key as String
|
||||
case .PreviousVersion:
|
||||
armchairKeyPreviousVersion = key
|
||||
armchairKeyPreviousVersion = key as String
|
||||
case .PreviousVersionRated:
|
||||
armchairKeyPreviousVersionRated = key
|
||||
armchairKeyPreviousVersionRated = key as String
|
||||
case .PreviousVersionDeclinedToRate:
|
||||
armchairKeyPreviousVersionDeclinedToRate = key
|
||||
armchairKeyPreviousVersionDeclinedToRate = key as String
|
||||
case .RatedAnyVersion:
|
||||
armchairKeyRatedAnyVersion = key
|
||||
armchairKeyRatedAnyVersion = key as String
|
||||
case .AppiraterMigrationCompleted:
|
||||
armchairKeyAppiraterMigrationCompleted = key
|
||||
armchairKeyAppiraterMigrationCompleted = key as String
|
||||
case .UAAppReviewManagerMigrationCompleted:
|
||||
armchairKeyUAAppReviewManagerMigrationCompleted = key
|
||||
armchairKeyUAAppReviewManagerMigrationCompleted = key as String
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1465,7 +1466,7 @@ public class Manager : ArmchairManager {
|
||||
private func migrateAppiraterKeysIfNecessary() {
|
||||
|
||||
let appiraterAlreadyCompletedKey: NSString = keyForArmchairKeyType(.AppiraterMigrationCompleted)
|
||||
var appiraterMigrationAlreadyCompleted = userDefaultsObject?.boolForKey(appiraterAlreadyCompletedKey)
|
||||
var appiraterMigrationAlreadyCompleted = userDefaultsObject?.boolForKey(appiraterAlreadyCompletedKey as String)
|
||||
|
||||
if let completed = appiraterMigrationAlreadyCompleted {
|
||||
if completed {
|
||||
@@ -1490,14 +1491,14 @@ public class Manager : ArmchairManager {
|
||||
}
|
||||
}
|
||||
|
||||
userDefaultsObject?.setObject(NSNumber(bool: true), forKey: appiraterAlreadyCompletedKey)
|
||||
userDefaultsObject?.setObject(NSNumber(bool: true), forKey: appiraterAlreadyCompletedKey as String)
|
||||
userDefaultsObject?.synchronize()
|
||||
}
|
||||
|
||||
// This only supports the default UAAppReviewManager keys. If you customized them, you will have to manually migrate your values over.
|
||||
private func migrateUAAppReviewManagerKeysIfNecessary() {
|
||||
let appReviewManagerAlreadyCompletedKey: NSString = keyForArmchairKeyType(.UAAppReviewManagerMigrationCompleted)
|
||||
var appReviewManagerMigrationAlreadyCompleted = userDefaultsObject?.boolForKey(appReviewManagerAlreadyCompletedKey)
|
||||
var appReviewManagerMigrationAlreadyCompleted = userDefaultsObject?.boolForKey(appReviewManagerAlreadyCompletedKey as String)
|
||||
|
||||
if let completed = appReviewManagerMigrationAlreadyCompleted {
|
||||
if completed {
|
||||
@@ -1525,7 +1526,7 @@ public class Manager : ArmchairManager {
|
||||
}
|
||||
}
|
||||
|
||||
userDefaultsObject?.setObject(NSNumber(bool: true), forKey: appReviewManagerAlreadyCompletedKey)
|
||||
userDefaultsObject?.setObject(NSNumber(bool: true), forKey: appReviewManagerAlreadyCompletedKey as String)
|
||||
userDefaultsObject?.synchronize()
|
||||
}
|
||||
|
||||
|
||||
@@ -421,7 +421,7 @@
|
||||
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Example/Info-iOS.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
OTHER_SWIFT_FLAGS = "";
|
||||
PRODUCT_NAME = "iOS Example";
|
||||
@@ -438,7 +438,7 @@
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Example/Info-iOS.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
PRODUCT_NAME = "iOS Example";
|
||||
PROVISIONING_PROFILE = "";
|
||||
|
||||
Reference in New Issue
Block a user