Mhurd has submitted this change and it was merged.
Change subject: Image data save cleanup
......................................................................
Image data save cleanup
* removed need for manual mime type filling
* added importImageData method on MWKImage for cleaner usage
Change-Id: I7774b6a7da7d118bb88b7b82d93e019ee0dcd4a1
---
M MediaWikiKit/MediaWikiKit/MWKArticle.h
M MediaWikiKit/MediaWikiKit/MWKArticle.m
M MediaWikiKit/MediaWikiKit/MWKDataStore.h
M MediaWikiKit/MediaWikiKit/MWKDataStore.m
M MediaWikiKit/MediaWikiKit/MWKImage.h
M MediaWikiKit/MediaWikiKit/MWKImage.m
M MediaWikiKit/MediaWikiKitTests/MWKImageStorageTests.m
M wikipedia/Networking/Fetchers/ArticleFetcher.m
M wikipedia/Web Image Interception/URLCache.m
9 files changed, 30 insertions(+), 12 deletions(-)
Approvals:
Mhurd: Verified; Looks good to me, approved
jenkins-bot: Verified
diff --git a/MediaWikiKit/MediaWikiKit/MWKArticle.h
b/MediaWikiKit/MediaWikiKit/MWKArticle.h
index 1bd68b6..8c4a641 100644
--- a/MediaWikiKit/MediaWikiKit/MWKArticle.h
+++ b/MediaWikiKit/MediaWikiKit/MWKArticle.h
@@ -70,7 +70,7 @@
* Import downloaded image data into our data store,
* and update the image object/record
*/
--(MWKImage *)importImageData:(NSData *)data image:(MWKImage *)image
mimeType:(NSString *)mimeType;
+-(MWKImage *)importImageData:(NSData *)data image:(MWKImage *)image;
-(void)save;
-(void)remove;
diff --git a/MediaWikiKit/MediaWikiKit/MWKArticle.m
b/MediaWikiKit/MediaWikiKit/MWKArticle.m
index f787e18..82a2812 100644
--- a/MediaWikiKit/MediaWikiKit/MWKArticle.m
+++ b/MediaWikiKit/MediaWikiKit/MWKArticle.m
@@ -145,9 +145,9 @@
* Import downloaded image data into our data store,
* and update the image object/record
*/
--(MWKImage *)importImageData:(NSData *)data image:(MWKImage *)image
mimeType:(NSString *)mimeType
+-(MWKImage *)importImageData:(NSData *)data image:(MWKImage *)image
{
- [self.dataStore saveImageData:data image:image mimeType:mimeType];
+ [self.dataStore saveImageData:data image:image];
return image;
}
diff --git a/MediaWikiKit/MediaWikiKit/MWKDataStore.h
b/MediaWikiKit/MediaWikiKit/MWKDataStore.h
index 93f6cd7..711de67 100644
--- a/MediaWikiKit/MediaWikiKit/MWKDataStore.h
+++ b/MediaWikiKit/MediaWikiKit/MWKDataStore.h
@@ -42,7 +42,7 @@
-(void)saveSection:(MWKSection *)section;
-(void)saveSectionText:(NSString *)html section:(MWKSection *)section;
-(void)saveImage:(MWKImage *)image;
--(void)saveImageData:(NSData *)data image:(MWKImage *)image mimeType:(NSString
*)mimeType;
+-(void)saveImageData:(NSData *)data image:(MWKImage *)image;
-(void)saveHistoryList:(MWKHistoryList *)list;
-(void)saveSavedPageList:(MWKSavedPageList *)list;
-(void)saveRecentSearchList:(MWKRecentSearchList *)list;
diff --git a/MediaWikiKit/MediaWikiKit/MWKDataStore.m
b/MediaWikiKit/MediaWikiKit/MWKDataStore.m
index b7306b9..05a8476 100644
--- a/MediaWikiKit/MediaWikiKit/MWKDataStore.m
+++ b/MediaWikiKit/MediaWikiKit/MWKDataStore.m
@@ -225,13 +225,13 @@
[self saveDictionary:export path:path name:@"Image.plist"];
}
--(void)saveImageData:(NSData *)data image:(MWKImage *)image mimeType:(NSString
*)mimeType
+-(void)saveImageData:(NSData *)data image:(MWKImage *)image
{
NSString *path = [self pathForImage:image];
NSString *filename = [@"Image"
stringByAppendingPathExtension:image.extension];
[self saveData:data path:path name:filename];
- [image updateWithData:data mimeType:mimeType];
+ [image updateWithData:data];
[self saveImage:image];
}
diff --git a/MediaWikiKit/MediaWikiKit/MWKImage.h
b/MediaWikiKit/MediaWikiKit/MWKImage.h
index 0b56e3a..cea0394 100644
--- a/MediaWikiKit/MediaWikiKit/MWKImage.h
+++ b/MediaWikiKit/MediaWikiKit/MWKImage.h
@@ -35,7 +35,10 @@
-(instancetype)initWithArticle:(MWKArticle *)article sourceURL:(NSString *)url;
-(instancetype)initWithArticle:(MWKArticle *)article dict:(NSDictionary *)dict;
--(void)updateWithData:(NSData *)data mimeType:(NSString *)mimeType;
+-(void)importImageData:(NSData *)data;
+
+// internal
+-(void)updateWithData:(NSData *)data;
-(void)updateLastAccessed;
-(void)save;
diff --git a/MediaWikiKit/MediaWikiKit/MWKImage.m
b/MediaWikiKit/MediaWikiKit/MWKImage.m
index 575f8ce..4b1dd7c 100644
--- a/MediaWikiKit/MediaWikiKit/MWKImage.m
+++ b/MediaWikiKit/MediaWikiKit/MWKImage.m
@@ -103,17 +103,32 @@
return [NSDictionary dictionaryWithDictionary:dict];
}
--(void)updateWithData:(NSData *)data mimeType:(NSString *)mimeType
+-(void)importImageData:(NSData *)data
+{
+ [self.article.dataStore saveImageData:data image:self];
+}
+
+-(void)updateWithData:(NSData *)data
{
_dateRetrieved = [[NSDate alloc] init];
_dateLastAccessed = [[NSDate alloc] init];
- _mimeType = [mimeType copy];
+ _mimeType = [self getImageMimeTypeForExtension:self.extension];
UIImage *img = [UIImage imageWithData:data scale:1.0];
_width = [NSNumber numberWithInt:img.size.width];
_height = [NSNumber numberWithInt:img.size.height];
}
+-(NSString *)getImageMimeTypeForExtension:(NSString *)extension
+{
+ NSString *lowerCaseSelf = [extension lowercaseString];
+ if ([lowerCaseSelf isEqualToString:@"jpg"]) return @"image/jpeg";
+ if ([lowerCaseSelf isEqualToString:@"jpeg"]) return @"image/jpeg";
+ if ([lowerCaseSelf isEqualToString:@"png"]) return @"image/png";
+ if ([lowerCaseSelf isEqualToString:@"gif"]) return @"image/gif";
+ return @"";
+}
+
-(void)updateLastAccessed
{
_dateLastAccessed = [[NSDate alloc] init];
diff --git a/MediaWikiKit/MediaWikiKitTests/MWKImageStorageTests.m
b/MediaWikiKit/MediaWikiKitTests/MWKImageStorageTests.m
index 18f0c79..ada816a 100644
--- a/MediaWikiKit/MediaWikiKitTests/MWKImageStorageTests.m
+++ b/MediaWikiKit/MediaWikiKitTests/MWKImageStorageTests.m
@@ -46,7 +46,7 @@
MWKImage *image = [self.article importImageURL:self.goldenGateImageURL
sectionId:0];
//MWKImage *image = [self.articleStore
imageWithURL:self.goldenGateImageURL];
XCTAssertNotNil(image);
- XCTAssertNoThrow([self.article importImageData:dataSample image:image
mimeType:@"image/jpeg"]);
+ XCTAssertNoThrow([self.article importImageData:dataSample image:image]);
NSData *dataFromStorage = [self.article.dataStore
imageDataWithImage:image];
diff --git a/wikipedia/Networking/Fetchers/ArticleFetcher.m
b/wikipedia/Networking/Fetchers/ArticleFetcher.m
index 615422e..b1c621b 100644
--- a/wikipedia/Networking/Fetchers/ArticleFetcher.m
+++ b/wikipedia/Networking/Fetchers/ArticleFetcher.m
@@ -387,7 +387,7 @@
if (!error) {
// Copy Search/Nearby thumb binary to core data store so
it doesn't have to be re-downloaded.
MWKImage *image = [self.article importImageURL:thumbURL
sectionId:MWK_SECTION_THUMBNAIL];
- [self.article importImageData:data image:image
mimeType:@"image"];
+ [self.article importImageData:data image:image];
foundThumbInTempDir = YES;
}
}
diff --git a/wikipedia/Web Image Interception/URLCache.m b/wikipedia/Web Image
Interception/URLCache.m
index 82d0d5d..afde536 100644
--- a/wikipedia/Web Image Interception/URLCache.m
+++ b/wikipedia/Web Image Interception/URLCache.m
@@ -109,7 +109,7 @@
// (This one has no thread safety issues.)
//imageDataToUse = self.debuggingPlaceHolderImageData;
- [self.article importImageData:imageDataToUse image:image
mimeType:cachedResponse.response.MIMEType];
+ [self.article importImageData:imageDataToUse image:image];
// Broadcast the image data so things like the table of contents can update
// itself as images arrive.
--
To view, visit https://gerrit.wikimedia.org/r/181611
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I7774b6a7da7d118bb88b7b82d93e019ee0dcd4a1
Gerrit-PatchSet: 1
Gerrit-Project: apps/ios/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Mhurd <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits