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

Reply via email to