Fjalapeno has uploaded a new change for review.
https://gerrit.wikimedia.org/r/199299
Change subject: Add text progress to migration Move migration to background
thread / context
......................................................................
Add text progress to migration
Move migration to background thread / context
Change-Id: I1297bb95e943749a28a99ba7488bd8d35acaf901
---
M OldDataSchema/Data/ArticleDataContextSingleton.h
M OldDataSchema/Data/ArticleDataContextSingleton.m
M OldDataSchema/OldDataSchema/OldDataSchemaMigrator.h
M OldDataSchema/OldDataSchema/OldDataSchemaMigrator.m
M Wikipedia.xcodeproj/project.pbxproj
M wikipedia/View Controllers/DataMigration/DataMigrationProgressViewController.m
M wikipedia/View
Controllers/DataMigration/DataMigrationProgressViewController.xib
M wikipedia/ca.lproj/Localizable.strings
M wikipedia/de.lproj/Localizable.strings
M wikipedia/en.lproj/Localizable.strings
M wikipedia/es.lproj/Localizable.strings
M wikipedia/fi.lproj/Localizable.strings
M wikipedia/fr.lproj/Localizable.strings
M wikipedia/he.lproj/Localizable.strings
M wikipedia/id.lproj/Localizable.strings
M wikipedia/it.lproj/Localizable.strings
M wikipedia/ja.lproj/Localizable.strings
M wikipedia/ko.lproj/Localizable.strings
M wikipedia/lb.lproj/Localizable.strings
M wikipedia/mk.lproj/Localizable.strings
M wikipedia/ms.lproj/Localizable.strings
M wikipedia/nl.lproj/Localizable.strings
M wikipedia/pt-br.lproj/Localizable.strings
M wikipedia/pt.lproj/Localizable.strings
M wikipedia/qqq.lproj/Localizable.strings
M wikipedia/ro.lproj/Localizable.strings
M wikipedia/ru.lproj/Localizable.strings
M wikipedia/sv.lproj/Localizable.strings
M wikipedia/tr.lproj/Localizable.strings
M wikipedia/vi.lproj/Localizable.strings
M wikipedia/zh-hans.lproj/Localizable.strings
31 files changed, 234 insertions(+), 119 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/apps/ios/wikipedia
refs/changes/99/199299/1
diff --git a/OldDataSchema/Data/ArticleDataContextSingleton.h
b/OldDataSchema/Data/ArticleDataContextSingleton.h
index ef7f512..1f188ce 100644
--- a/OldDataSchema/Data/ArticleDataContextSingleton.h
+++ b/OldDataSchema/Data/ArticleDataContextSingleton.h
@@ -5,9 +5,13 @@
@interface ArticleDataContextSingleton : NSObject
++ (ArticleDataContextSingleton *)sharedInstance;
+
@property (nonatomic, retain) NSManagedObjectContext *mainContext;
-+ (ArticleDataContextSingleton *)sharedInstance;
+- (NSManagedObjectContext*)backgroundContext;
+
+- (void)saveContextAndPropagateChangesToStore:(NSManagedObjectContext*)context
completionBlock:(void(^)(NSError* error))completionBlock;
- (id)createArticleDataModel:(Class)modelClass;
diff --git a/OldDataSchema/Data/ArticleDataContextSingleton.m
b/OldDataSchema/Data/ArticleDataContextSingleton.m
index 697aca0..812f948 100644
--- a/OldDataSchema/Data/ArticleDataContextSingleton.m
+++ b/OldDataSchema/Data/ArticleDataContextSingleton.m
@@ -80,6 +80,15 @@
self.masterContext.persistentStoreCoordinator = persistentStoreCoordinator;
}
+- (NSManagedObjectContext*)backgroundContext{
+
+ NSManagedObjectContext* newContext = [[NSManagedObjectContext alloc]
initWithConcurrencyType:NSPrivateQueueConcurrencyType];
+ newContext.parentContext = self.masterContext;
+
+ return newContext;
+}
+
+
- (NSString *)documentRootPath
{
NSArray* documentPaths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
@@ -87,7 +96,36 @@
return documentRootPath;
}
+- (void)saveContextAndPropagateChangesToStore:(NSManagedObjectContext*)context
completionBlock:(void(^)(NSError* error))completionBlock{
+
+ [context performBlock:^{
+
+ __block NSError* errorToSend = nil;
+
+ NSError* error = nil;
+ if([context save:&error]){
+ [self.masterContext performBlock:^{
+ NSError *masterError = nil;
+ if (![self.masterContext save:&masterError]) {
+ errorToSend = masterError;
+ }
+ }];
+ }else{
+ errorToSend = error;
+ }
+
+ if(completionBlock){
+
+ dispatch_async(dispatch_get_main_queue(), ^{
+ completionBlock(errorToSend);
+ });
+ }
+ }];
+}
+
+
- (void)propagateMainSavesToMaster{
+
[self.masterContext performBlock:^{
NSError *masterError = nil;
if (![self.masterContext save:&masterError]) {
diff --git a/OldDataSchema/OldDataSchema/OldDataSchemaMigrator.h
b/OldDataSchema/OldDataSchema/OldDataSchemaMigrator.h
index 22aef16..87fc65e 100644
--- a/OldDataSchema/OldDataSchema/OldDataSchemaMigrator.h
+++ b/OldDataSchema/OldDataSchema/OldDataSchemaMigrator.h
@@ -25,13 +25,26 @@
@end
+@protocol OldDataSchemaMigratorProgressDelegate <NSObject>
+
+-(void)oldDataSchema:(OldDataSchemaMigrator *)schema
didUpdateProgressWithArticlesCompleted:(NSUInteger)completed
total:(NSUInteger)total;
+
+-(void)oldDataSchemaDidFinishMigration:(OldDataSchemaMigrator *)schema;
+
+-(void)oldDataSchema:(OldDataSchemaMigrator *)schema
didFinishWithError:(NSError*)error;
+
+@end
+
+
@interface OldDataSchemaMigrator : NSObject
@property (weak) id<OldDataSchemaDelegate> delegate;
+@property (weak) id<OldDataSchemaMigratorProgressDelegate> progressDelegate;
-(BOOL)exists;
+
+//This runs async now!
-(void)migrateData;
--(void)removeOldData;
@end
diff --git a/OldDataSchema/OldDataSchema/OldDataSchemaMigrator.m
b/OldDataSchema/OldDataSchema/OldDataSchemaMigrator.m
index e7d7b75..d9f2557 100644
--- a/OldDataSchema/OldDataSchema/OldDataSchemaMigrator.m
+++ b/OldDataSchema/OldDataSchema/OldDataSchemaMigrator.m
@@ -13,20 +13,24 @@
#import "NSManagedObjectContext+SimpleFetch.h"
#import "Article+ConvenienceAccessors.h"
-@implementation OldDataSchemaMigrator {
- ArticleDataContextSingleton *context;
- NSMutableSet *savedTitles;
-}
+@interface OldDataSchemaMigrator ()
+
+@property (nonatomic, strong) ArticleDataContextSingleton *context;
+@property (nonatomic, strong) NSMutableSet *savedTitles;
+
+@end
+
+@implementation OldDataSchemaMigrator
-(instancetype)init
{
self = [super init];
if (self) {
- savedTitles = [[NSMutableSet alloc] init];
+ _savedTitles = [[NSMutableSet alloc] init];
if (self.exists) {
- context = [ArticleDataContextSingleton sharedInstance];
+ _context = [ArticleDataContextSingleton sharedInstance];
} else {
- context = nil;
+ _context = nil;
}
}
return self;
@@ -64,31 +68,64 @@
// TODO
// 1) Go through saved article list, saving entries and (articles and
images)
// 2) Go through page reading history, saving entries and (articles and
images) when not already transferred
+
+ NSManagedObjectContext* context = [self.context backgroundContext];
+
+ [context performBlock:^{
+
+ NSFetchRequest *req = [NSFetchRequest
fetchRequestWithEntityName:@"Saved"];
+ req.sortDescriptors = @[[[NSSortDescriptor alloc]
initWithKey:@"dateSaved" ascending:YES]];
+ NSError *err;
+ NSArray *savedEntries = [context executeFetchRequest:req error:&err];
+
+ if (err) {
+ NSLog(@"Error reading old Saved entries: %@", err);
+ }
+
+ NSFetchRequest *req2 = [NSFetchRequest
fetchRequestWithEntityName:@"History"];
+ req2.sortDescriptors = @[[[NSSortDescriptor alloc]
initWithKey:@"dateVisited" ascending:YES]];
+ NSError *err2;
+ NSArray *historyEntries = [context executeFetchRequest:req2
error:&err2];
+
+ if (err2) {
+ NSLog(@"Error reading old History entries: %@", err2);
+ }
+
+ NSUInteger totalArticlesToMigrate = [savedEntries count] +
[historyEntries count];
+ __block NSUInteger numberOfArticlesMigrated = 0;
+
+ void (^incrementAndNotify)(void) = ^void(void) {
+
+ numberOfArticlesMigrated++;
+ dispatch_async(dispatch_get_main_queue(), ^{
+ [self.progressDelegate oldDataSchema:self
didUpdateProgressWithArticlesCompleted:numberOfArticlesMigrated
total:totalArticlesToMigrate];
+ });
+ };
+
+ for (Saved *saved in savedEntries) {
+ [self migrateSaved:saved];
+ [self migrateArticle:saved.article];
+ incrementAndNotify();
+ }
+
+ for (History *history in historyEntries) {
+ [self migrateHistory:history];
+ incrementAndNotify();
+ }
+
+ [self.context saveContextAndPropagateChangesToStore:context
completionBlock:^(NSError *error) {
+
+ [self removeOldData];
- NSFetchRequest *req = [NSFetchRequest fetchRequestWithEntityName:@"Saved"];
- req.sortDescriptors = @[[[NSSortDescriptor alloc] initWithKey:@"dateSaved"
ascending:YES]];
- NSError *err;
- NSArray *savedEntries = [context.mainContext executeFetchRequest:req
error:&err];
- if (err) {
- NSLog(@"Error reading old Saved entries: %@", err);
- }
- for (Saved *saved in savedEntries) {
- [self migrateSaved:saved];
- [self migrateArticle:saved.article];
- }
-
- NSFetchRequest *req2 = [NSFetchRequest
fetchRequestWithEntityName:@"History"];
- req2.sortDescriptors = @[[[NSSortDescriptor alloc]
initWithKey:@"dateVisited" ascending:YES]];
- NSError *err2;
- NSArray *historyEntries = [context.mainContext executeFetchRequest:req2
error:&err2];
- if (err2) {
- NSLog(@"Error reading old History entries: %@", err2);
- }
- for (History *history in historyEntries) {
- [self migrateHistory:history];
- [self migrateArticle:history.article];
- }
-}
+ if(error){
+ [self.progressDelegate oldDataSchema:self
didFinishWithError:error];
+ }else{
+ [self.progressDelegate oldDataSchemaDidFinishMigration:self];
+ }
+ }];
+ }];
+
+ }
- (MWKSite*)migrateArticleSite:(Article*)article {
return [[MWKSite alloc] initWithDomain:@"wikipedia.org"
language:article.domain];
@@ -113,11 +150,11 @@
-(void)migrateArticle:(Article *)article
{
NSString *key = [NSString stringWithFormat:@"%@:%@", article.domain,
article.title];
- if ([savedTitles containsObject:key]) {
+ if ([self.savedTitles containsObject:key]) {
// already imported this article
} else {
// Record for later to avoid dupe imports
- [savedTitles addObject:key];
+ [self.savedTitles addObject:key];
MWKArticle* migratedArticle = [self.delegate oldDataSchema:self
migrateArticle:[self exportArticle:article]];
@@ -134,10 +171,10 @@
}
}
- NSAssert(!thumbnail
- || [[migratedArticle.images imageURLAtIndex:0]
isEqualToString:thumbnail.sourceUrl],
- @"Thumbnail was present, but it wasn't first in the article's
image list: %@",
- [migratedArticle.images dataExport]);
+// NSAssert(!thumbnail
+// || [[migratedArticle.images imageURLAtIndex:0]
isEqualToString:thumbnail.sourceUrl],
+// @"Thumbnail was present, but it wasn't first in the
article's image list: %@",
+// [migratedArticle.images dataExport]);
// set the lead image to the first non-thumb image
if ([migratedArticle.images count]) {
diff --git a/Wikipedia.xcodeproj/project.pbxproj
b/Wikipedia.xcodeproj/project.pbxproj
index 30697cc..6820e6a 100644
--- a/Wikipedia.xcodeproj/project.pbxproj
+++ b/Wikipedia.xcodeproj/project.pbxproj
@@ -73,7 +73,6 @@
0449E63518A9845C00D51524 /* LoginViewController.m in Sources */
= {isa = PBXBuildFile; fileRef = 0449E63418A9845C00D51524 /*
LoginViewController.m */; };
0449E63918AAA26A00D51524 /* NSHTTPCookieStorage+CloneCookie.m
in Sources */ = {isa = PBXBuildFile; fileRef = 0449E63818AAA26A00D51524 /*
NSHTTPCookieStorage+CloneCookie.m */; };
044BD6B618849AD000FFE4BE /* SectionEditorViewController.m in
Sources */ = {isa = PBXBuildFile; fileRef = 044BD6B418849AD000FFE4BE /*
SectionEditorViewController.m */; };
- 044BF2C51ABCF9EE00BCC8A7 /* OldDataSchemaMigrator.m in Sources
*/ = {isa = PBXBuildFile; fileRef = 044BF2C41ABCF9EE00BCC8A7 /*
OldDataSchemaMigrator.m */; };
0452C803195CB216007925A6 /* UIViewController+ModalsSearch.m in
Sources */ = {isa = PBXBuildFile; fileRef = 0452C802195CB216007925A6 /*
UIViewController+ModalsSearch.m */; };
0452C810195D0F03007925A6 /* UIViewController+ModalPop.m in
Sources */ = {isa = PBXBuildFile; fileRef = 0452C80F195D0F03007925A6 /*
UIViewController+ModalPop.m */; };
04530AF51935BF4D00022512 /* ModalMenuAndContentViewController.m
in Sources */ = {isa = PBXBuildFile; fileRef = 04530AF41935BF4D00022512 /*
ModalMenuAndContentViewController.m */; };
@@ -213,6 +212,7 @@
04F27B7818FE0F2E00EDD838 /* PageHistoryViewController.m in
Sources */ = {isa = PBXBuildFile; fileRef = 04F27B7418FE0F2E00EDD838 /*
PageHistoryViewController.m */; };
04F39590186CF80100B0D6FC /* TOCViewController.m in Sources */ =
{isa = PBXBuildFile; fileRef = 04F3958F186CF80100B0D6FC /* TOCViewController.m
*/; };
08D631F71A69B1AB00D87AD0 /* WMFImageGalleryViewController.m in
Sources */ = {isa = PBXBuildFile; fileRef = 08D631F61A69B1AB00D87AD0 /*
WMFImageGalleryViewController.m */; };
+ 0E4F85D31AC0B846004CA3CD /* OldDataSchemaMigrator.m in Sources
*/ = {isa = PBXBuildFile; fileRef = 0E4F85D11AC0B846004CA3CD /*
OldDataSchemaMigrator.m */; };
0EA4402E1AA6281200B09DBA /* NSDateFormatter+WMFExtensions.m in
Sources */ = {isa = PBXBuildFile; fileRef = 0EA4402D1AA6281200B09DBA /*
NSDateFormatter+WMFExtensions.m */; };
701FF5EE601DEA3FCAB7EFD3 /* libPods.a in Frameworks */ = {isa =
PBXBuildFile; fileRef = D82982ED992F47428037BDF2 /* libPods.a */; };
954BA118838BF8BA6B01C34A /* libPods-WikipediaUnitTests.a in
Frameworks */ = {isa = PBXBuildFile; fileRef = 8CE61C6963F825760822A28A /*
libPods-WikipediaUnitTests.a */; };
@@ -742,6 +742,9 @@
08D631F61A69B1AB00D87AD0 /* WMFImageGalleryViewController.m */
= {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.objc; name = WMFImageGalleryViewController.m; path = "Image
Gallery/WMFImageGalleryViewController.m"; sourceTree = "<group>"; };
08D631F81A69B8CD00D87AD0 /* WMFImageGalleryCollectionViewCell.h
*/ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.h; name = WMFImageGalleryCollectionViewCell.h; path = "Image
Gallery/WMFImageGalleryCollectionViewCell.h"; sourceTree = "<group>"; };
08D631F91A69B8CD00D87AD0 /* WMFImageGalleryCollectionViewCell.m
*/ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.objc; name = WMFImageGalleryCollectionViewCell.m; path = "Image
Gallery/WMFImageGalleryCollectionViewCell.m"; sourceTree = "<group>"; };
+ 0E4F85D01AC0B846004CA3CD /* OldDataSchemaMigrator.h */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =
OldDataSchemaMigrator.h; sourceTree = "<group>"; };
+ 0E4F85D11AC0B846004CA3CD /* OldDataSchemaMigrator.m */ = {isa =
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path
= OldDataSchemaMigrator.m; sourceTree = "<group>"; };
+ 0E4F85D21AC0B846004CA3CD /* OldDataSchemaMigrator_Private.h */
= {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.h; path = OldDataSchemaMigrator_Private.h; sourceTree = "<group>";
};
0EA4402C1AA6281200B09DBA /* NSDateFormatter+WMFExtensions.h */
= {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.h; name = "NSDateFormatter+WMFExtensions.h"; path =
"Wikipedia/Categories/NSDateFormatter+WMFExtensions.h"; sourceTree =
SOURCE_ROOT; };
0EA4402D1AA6281200B09DBA /* NSDateFormatter+WMFExtensions.m */
= {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType =
sourcecode.c.objc; name = "NSDateFormatter+WMFExtensions.m"; path =
"Wikipedia/Categories/NSDateFormatter+WMFExtensions.m"; sourceTree =
SOURCE_ROOT; };
17A2F22335C5256576CEDBDD /*
Pods-WikipediaUnitTests.release.xcconfig */ = {isa = PBXFileReference;
includeInIndex = 1; lastKnownFileType = text.xcconfig; name =
"Pods-WikipediaUnitTests.release.xcconfig"; path = "Pods/Target Support
Files/Pods-WikipediaUnitTests/Pods-WikipediaUnitTests.release.xcconfig";
sourceTree = "<group>"; };
@@ -2022,6 +2025,17 @@
name = "Image Gallery";
sourceTree = "<group>";
};
+ 0E4F85CF1AC0B846004CA3CD /* OldDataSchema */ = {
+ isa = PBXGroup;
+ children = (
+ 0E4F85D01AC0B846004CA3CD /*
OldDataSchemaMigrator.h */,
+ 0E4F85D11AC0B846004CA3CD /*
OldDataSchemaMigrator.m */,
+ 0E4F85D21AC0B846004CA3CD /*
OldDataSchemaMigrator_Private.h */,
+ );
+ name = OldDataSchema;
+ path = OldDataSchema/OldDataSchema;
+ sourceTree = "<group>";
+ };
BC8309941A7BF935003FC5C7 /* WikipediaUnitTests */ = {
isa = PBXGroup;
children = (
@@ -2301,6 +2315,7 @@
D4991453181D51DE00E6073C /* Images.xcassets */,
BC8309941A7BF935003FC5C7 /* WikipediaUnitTests
*/,
D4991437181D51DE00E6073C /* Frameworks */,
+ 0E4F85CF1AC0B846004CA3CD /* OldDataSchema */,
D4991436181D51DE00E6073C /* Products */,
D4F478441A48CD8500D8043C /*
OldDataSchema.xcodeproj */,
EC30571054CC4DC4EE743503 /* Pods */,
@@ -3029,6 +3044,7 @@
041A3B5E18E11ED90079FF1C /* LanguagesCell.m in
Sources */,
042487521A54BECD00A5C905 /*
MWKArticle+Convenience.m in Sources */,
043DAC4B1901C3EE001CD17C /*
CreditsViewController.m in Sources */,
+ 0E4F85D31AC0B846004CA3CD /*
OldDataSchemaMigrator.m in Sources */,
D42E75EB18D11237002EA7E5 /* MWLanguageInfo.m in
Sources */,
043F8BF21A11699A00D1AE44 /*
UIView+WMFRoundCorners.m in Sources */,
04E106341A3560030046DC27 /*
LeadImageContainer.m in Sources */,
@@ -3151,7 +3167,6 @@
08D631F71A69B1AB00D87AD0 /*
WMFImageGalleryViewController.m in Sources */,
0412CC621925366C0010E616 /*
RootViewController.m in Sources */,
04272E7B1940EEBC00CC682F /* WMFAssetsFile.m in
Sources */,
- 044BF2C51ABCF9EE00BCC8A7 /*
OldDataSchemaMigrator.m in Sources */,
042A5B2919253E570095E172 /*
TopMenuViewController.m in Sources */,
D4991445181D51DE00E6073C /* main.m in Sources
*/,
0480AE9C1AA4F01600A9950C /*
WMFWebViewFooterContainerView.m in Sources */,
diff --git a/wikipedia/View
Controllers/DataMigration/DataMigrationProgressViewController.m
b/wikipedia/View Controllers/DataMigration/DataMigrationProgressViewController.m
index 5294ed1..d423eb1 100644
--- a/wikipedia/View
Controllers/DataMigration/DataMigrationProgressViewController.m
+++ b/wikipedia/View
Controllers/DataMigration/DataMigrationProgressViewController.m
@@ -23,7 +23,7 @@
BUTTON_INDEX_SUBMIT = 1
} MigrationButtonIndexIds;
-@interface DataMigrationProgressViewController ()
+@interface DataMigrationProgressViewController
()<OldDataSchemaMigratorProgressDelegate>
@property (readonly) OldDataSchemaMigrator* oldDataSchema;
@property (readonly) DataMigrator* dataMigrator;
@@ -40,7 +40,7 @@
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
- self.progressLabel.text = MWLocalizedString(@"update-progress-label", nil);
+ self.progressLabel.text =
MWLocalizedString(@"migration-update-progress-label", nil);
}
- (void)didReceiveMemoryWarning {
@@ -51,7 +51,14 @@
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
- [self asyncMigration];
+ if([self.oldDataSchema exists]){
+
+ [self runNewMigration];
+
+ }else if ([self.dataMigrator hasData]){
+
+ [self runOldMigration];
+ }
}
- (OldDataSchemaMigrator*)oldDataSchema {
@@ -72,64 +79,61 @@
return [self.oldDataSchema exists] || [self.dataMigrator hasData];
}
-- (void)syncMigration {
+- (void)runNewMigration {
// Middle-Ages Converter
// From the native app's initial CoreData-based implementation,
// which now lives in OldDataSchema subproject.
- if ([self.oldDataSchema exists]) {
- SchemaConverter* schemaConverter = [[SchemaConverter alloc]
initWithDataStore:[SessionSingleton sharedInstance].dataStore];
- self.oldDataSchema.delegate = schemaConverter;
- NSLog(@"begin migration");
- [self.oldDataSchema migrateData];
- NSLog(@"end migration");
+ SchemaConverter* schemaConverter = [[SchemaConverter alloc]
initWithDataStore:[SessionSingleton sharedInstance].dataStore];
+ self.oldDataSchema.delegate = schemaConverter;
+ self.oldDataSchema.progressDelegate = self;
+ NSLog(@"begin migration");
+ [self.oldDataSchema migrateData];
+}
- [self.oldDataSchema removeOldData];
-
- // hack for history fix
- [[SessionSingleton sharedInstance].userDataStore reset];
-
- return;
- }
-
+- (void)runOldMigration {
+
// Ye Ancient Converter
// From the old PhoneGap app
// @fixme: fix this to work again
- if ([self.dataMigrator hasData]) {
- NSLog(@"Old data to migrate found!");
- NSArray* titles = [self.dataMigrator extractSavedPages];
- ArticleImporter* importer = [[ArticleImporter alloc] init];
-
- for (NSDictionary* item in titles) {
- NSLog(@"Will import saved page: %@ %@", item[@"lang"],
item[@"title"]);
- }
-
- [importer importArticles:titles];
-
- [self.dataMigrator removeOldData];
-
- return;
+ NSLog(@"Old data to migrate found!");
+ NSArray* titles = [self.dataMigrator extractSavedPages];
+ ArticleImporter* importer = [[ArticleImporter alloc] init];
+
+ for (NSDictionary* item in titles) {
+ NSLog(@"Will import saved page: %@ %@", item[@"lang"], item[@"title"]);
}
-
- NSLog(@"No old data to migrate.");
+
+ [importer importArticles:titles];
+
+ [self.dataMigrator removeOldData];
}
-- (void)asyncMigration {
- __weak DataMigrationProgressViewController* weakSelf = self;
- dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
0), ^() {
- @try {
- [weakSelf syncMigration];
- }@catch (NSException* ex) {
- NSLog(@"Migration failure: %@", ex);
- dispatch_async(dispatch_get_main_queue(), ^() {
- [weakSelf displayErrorCondition];
- });
- return;
- }
+- (void)oldDataSchema:(OldDataSchemaMigrator*)schema
didUpdateProgressWithArticlesCompleted:(NSUInteger)completed
total:(NSUInteger)total {
+ NSString* lineOne = MWLocalizedString(@"migration-update-progress-label",
nil);
- dispatch_async(dispatch_get_main_queue(), ^() {
- [weakSelf.delegate dataMigrationProgressComplete:weakSelf];
- });
- });
+ NSString* lineTwo =
MWLocalizedString(@"migration-update-progress-count-label", nil);
+
+ lineTwo = [lineTwo stringByReplacingOccurrencesOfString:@"$1"
withString:[NSString stringWithFormat:@"%lu", (unsigned long)completed]];
+
+ lineTwo = [lineTwo stringByReplacingOccurrencesOfString:@"$2"
withString:[NSString stringWithFormat:@"%lu", (unsigned long)total]];
+
+ NSString* progressString = [NSString stringWithFormat:@"%@\n%@", lineOne,
lineTwo];
+
+ self.progressLabel.text = progressString;
+}
+
+
+- (void)oldDataSchemaDidFinishMigration:(OldDataSchemaMigrator *)schema{
+ [[SessionSingleton sharedInstance].userDataStore reset];
+ [self.delegate dataMigrationProgressComplete:self];
+ NSLog(@"end migration");
+}
+
+
+-(void)oldDataSchema:(OldDataSchemaMigrator *)schema
didFinishWithError:(NSError*)error{
+ [self displayErrorCondition];
+ [self.delegate dataMigrationProgressComplete:self];
+ NSLog(@"end migration");
}
- (void)displayErrorCondition {
diff --git a/wikipedia/View
Controllers/DataMigration/DataMigrationProgressViewController.xib
b/wikipedia/View
Controllers/DataMigration/DataMigrationProgressViewController.xib
index c8928cc..0a0dd30 100644
--- a/wikipedia/View
Controllers/DataMigration/DataMigrationProgressViewController.xib
+++ b/wikipedia/View
Controllers/DataMigration/DataMigrationProgressViewController.xib
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0"
toolsVersion="6254" systemVersion="14B25" targetRuntime="iOS.CocoaTouch"
propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0"
toolsVersion="6751" systemVersion="14C1510" targetRuntime="iOS.CocoaTouch"
propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="iOS"/>
- <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version="6247"/>
+ <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin"
version="6736"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1"
userLabel="File's Owner" customClass="DataMigrationProgress">
@@ -20,7 +20,8 @@
<activityIndicatorView opaque="NO" contentMode="scaleToFill"
horizontalHuggingPriority="750" verticalHuggingPriority="750"
hidesWhenStopped="YES" animating="YES" style="gray"
translatesAutoresizingMaskIntoConstraints="NO" id="59a-LK-cye">
<rect key="frame" x="150" y="274" width="20" height="20"/>
</activityIndicatorView>
- <label opaque="NO" userInteractionEnabled="NO"
contentMode="left" horizontalHuggingPriority="251"
verticalHuggingPriority="251" misplaced="YES" text=""
lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines"
adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO"
id="9Bj-11-8XX">
+ <label opaque="NO" userInteractionEnabled="NO"
contentMode="left" horizontalHuggingPriority="251"
verticalHuggingPriority="251" text="3 / 40 Imported" textAlignment="center"
lineBreakMode="tailTruncation" numberOfLines="0"
baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO"
translatesAutoresizingMaskIntoConstraints="NO" id="9Bj-11-8XX">
+ <rect key="frame" x="101" y="233" width="118.5"
height="20.5"/>
<fontDescription key="fontDescription" type="system"
pointSize="17"/>
<color key="textColor"
cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
@@ -28,10 +29,10 @@
</subviews>
<color key="backgroundColor" white="1" alpha="1"
colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
+ <constraint firstItem="59a-LK-cye" firstAttribute="top"
secondItem="9Bj-11-8XX" secondAttribute="bottom" constant="20" id="6hU-0D-UYa"/>
<constraint firstAttribute="centerY" secondItem="59a-LK-cye"
secondAttribute="centerY" id="N5m-um-eCk"/>
<constraint firstAttribute="centerX" secondItem="59a-LK-cye"
secondAttribute="centerX" id="N9Z-be-UDt"/>
<constraint firstAttribute="centerX" secondItem="9Bj-11-8XX"
secondAttribute="centerX" id="cRM-yQ-ug6"/>
- <constraint firstItem="9Bj-11-8XX" firstAttribute="top"
secondItem="59a-LK-cye" secondAttribute="bottom" constant="8" id="rG3-Pf-Ut1"/>
</constraints>
<point key="canvasLocation" x="673" y="442"/>
</view>
diff --git a/wikipedia/ca.lproj/Localizable.strings
b/wikipedia/ca.lproj/Localizable.strings
index 42d0dc0..2c797e8 100644
--- a/wikipedia/ca.lproj/Localizable.strings
+++ b/wikipedia/ca.lproj/Localizable.strings
@@ -253,7 +253,6 @@
"nearby-location-updates-settings-menu" = "Privadesa > Serveis d'ubicació >
Viquipèdia";
"nearby-location-general-error" = "No es pot determinar la ubicació.
Arrossegueu per refrescar-la o torneu-ho a provar més endavant.";
"nearby-wifi" = "Si activeu la Wi-Fi pot ajudar el vostre dispositiu a
determinar millor la vostra localització.";
-"update-progress-label" = "S'estan actualitzant les dades locals";
"image-gallery-unknown-owner" = "El carregador no és conegut.";
"hockeyapp-alert-question" = "Voldríeu enviar un informe de fallada a $1 per
tal que Wikimedia ho revisi?";
"hockeyapp-alert-question-with-response-field" = "Voldríeu enviar un informe
de fallada a $1 per tal que Wikimedia ho revisi? Descriviu què va passar quan
va produir-se la fallada.";
@@ -262,3 +261,4 @@
"hockeyapp-alert-always-send" = "Envia sempre";
"hockeyapp-alert-do-not-send" = "No enviïs";
"hockeyapp-alert-privacy" = "Privadesa de $1";
+"migration-update-progress-label" = "S'estan actualitzant les dades locals";
diff --git a/wikipedia/de.lproj/Localizable.strings
b/wikipedia/de.lproj/Localizable.strings
index 09b16b1..2c512e9 100644
--- a/wikipedia/de.lproj/Localizable.strings
+++ b/wikipedia/de.lproj/Localizable.strings
@@ -247,7 +247,7 @@
"nearby-location-updates-settings-menu" = "Datenschutz > Ortungsdienste >
Wikipedia";
"nearby-location-general-error" = "Standort konnte nicht bestimmt werden. Zum
Aktualisieren ziehen oder später erneut versuchen.";
"nearby-wifi" = "Das Aktivieren von Wi-Fi kann dabei helfen, den Standort
deines Gerätes besser zu bestimmen.";
-"update-progress-label" = "Aktualisiere lokale Daten";
+"migration-update-progress-label" = "Aktualisiere lokale Daten";
"image-gallery-unknown-owner" = "Hochlader unbekannt.";
"hockeyapp-alert-question" = "Möchtest du einen Absturzbericht an $1 senden,
so dass Wikimedia deinen Absturz überprüfen kann?";
"hockeyapp-alert-question-with-response-field" = "Möchtest du einen
Absturzbericht an $1 senden, so dass Wikimedia deinen Absturz überprüfen kann?
Bitte beschreibe, was passiert ist, als der Absturz aufgetreten ist:";
diff --git a/wikipedia/en.lproj/Localizable.strings
b/wikipedia/en.lproj/Localizable.strings
index e54416f..5230a09 100644
--- a/wikipedia/en.lproj/Localizable.strings
+++ b/wikipedia/en.lproj/Localizable.strings
@@ -280,7 +280,9 @@
"nearby-location-general-error" = "Unable to determine location. Pull to
refresh or try again later.";
"nearby-wifi" = "Enabling Wi-Fi can help your device better determine your
location.";
-"update-progress-label" = "Upgrading local data";
+"migration-update-progress-label" = "Upgrading local data";
+"migration-update-progress-count-label" = "Migrating Article $1 of $2";
+
"image-gallery-unknown-owner" = "Uploader unknown.";
diff --git a/wikipedia/es.lproj/Localizable.strings
b/wikipedia/es.lproj/Localizable.strings
index 2417646..c562107 100644
--- a/wikipedia/es.lproj/Localizable.strings
+++ b/wikipedia/es.lproj/Localizable.strings
@@ -253,11 +253,11 @@
"nearby-location-updates-settings-menu" = "Privacidad > Servicios de
localización > Wikipedia";
"nearby-location-general-error" = "No se puede determinar la ubicación. Tira
para actualizar o inténtalo más tarde.";
"nearby-wifi" = "Activar wifi puede ayudar a que tu dispositivo determine
mejor tu ubicación.";
-"update-progress-label" = "Actualización de datos locales";
"image-gallery-unknown-owner" = "Cargador desconocido.";
"hockeyapp-alert-question" = "¿Te gustaría enviar un informe a $1 para que
Wikimedia pueda revisar tu fallo?";
"hockeyapp-alert-question-with-response-field" = "¿Te gustaría enviar un
informe a $1 para que Wikimedia pueda revisar tu fallo? Describe lo que pasó en
el momento del fallo:";
"hockeyapp-alert-title" = "La aplicación falló la última vez";
+"migration-update-progress-label" = "Actualización de datos locales";
"hockeyapp-alert-send-report" = "Enviar informe";
"hockeyapp-alert-always-send" = "Enviar siempre";
"hockeyapp-alert-do-not-send" = "No enviar";
diff --git a/wikipedia/fi.lproj/Localizable.strings
b/wikipedia/fi.lproj/Localizable.strings
index fc84ffb..7f10bbc 100644
--- a/wikipedia/fi.lproj/Localizable.strings
+++ b/wikipedia/fi.lproj/Localizable.strings
@@ -249,6 +249,6 @@
"nearby-location-updates-settings-menu" = "Yksityisyys > Sijaintipalvelut >
Wikipedia";
"nearby-location-general-error" = "Sijainnin määritys ei onnistu. Vedä
päivittääksesi tai yritä uudelleen myöhemmin.";
"nearby-wifi" = "Langattoman verkkoyhteyden käyttöönotto voi auttaa laitettasi
määrittämään sijaintisi paremmin.";
-"update-progress-label" = "Päivitetään paikallisia tietoja";
"hockeyapp-alert-always-send" = "Lähetä aina";
"hockeyapp-alert-do-not-send" = "Älä lähetä";
+"migration-update-progress-label" = "Päivitetään paikallisia tietoja";
diff --git a/wikipedia/fr.lproj/Localizable.strings
b/wikipedia/fr.lproj/Localizable.strings
index 58f2935..acbd21a 100644
--- a/wikipedia/fr.lproj/Localizable.strings
+++ b/wikipedia/fr.lproj/Localizable.strings
@@ -254,7 +254,7 @@
"nearby-location-updates-settings-menu" = "Confidentialité > Services
d’emplacement > Wikipédia";
"nearby-location-general-error" = "Impossible de déterminer l’emplacement.
Tirer pour rafraîchir ou réessayer ultérieurement.";
"nearby-wifi" = "L’activation du wifi peut aider votre appareil à mieux
déterminer votre emplacement.";
-"update-progress-label" = "Mise à jour des données locales";
+"migration-update-progress-label" = "Mise à jour des données locales";
"image-gallery-unknown-owner" = "Téléchargeur inconnu.";
"hockeyapp-alert-question" = "Voulez-vous envoyer un rapport de plantage à $1
pour que Wikipédia puisse l’étudier ?";
"hockeyapp-alert-question-with-response-field" = "Voulez-vous envoyer un
rapport de plantage à $1 pour que Wikipédia puisse l’étudier ? Veuillez décrire
ce qui s’est produit lorsque le plantage s’est produit :";
diff --git a/wikipedia/he.lproj/Localizable.strings
b/wikipedia/he.lproj/Localizable.strings
index 3bc95d0..34ab147 100644
--- a/wikipedia/he.lproj/Localizable.strings
+++ b/wikipedia/he.lproj/Localizable.strings
@@ -250,7 +250,7 @@
"nearby-location-updates-settings-menu" = "פרטיות > שירותי מיקום > ויקיפדיה";
"nearby-location-general-error" = "לא ניתן להבין מה המיקום. נא למשוך לרענון או
לנסות מאוחר יותר.";
"nearby-wifi" = "הפעלת וייפיי יכולה לעזור למכשיר שלך להבין את המיקום טוב
יותר.";
-"update-progress-label" = "שדרוג נתונים מקומיים";
+"migration-update-progress-label" = "שדרוג נתונים מקומיים";
"image-gallery-unknown-owner" = "המעלֶה אינו ידוע.";
"hockeyapp-alert-question" = "האם לשלוח דיווח קריסה אל $1 כדי שוויקימדיה תוכל
לתקן את הקריסה שלך?";
"hockeyapp-alert-question-with-response-field" = "האם לשלוח דיווח קריסה אל $1
כדי שוויקימדיה תוכל לבדוק את הקריסה שלך? נא לתאר מה קרה בזמן שאירעה הקריסה:";
diff --git a/wikipedia/id.lproj/Localizable.strings
b/wikipedia/id.lproj/Localizable.strings
index 3a07de2..b3963ef 100644
--- a/wikipedia/id.lproj/Localizable.strings
+++ b/wikipedia/id.lproj/Localizable.strings
@@ -254,5 +254,5 @@
"nearby-location-updates-settings-menu" = "Privasi > Layanan Lokasi >
Wikipedia";
"nearby-location-general-error" = "Tidak dapat menentukan lokasi. Tarik untuk
menyegarkan atau coba lagi nanti.";
"nearby-wifi" = "Mengaktifkan Wi-Fi dapat membantu perangkat Anda menentukan
lokasi Anda lebih baik.";
-"update-progress-label" = "Meningkatkan data lokal";
+"migration-update-progress-label" = "Meningkatkan data lokal";
"image-gallery-unknown-owner" = "Pengunggah tidak diketahui.";
diff --git a/wikipedia/it.lproj/Localizable.strings
b/wikipedia/it.lproj/Localizable.strings
index c4cebff..9f337cc 100644
--- a/wikipedia/it.lproj/Localizable.strings
+++ b/wikipedia/it.lproj/Localizable.strings
@@ -256,11 +256,11 @@
"nearby-location-updates-settings-menu" = "Privacy > Localizzazione >
Wikipedia";
"nearby-location-general-error" = "Impossibile determinare la posizione. Tira
su per ricaricare o riprova più tardi.";
"nearby-wifi" = "Abilitando il WiFi, aiuti il dispositivo a determinar meglio
la tua posizione.";
-"update-progress-label" = "Aggiornamento di dati locali";
"image-gallery-unknown-owner" = "Uploader sconosciuto.";
"hockeyapp-alert-question" = "Desideri inviare una segnalazione di crash a $1
in modo che Wikimedia sia in grado di esaminare il crash?";
"hockeyapp-alert-question-with-response-field" = "Desideri inviare una
segnalazione di crash a $1 in modo che Wikimedia sia in grado di esaminare il
crash? Per favore descrivi ciò che è successo quando si è verificato il crash:";
"hockeyapp-alert-title" = "Siamo spiacenti, l'ultima volta l'app è andata in
stallo";
+"migration-update-progress-label" = "Aggiornamento di dati locali";
"hockeyapp-alert-send-report" = "Invia segnalazione";
"hockeyapp-alert-always-send" = "Invia sempre";
"hockeyapp-alert-do-not-send" = "Non inviare";
diff --git a/wikipedia/ja.lproj/Localizable.strings
b/wikipedia/ja.lproj/Localizable.strings
index d5804fe..b5ba77c 100644
--- a/wikipedia/ja.lproj/Localizable.strings
+++ b/wikipedia/ja.lproj/Localizable.strings
@@ -252,7 +252,7 @@
"nearby-location-updates-settings-menu" = "プライバシー > 位置情報サービス > ウィキペディア";
"nearby-location-general-error" = "位置を特定できません。引っ張って更新するか、後ほどもう一度試してみてください。";
"nearby-wifi" = "Wi-Fi を有効にすると、位置情報の精度をより高めることができます。";
-"update-progress-label" = "ローカルデータをアップグレード中";
+"migration-update-progress-label" = "ローカルデータをアップグレード中";
"image-gallery-unknown-owner" = "アップロード者不明。";
"hockeyapp-alert-question" = "クラッシュレポートを $1 に送信しますか?
そうすることであなたの前回のクラッシュをWikimediaがレビューできるようになります。";
"hockeyapp-alert-question-with-response-field" = "クラッシュレポートを $1 に送信しますか?
そうすることであなたの前回のクラッシュをWikimediaがレビューできるようになります。クラッシュが発生した際に何が起こったか記述してください。";
diff --git a/wikipedia/ko.lproj/Localizable.strings
b/wikipedia/ko.lproj/Localizable.strings
index 06e7be6..28486d0 100644
--- a/wikipedia/ko.lproj/Localizable.strings
+++ b/wikipedia/ko.lproj/Localizable.strings
@@ -249,5 +249,5 @@
"nearby-location-updates-settings-menu" = "개인 정보 보호 > 위치 서비스 > 위키백과";
"nearby-location-general-error" = "위치를 확정할 수 없습니다. 새로 고치려면 당기거나 나중에 다시 시도하세요.";
"nearby-wifi" = "Wi-Fi를 활성화하면 장치가 위치를 더 정확하도록 도울 수 있습니다.";
-"update-progress-label" = "로컬 데이터 업그레이드";
+"migration-update-progress-label" = "로컬 데이터 업그레이드";
"image-gallery-unknown-owner" = "업로더 모름";
diff --git a/wikipedia/lb.lproj/Localizable.strings
b/wikipedia/lb.lproj/Localizable.strings
index 6db61fc..51fcd84 100644
--- a/wikipedia/lb.lproj/Localizable.strings
+++ b/wikipedia/lb.lproj/Localizable.strings
@@ -232,7 +232,7 @@
"nearby-location-updates-denied" = "Dës App huet net d'Recht fir
Aktualisatiounen iwwer d'Plaz wou e grad ass ze kréien.";
"nearby-location-general-error" = "D'Plaz wou Dir sidd konnt net festgestallt
ginn. Dréckt fir z'aktualiséieren oder probéiert méi spéit nach eng Kéier.";
"nearby-wifi" = "D'Aschalte vum Wifi kann Ärem Apparat hëllefen d'Plaz wou Dir
sidd besser festzeleeën.";
-"update-progress-label" = "Aktualiséiere vu lokalen Donnéeën";
+"migration-update-progress-label" = "Aktualiséiere vu lokalen Donnéeën";
"image-gallery-unknown-owner" = "Eroplueder onbekannt.";
"hockeyapp-alert-question" = "Wëllt Dir e Rapport vum Crash u $1 schécken fir
datt Wikimedia Äre Crash ënnersiche kann?";
"hockeyapp-alert-title" = "Leider ass d'App déi leschte Kéier ofgestierzt";
diff --git a/wikipedia/mk.lproj/Localizable.strings
b/wikipedia/mk.lproj/Localizable.strings
index 0efbaad..66e70c8 100644
--- a/wikipedia/mk.lproj/Localizable.strings
+++ b/wikipedia/mk.lproj/Localizable.strings
@@ -248,7 +248,7 @@
"nearby-location-updates-settings-menu" = "Приватност > Местоположбени услуги
> Википедија";
"nearby-location-general-error" = "Не можам да ја утврдам местоположбата.
Повлечете за да превчитате или обидете се повторно.";
"nearby-wifi" = "Ако ја вклучите безжичната линија (Wi-Fi), уредот ќе може
подобро да ја утврди вашата местоположба.";
-"update-progress-label" = "Надградба на месните податоци";
+"migration-update-progress-label" = "Надградба на месните податоци";
"image-gallery-unknown-owner" = "Подигачот е непознат";
"hockeyapp-alert-question" = "Дали би сакале да испратите пријава за уривање
на $1 за Викимедија да ви го разгледа проблемот?";
"hockeyapp-alert-question-with-response-field" = "Дали би сакале да испратите
пријава за уривање на $1 за Викимедија да ви го арзгледа проблемот? Опишете што
се случи кога настана уривањето:";
diff --git a/wikipedia/ms.lproj/Localizable.strings
b/wikipedia/ms.lproj/Localizable.strings
index 5908ed1..f77f0be 100644
--- a/wikipedia/ms.lproj/Localizable.strings
+++ b/wikipedia/ms.lproj/Localizable.strings
@@ -234,4 +234,4 @@
"nearby-location-updates-settings-menu" = "Privasi > Perkhidmatan Lokasi >
Wikipedia\n(Privacy > Location Services > Wikipedia)";
"nearby-location-general-error" = "Lokasi tidak dapat ditentukan. Sila tarik
untuk muat semula atau cuba lagi nanti.";
"nearby-wifi" = "Memasang Wi-Fi boleh membantu peranti anda menentukan lokasi
anda dengan lebih baik.";
-"update-progress-label" = "Menaiktaraf data setempat";
+"migration-update-progress-label" = "Menaiktaraf data setempat";
diff --git a/wikipedia/nl.lproj/Localizable.strings
b/wikipedia/nl.lproj/Localizable.strings
index a1bd9f3..11dc693 100644
--- a/wikipedia/nl.lproj/Localizable.strings
+++ b/wikipedia/nl.lproj/Localizable.strings
@@ -249,4 +249,4 @@
"nearby-location-updates-settings-menu" = "Privacy > Locatievoorzieningen >
Wikipedia";
"nearby-location-general-error" = "Kan locatie niet bepalen. Trek naar beneden
om bij te werken of probeer het later opnieuw.";
"nearby-wifi" = "Het inschakelen van Wi-Fi zorgt voor een nauwkeuriger
locatie.";
-"update-progress-label" = "Lokale gegevens bijwerken";
+"migration-update-progress-label" = "Lokale gegevens bijwerken";
diff --git a/wikipedia/pt-br.lproj/Localizable.strings
b/wikipedia/pt-br.lproj/Localizable.strings
index db52024..e5b5b50 100644
--- a/wikipedia/pt-br.lproj/Localizable.strings
+++ b/wikipedia/pt-br.lproj/Localizable.strings
@@ -252,4 +252,4 @@
"nearby-location-updates-settings-menu" = "Privacidade > Serviços de
localização > Wikipédia";
"nearby-location-general-error" = "Não foi possível determinar a localização.
Puxe para atualizar ou tente novamente mais tarde.";
"nearby-wifi" = "Ativar o WiFi pode ajudar o seu dispositivo a determinar a
sua localização.";
-"update-progress-label" = "Atualizando dados locais";
+"migration-update-progress-label" = "Atualizando dados locais";
diff --git a/wikipedia/pt.lproj/Localizable.strings
b/wikipedia/pt.lproj/Localizable.strings
index 8ae96d6..96d9855 100644
--- a/wikipedia/pt.lproj/Localizable.strings
+++ b/wikipedia/pt.lproj/Localizable.strings
@@ -251,7 +251,7 @@
"nearby-location-updates-settings-menu" = "Privacidade > Serviços de
localização > Wikipédia";
"nearby-location-general-error" = "Não foi possível determinar a localização.
Puxe para atualizar ou tente novamente mais tarde.";
"nearby-wifi" = "Ativar o WiFi pode ajudar o seu dispositivo a determinar a
sua localização.";
-"update-progress-label" = "A atualizar dados locais";
+"migration-update-progress-label" = "A atualizar dados locais";
"image-gallery-unknown-owner" = "Autor desconhecido.";
// Fuzzy
"hockeyapp-alert-question" = "Deseja enviar um relatório da falha de $1 para
que possamos resolver o problema?";
diff --git a/wikipedia/qqq.lproj/Localizable.strings
b/wikipedia/qqq.lproj/Localizable.strings
index ae05b8c..730147a 100644
--- a/wikipedia/qqq.lproj/Localizable.strings
+++ b/wikipedia/qqq.lproj/Localizable.strings
@@ -254,7 +254,8 @@
"nearby-location-updates-settings-menu" = "Menu items to tap in the iOS
Settings App to enable the Wikipedia App to get location updates. Please check
on an iOS device to ensure correct menu text.";
"nearby-location-general-error" = "General location determination error
message";
"nearby-wifi" = "Alert text telling user how to improve location accuracy";
-"update-progress-label" = "Label shown during automatic upgrade of local data
to new internal format. May be on screen very briefly or for a few seconds.";
+"migration-update-progress-label" = "Label shown during automatic upgrade of
local data to new internal format. May be on screen very briefly or for a few
seconds.";
+"migration-update-progress-count-label" = "Shows the progress of article
migration in text: 4 / 15, 5 / 15, etc…";
"image-gallery-unknown-owner" = "Fallback text for when an item in the image
gallery doesn't have a specified owner.";
"hockeyapp-alert-question" = "Alert dialog question asking user whether to
send a crash report to HockeyApp crash reporting server. $1 will be replaced
programmatically with the constant string 'HockeyApp'";
"hockeyapp-alert-question-with-response-field" = "Alert dialog question asking
user whether to send a crash report to HockeyApp crash reporting server, and
asking the user to describe what happened when the crash occurred. $1 will be
replaced programmatically with the constant string 'HockeyApp'";
diff --git a/wikipedia/ro.lproj/Localizable.strings
b/wikipedia/ro.lproj/Localizable.strings
index c6dd8be..38d76fb 100644
--- a/wikipedia/ro.lproj/Localizable.strings
+++ b/wikipedia/ro.lproj/Localizable.strings
@@ -246,7 +246,7 @@
"nearby-location-updates-settings-menu" = "Intimitate > Servicii de localizare
> Wikipedia";
"nearby-location-general-error" = "Nu s-a putut efectua localizarea. Trageți
pentru a reîmprospăta sau reîncercați mai târziu.";
"nearby-wifi" = "Activarea conexiunii WiFi poate ajuta dispozitivul
dumnevoastră să vă localizeze mai precis.";
-"update-progress-label" = "Se face upgrade datelor locale";
+"migration-update-progress-label" = "Se face upgrade datelor locale";
"image-gallery-unknown-owner" = "Încărcare de la o persoană necunoscută.";
"hockeyapp-alert-question" = "Ați dori să trimiteți un raport de blocare a
aplicației către $1, astfel încât Wikimedia să studieze problema?";
"hockeyapp-alert-question-with-response-field" = "Ați dori să trimiteți un
raport de blocare a aplicației către $1, astfel încât Wikimedia să studieze
problema? Vă rugăm să descrieți împrejurarea în care s-a produs blocarea:";
diff --git a/wikipedia/ru.lproj/Localizable.strings
b/wikipedia/ru.lproj/Localizable.strings
index 598dee5..110ebdd 100644
--- a/wikipedia/ru.lproj/Localizable.strings
+++ b/wikipedia/ru.lproj/Localizable.strings
@@ -253,7 +253,7 @@
"nearby-location-updates-settings-menu" = "Приватность > Службы геолокации >
Википедия";
"nearby-location-general-error" = "Не удаётся определить местоположение.
Потяните, чтобы обновить или повторите попытку позже.";
"nearby-wifi" = "Включение Wi-Fi может помочь устройству лучше определить ваше
местоположение.";
-"update-progress-label" = "Обновление локальных данных";
+"migration-update-progress-label" = "Обновление локальных данных";
"image-gallery-unknown-owner" = "Загрузивший файл неизвестен.";
"hockeyapp-alert-question" = "Не хотели бы вы отправить отчет в $1, чтобы Фонд
Викимедиа смог изучить ваш случай «падения»?";
"hockeyapp-alert-question-with-response-field" = "Не хотели бы вы отправить
отчет в $1, чтобы Фонд Викимедиа смог изучить ваш случай «падения»? Пожалуйста,
опишите, что могло привести к этому:";
diff --git a/wikipedia/sv.lproj/Localizable.strings
b/wikipedia/sv.lproj/Localizable.strings
index 8ab7dbe..b5308af 100644
--- a/wikipedia/sv.lproj/Localizable.strings
+++ b/wikipedia/sv.lproj/Localizable.strings
@@ -255,7 +255,7 @@
"nearby-location-updates-settings-menu" = "Sekretess > Platstjänster >
Wikipedia";
"nearby-location-general-error" = "Det gick inte att bestämma plats. Dra för
att uppdatera eller försök igen senare.";
"nearby-wifi" = "Att aktivera wifi kan hjälpa din enhet att bättre avgöra din
position.";
-"update-progress-label" = "Uppgraderar lokal data";
+"migration-update-progress-label" = "Uppgraderar lokal data";
"image-gallery-unknown-owner" = "Okänd uppladdare.";
"hockeyapp-alert-question" = "Vill du skicka en kraschrapport till $1 så kan
Wikimedia kan undersöka din krasch?";
"hockeyapp-alert-question-with-response-field" = "Vill du skicka en
kraschrapport till $1 så att Wikimedia undersöka din krasch? Beskriv vad som
hände när kraschen inträffade:";
diff --git a/wikipedia/tr.lproj/Localizable.strings
b/wikipedia/tr.lproj/Localizable.strings
index c1208d8..a06b8eb 100644
--- a/wikipedia/tr.lproj/Localizable.strings
+++ b/wikipedia/tr.lproj/Localizable.strings
@@ -252,7 +252,7 @@
"nearby-location-updates-settings-menu" = "Gizlilik > Konum Servisleri >
Wikipedia";
"nearby-location-general-error" = "Konum belirlenemiyor. Yenilemek için aşağı
çekin veya daha sonra tekrar deneyin.";
"nearby-wifi" = "Kablosuz bağlantıyı etkinleştirmek, cihazınızın konumunuzu
daha iyi belirlemesine yardımcı olabilir.";
-"update-progress-label" = "Yerel veri güncelleniyor";
+"migration-update-progress-label" = "Yerel veri güncelleniyor";
"image-gallery-unknown-owner" = "Yükleyen bilinmiyor.";
"hockeyapp-alert-question" = "Oluşan hatayı Wikimedia'nın inceleyebilmesi için
$1'e çökme raporu göndermek ister misiniz?";
"hockeyapp-alert-question-with-response-field" = "Oluşan hatayı Wikimedia'nın
inceleyebilmesi için $1'e çökme raporu göndermek ister misiniz? Lütfen çökme
gerçekleştiği sırada ne olduğunu tanımlayabilir misiniz:";
diff --git a/wikipedia/vi.lproj/Localizable.strings
b/wikipedia/vi.lproj/Localizable.strings
index 1831a30..7554da4 100644
--- a/wikipedia/vi.lproj/Localizable.strings
+++ b/wikipedia/vi.lproj/Localizable.strings
@@ -249,7 +249,7 @@
"nearby-location-updates-settings-menu" = "Bảo mật > Địa điểm > Wikipedia";
"nearby-location-general-error" = "Không thể xác định vị trí. Kéo xuống để làm
mới hoặc thử lại sau.";
"nearby-wifi" = "Bật lên Wi-Fi để giúp thiết bị của bạn xác định vị trí của
bạn một cách chính xác hơn.";
-"update-progress-label" = "Đang nâng cấp dữ liệu địa phương";
+"migration-update-progress-label" = "Đang nâng cấp dữ liệu địa phương";
"image-gallery-unknown-owner" = "Người tải lên không rõ.";
// Fuzzy
"hockeyapp-alert-question" = "Bạn có muốn gửi bản báo cáo sự cố cho $1 để giúp
chúng tôi sửa lỗi này?";
diff --git a/wikipedia/zh-hans.lproj/Localizable.strings
b/wikipedia/zh-hans.lproj/Localizable.strings
index 74f277f..425e13e 100644
--- a/wikipedia/zh-hans.lproj/Localizable.strings
+++ b/wikipedia/zh-hans.lproj/Localizable.strings
@@ -253,7 +253,7 @@
"nearby-location-updates-settings-menu" = "隐私 > 位置服务 > 维基百科";
"nearby-location-general-error" = "无法确定位置。下拉刷新或稍后重试。";
"nearby-wifi" = "启用Wi-Fi可使您的设备更好的确定您的位置。";
-"update-progress-label" = "升级本地数据";
+"migration-update-progress-label" = "升级本地数据";
"image-gallery-unknown-owner" = "上传者未知。";
"hockeyapp-alert-question" = "您想要将崩溃报告发送至$1,这样维基媒体可以复查您的崩溃么?";
"hockeyapp-alert-question-with-response-field" =
"您想要将崩溃报告发送至$1,这样维基媒体可以复查您的崩溃么?请描述崩溃发生时出现了什么现象:";
--
To view, visit https://gerrit.wikimedia.org/r/199299
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1297bb95e943749a28a99ba7488bd8d35acaf901
Gerrit-PatchSet: 1
Gerrit-Project: apps/ios/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Fjalapeno <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits