From 7feeafba9d977da79f98f3c12c1df4bfc1174ffc Mon Sep 17 00:00:00 2001 From: Fotis Dimanidis Date: Wed, 4 May 2016 10:19:37 +0200 Subject: [PATCH 1/5] Created public method to reset counters --- Source/Armchair.swift | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Source/Armchair.swift b/Source/Armchair.swift index da0ba43..67b89e3 100644 --- a/Source/Armchair.swift +++ b/Source/Armchair.swift @@ -302,6 +302,16 @@ public func debugEnabled(debugEnabled: Bool) { #endif } +/** + Reset all counters manually. This resets UseCount, SignificantEventCount and FirstUseDate (daysUntilPrompt) + */ +public func resetCounters() { + StandardUserDefaults().setObject(NSNumber(double: NSDate().timeIntervalSince1970), forKey: keyForArmchairKeyType(ArmchairKey.FirstUseDate)) + StandardUserDefaults().setObject(NSNumber(integer: 1), forKey: keyForArmchairKeyType(ArmchairKey.UseCount)) + StandardUserDefaults().setObject(NSNumber(integer: 0), forKey: keyForArmchairKeyType(ArmchairKey.SignificantEventCount)) + StandardUserDefaults().synchronize() +} + /* * * @@ -981,9 +991,7 @@ public class Manager : ArmchairManager { userDefaultsObject?.setObject(userDefaultsObject?.objectForKey(keyForArmchairKeyType(ArmchairKey.DeclinedToRate)), forKey: keyForArmchairKeyType(ArmchairKey.PreviousVersionDeclinedToRate)) userDefaultsObject?.setObject(currentVersion, forKey: currentVersionKey) - userDefaultsObject?.setObject(NSNumber(double: NSDate().timeIntervalSince1970), forKey: keyForArmchairKeyType(ArmchairKey.FirstUseDate)) - userDefaultsObject?.setObject(NSNumber(integer: 1), forKey: keyForArmchairKeyType(ArmchairKey.UseCount)) - userDefaultsObject?.setObject(NSNumber(integer: 0), forKey: keyForArmchairKeyType(ArmchairKey.SignificantEventCount)) + resetCounters() userDefaultsObject?.setObject(NSNumber(bool: false), forKey: keyForArmchairKeyType(ArmchairKey.RatedCurrentVersion)) userDefaultsObject?.setObject(NSNumber(bool: false), forKey: keyForArmchairKeyType(ArmchairKey.DeclinedToRate)) userDefaultsObject?.setObject(NSNumber(double: 0), forKey: keyForArmchairKeyType(ArmchairKey.ReminderRequestDate)) From e1de2361bf6cdbcd3d917f95e5462b954f431db1 Mon Sep 17 00:00:00 2001 From: Fotis Dimanidis Date: Wed, 4 May 2016 11:12:32 +0200 Subject: [PATCH 2/5] Updated Readme to include resetCounters() --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index a85590a..081fff7 100644 --- a/README.md +++ b/README.md @@ -295,6 +295,10 @@ The `reviewURLString()` function is the review URL string, generated by substitu `ratingConditionsHaveBeenMet()` returns true when all of the setup conditions to display a prompt have been met. Armchair.ratingConditionsHaveBeenMet() -> Bool + +`resetCounters()` resets all counters manually. This resets UseCount, SignificantEventCount and FirstUseDate (daysUntilPrompt). + + Armchair.resetCounters() ##### iOS Only Functions From 813de6e889a716b96a74169bc45c97ff78774d7a Mon Sep 17 00:00:00 2001 From: Fotis Dimanidis Date: Wed, 4 May 2016 14:37:30 +0200 Subject: [PATCH 3/5] Added resetAll function --- Source/Armchair.swift | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/Source/Armchair.swift b/Source/Armchair.swift index 67b89e3..58cb36c 100644 --- a/Source/Armchair.swift +++ b/Source/Armchair.swift @@ -312,6 +312,26 @@ public func resetCounters() { StandardUserDefaults().synchronize() } +/** + Reset all values tracked by Armchair to initial state. + */ +public func resetAll() { + let currentVersionKey = keyForArmchairKeyType(ArmchairKey.CurrentVersion) + let trackingVersion: String? = StandardUserDefaults().stringForKey(currentVersionKey) + let bundleVersionKey = kCFBundleVersionKey as String + let currentVersion = NSBundle.mainBundle().objectForInfoDictionaryKey(bundleVersionKey) as? String + + StandardUserDefaults().setObject(trackingVersion, forKey: keyForArmchairKeyType(ArmchairKey.PreviousVersion)) + StandardUserDefaults().setObject(StandardUserDefaults().objectForKey(keyForArmchairKeyType(ArmchairKey.RatedCurrentVersion)), forKey: keyForArmchairKeyType(ArmchairKey.PreviousVersionRated)) + StandardUserDefaults().setObject(StandardUserDefaults().objectForKey(keyForArmchairKeyType(ArmchairKey.DeclinedToRate)), forKey: keyForArmchairKeyType(ArmchairKey.PreviousVersionDeclinedToRate)) + StandardUserDefaults().setObject(currentVersion, forKey: currentVersionKey) + resetCounters() + StandardUserDefaults().setObject(NSNumber(bool: false), forKey: keyForArmchairKeyType(ArmchairKey.RatedCurrentVersion)) + StandardUserDefaults().setObject(NSNumber(bool: false), forKey: keyForArmchairKeyType(ArmchairKey.DeclinedToRate)) + StandardUserDefaults().setObject(NSNumber(double: 0), forKey: keyForArmchairKeyType(ArmchairKey.ReminderRequestDate)) + StandardUserDefaults().synchronize() +} + /* * * @@ -986,16 +1006,7 @@ public class Manager : ArmchairManager { } else if tracksNewVersions { // it's a new version of the app, so restart tracking - userDefaultsObject?.setObject(trackingVersion, forKey: keyForArmchairKeyType(ArmchairKey.PreviousVersion)) - userDefaultsObject?.setObject(userDefaultsObject?.objectForKey(keyForArmchairKeyType(ArmchairKey.RatedCurrentVersion)), forKey: keyForArmchairKeyType(ArmchairKey.PreviousVersionRated)) - userDefaultsObject?.setObject(userDefaultsObject?.objectForKey(keyForArmchairKeyType(ArmchairKey.DeclinedToRate)), forKey: keyForArmchairKeyType(ArmchairKey.PreviousVersionDeclinedToRate)) - - userDefaultsObject?.setObject(currentVersion, forKey: currentVersionKey) - resetCounters() - userDefaultsObject?.setObject(NSNumber(bool: false), forKey: keyForArmchairKeyType(ArmchairKey.RatedCurrentVersion)) - userDefaultsObject?.setObject(NSNumber(bool: false), forKey: keyForArmchairKeyType(ArmchairKey.DeclinedToRate)) - userDefaultsObject?.setObject(NSNumber(double: 0), forKey: keyForArmchairKeyType(ArmchairKey.ReminderRequestDate)) - + resetAll() debugLog("Reset Tracking Version to: \(trackingVersion!)") } From 93ae5bf93ac775e6070b2d41b4302285e9135347 Mon Sep 17 00:00:00 2001 From: Fotis Dimanidis Date: Wed, 4 May 2016 14:42:25 +0200 Subject: [PATCH 4/5] Renamed reset methods --- Source/Armchair.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/Armchair.swift b/Source/Armchair.swift index 58cb36c..254e5e9 100644 --- a/Source/Armchair.swift +++ b/Source/Armchair.swift @@ -305,7 +305,7 @@ public func debugEnabled(debugEnabled: Bool) { /** Reset all counters manually. This resets UseCount, SignificantEventCount and FirstUseDate (daysUntilPrompt) */ -public func resetCounters() { +public func resetUsageCounters() { StandardUserDefaults().setObject(NSNumber(double: NSDate().timeIntervalSince1970), forKey: keyForArmchairKeyType(ArmchairKey.FirstUseDate)) StandardUserDefaults().setObject(NSNumber(integer: 1), forKey: keyForArmchairKeyType(ArmchairKey.UseCount)) StandardUserDefaults().setObject(NSNumber(integer: 0), forKey: keyForArmchairKeyType(ArmchairKey.SignificantEventCount)) @@ -315,7 +315,7 @@ public func resetCounters() { /** Reset all values tracked by Armchair to initial state. */ -public func resetAll() { +public func resetAllCounters() { let currentVersionKey = keyForArmchairKeyType(ArmchairKey.CurrentVersion) let trackingVersion: String? = StandardUserDefaults().stringForKey(currentVersionKey) let bundleVersionKey = kCFBundleVersionKey as String @@ -325,7 +325,7 @@ public func resetAll() { StandardUserDefaults().setObject(StandardUserDefaults().objectForKey(keyForArmchairKeyType(ArmchairKey.RatedCurrentVersion)), forKey: keyForArmchairKeyType(ArmchairKey.PreviousVersionRated)) StandardUserDefaults().setObject(StandardUserDefaults().objectForKey(keyForArmchairKeyType(ArmchairKey.DeclinedToRate)), forKey: keyForArmchairKeyType(ArmchairKey.PreviousVersionDeclinedToRate)) StandardUserDefaults().setObject(currentVersion, forKey: currentVersionKey) - resetCounters() + resetUsageCounters() StandardUserDefaults().setObject(NSNumber(bool: false), forKey: keyForArmchairKeyType(ArmchairKey.RatedCurrentVersion)) StandardUserDefaults().setObject(NSNumber(bool: false), forKey: keyForArmchairKeyType(ArmchairKey.DeclinedToRate)) StandardUserDefaults().setObject(NSNumber(double: 0), forKey: keyForArmchairKeyType(ArmchairKey.ReminderRequestDate)) @@ -1006,7 +1006,7 @@ public class Manager : ArmchairManager { } else if tracksNewVersions { // it's a new version of the app, so restart tracking - resetAll() + resetAllCounters() debugLog("Reset Tracking Version to: \(trackingVersion!)") } From 4e03a1d725c33d171dd8cbc962b87fc9c2186f0c Mon Sep 17 00:00:00 2001 From: Fotis Dimanidis Date: Wed, 4 May 2016 14:46:32 +0200 Subject: [PATCH 5/5] Updated Readme to include resetCounters() & resetUsageCounters() --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 081fff7..1cbef07 100644 --- a/README.md +++ b/README.md @@ -296,9 +296,13 @@ The `reviewURLString()` function is the review URL string, generated by substitu Armchair.ratingConditionsHaveBeenMet() -> Bool -`resetCounters()` resets all counters manually. This resets UseCount, SignificantEventCount and FirstUseDate (daysUntilPrompt). +`resetUsageCounters()` resets app usage counters. Calling this method resets UseCount, SignificantEventCount and FirstUseDate (daysUntilPrompt). - Armchair.resetCounters() + Armchair.resetUsageCounters() + +`resetAllCounters()` resets all counters. Calling thid method resets every value tracked by Armachair. + + Armchair.resetAllCounters() ##### iOS Only Functions