feat: version migration for new option names
This commit is contained in:
@@ -59,7 +59,44 @@
|
|||||||
/// Called during application start. Perform any version migration updates here.
|
/// Called during application start. Perform any version migration updates here.
|
||||||
- (void)migrateVersionUpdate {
|
- (void)migrateVersionUpdate {
|
||||||
// Currently unused, but you'll be thankful in the future for a previously saved version number
|
// Currently unused, but you'll be thankful in the future for a previously saved version number
|
||||||
[StoreCoordinator setOption:@"app-version" value: UserPrefsAppVersion()];
|
// thank you, past-self! but it would have been nice to have easier "<=" comparison
|
||||||
|
NSString *prevVersion = [StoreCoordinator optionForKey:@"app-version"];
|
||||||
|
NSString *curVersion = UserPrefsAppVersion();
|
||||||
|
// migrate if not run for the first time
|
||||||
|
if (prevVersion != nil) {
|
||||||
|
if ([prevVersion isEqualToString:curVersion]) {
|
||||||
|
return; // migration already performed
|
||||||
|
}
|
||||||
|
// else: migrate
|
||||||
|
NSInteger ver = 0;
|
||||||
|
for (NSString *part in [prevVersion componentsSeparatedByString:@"."]) {
|
||||||
|
ver = ver * 100 + [part integerValue];
|
||||||
|
}
|
||||||
|
if (ver <= 10505) { // v1.5.5
|
||||||
|
[self migrate_v1_6_0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
[StoreCoordinator setOption:@"app-version" value:curVersion];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)migrate_v1_6_0 {
|
||||||
|
NSLog(@"Migrating to v1.6.0");
|
||||||
|
// rename options
|
||||||
|
BOOL shouldLimitCount = UserPrefsBool(@"feedLimitArticles"); // default: NO
|
||||||
|
if (shouldLimitCount) {
|
||||||
|
NSInteger prev = UserPrefsInt(@"articlesInMenuLimit"); // default: 40
|
||||||
|
UserPrefsSetInt(Pref_articleCountLimit, prev == 0 ? 40 : prev);
|
||||||
|
}
|
||||||
|
BOOL shouldLimitTitle = UserPrefsBool(@"feedTruncateTitle"); // default: NO
|
||||||
|
if (shouldLimitTitle) {
|
||||||
|
NSInteger prev = UserPrefsInt(@"shortArticleNamesLimit"); // default: 60
|
||||||
|
UserPrefsSetInt(Pref_articleTitleLimit, prev == 0 ? 60 : prev);
|
||||||
|
}
|
||||||
|
// delete old keys
|
||||||
|
UserPrefsSet(@"feedLimitArticles", nil);
|
||||||
|
UserPrefsSet(@"feedTruncateTitle", nil);
|
||||||
|
UserPrefsSet(@"articlesInMenuLimit", nil);
|
||||||
|
UserPrefsSet(@"shortArticleNamesLimit", nil);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user