From f4cce905f23c90da3230b063b2c965bf61a57f9a Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Wed, 12 Aug 2015 16:15:56 +0800 Subject: [PATCH 01/18] Also check Library for relative paths --- src/ios/RemoteControls.m | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index 5c9f5e3..34f8872 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -48,11 +48,19 @@ - (void)updateMetas:(CDVInvokedUrlCommand*)command } // cover is relative path to local file else { + //check the documents directory NSString *basePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *fullPath = [NSString stringWithFormat:@"%@%@", basePath, cover]; BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:fullPath]; + //check the library directory + NSString *basePath2 = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0]; + NSString *fullPath2 = [NSString stringWithFormat:@"%@%@", basePath2, cover]; + BOOL fileExists2 = [[NSFileManager defaultManager] fileExistsAtPath:fullPath2]; + //evaluate if either are true if (fileExists) { image = [UIImage imageNamed:fullPath]; + } else if (fileExists2) { + image = [UIImage imageNamed:fullPath]; } } } From ef16ff75526682f40c88fa695c643657a2cf7c48 Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Wed, 12 Aug 2015 16:19:04 +0800 Subject: [PATCH 02/18] some logging --- src/ios/RemoteControls.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index 34f8872..d7f59ae 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -59,14 +59,17 @@ - (void)updateMetas:(CDVInvokedUrlCommand*)command //evaluate if either are true if (fileExists) { image = [UIImage imageNamed:fullPath]; + NSLog(@"Found image in documents"); } else if (fileExists2) { image = [UIImage imageNamed:fullPath]; + NSLog(@"Found image in library"); } } } else { // default named "no-image" image = [UIImage imageNamed:@"no-image"]; + NSLog(@"No valid image found"); } // check whether image is loaded CGImageRef cgref = [image CGImage]; From efd37f31373d7f9eba7404d82667421c76248186 Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Wed, 12 Aug 2015 16:55:02 +0800 Subject: [PATCH 03/18] fix wrong variable used --- src/ios/RemoteControls.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index d7f59ae..4e5898d 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -61,7 +61,7 @@ - (void)updateMetas:(CDVInvokedUrlCommand*)command image = [UIImage imageNamed:fullPath]; NSLog(@"Found image in documents"); } else if (fileExists2) { - image = [UIImage imageNamed:fullPath]; + image = [UIImage imageNamed:fullPath2]; NSLog(@"Found image in library"); } } From 39452254ecde4d82cbd7c61f08510f59e19685b2 Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Wed, 12 Aug 2015 17:01:40 +0800 Subject: [PATCH 04/18] update docs update docs to cover files stored in relative path to library as well as documents --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 150f884..01cab32 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ function onDeviceReady() { artist = "Daft Punk"; title = "One More Time"; album = "Discovery"; - image = "path_within_documents_storage OR url_starting_with_http_or_https"; + image = "path_within_documents_storage OR path_within_library_storage OR url_starting_with_http_or_https"; duration = my_media.getDuration(); elapsedTime = my_media.getElapsedTime(); From e0a1316dd5f2a294809e8df651f3d69b519efe0e Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Thu, 3 Mar 2016 19:10:00 +0800 Subject: [PATCH 05/18] fix for iOS platform 4+ --- plugin.xml | 2 +- src/ios/RemoteControls.m | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/plugin.xml b/plugin.xml index 9b5817e..a865541 100644 --- a/plugin.xml +++ b/plugin.xml @@ -1,7 +1,7 @@ + version="1.0.1"> diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index 4e5898d..2d1a949 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -137,7 +137,14 @@ - (void)receiveRemoteEvent:(UIEvent *)receivedEvent { NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options: 0 error: nil]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSString *jsStatement = [NSString stringWithFormat:@"if(window.remoteControls)remoteControls.receiveRemoteEvent(%@);", jsonString]; - [self.webView stringByEvaluatingJavaScriptFromString:jsStatement]; + + if ([self.webView respondsToSelector:@selector(stringByEvaluatingJavaScriptFromString:)]) { + // Cordova-iOS pre-4 + [self.webView stringByEvaluatingJavaScriptFromString:jsStatement]; + } else { + // Cordova-iOS 4+ + [self.webView evaluateJavaScript:completionHandler:jsStatement]; + } } } From a43349948740513696310cb93b6b70327eaecad2 Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Thu, 3 Mar 2016 20:02:31 +0800 Subject: [PATCH 06/18] ios4.0 --- src/ios/RemoteControls.m | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index 2d1a949..fba881c 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -18,6 +18,16 @@ - (void)pluginInitialize NSLog(@"RemoteControls plugin init."); } +- (void)jsCallback: (NSString*)jsString + { + if ([self.webView isKindOfClass:[UIWebView class]]) { + [(UIWebView*)self.webView stringByEvaluatingJavaScriptFromString:jsString]; + }else if([self.webView isKindOfClass:[WKWebView class]]) { + [(WKWebView*)self.webView evaluateJavaScript:jsString completionHandler:nil]; + } + } + + - (void)updateMetas:(CDVInvokedUrlCommand*)command { NSString *artist = [command.arguments objectAtIndex:0]; @@ -137,15 +147,7 @@ - (void)receiveRemoteEvent:(UIEvent *)receivedEvent { NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options: 0 error: nil]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSString *jsStatement = [NSString stringWithFormat:@"if(window.remoteControls)remoteControls.receiveRemoteEvent(%@);", jsonString]; - - if ([self.webView respondsToSelector:@selector(stringByEvaluatingJavaScriptFromString:)]) { - // Cordova-iOS pre-4 - [self.webView stringByEvaluatingJavaScriptFromString:jsStatement]; - } else { - // Cordova-iOS 4+ - [self.webView evaluateJavaScript:completionHandler:jsStatement]; - } - + [self jsCallback:jsStatement]; } } From cbb7622af61ee1bb179b0c5a25db3bbf1c56280e Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Thu, 3 Mar 2016 20:15:42 +0800 Subject: [PATCH 07/18] update --- src/ios/RemoteControls.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ios/RemoteControls.h b/src/ios/RemoteControls.h index 53fd52b..a4bdba6 100644 --- a/src/ios/RemoteControls.h +++ b/src/ios/RemoteControls.h @@ -7,7 +7,9 @@ // MIT Licensed // +#import #import +#import #import #import #import From 04307098782f27459bbb5b1f4cb0e70a381a7842 Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 19:52:24 +0800 Subject: [PATCH 08/18] Revert "update" This reverts commit cbb7622af61ee1bb179b0c5a25db3bbf1c56280e. --- src/ios/RemoteControls.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ios/RemoteControls.h b/src/ios/RemoteControls.h index a4bdba6..53fd52b 100644 --- a/src/ios/RemoteControls.h +++ b/src/ios/RemoteControls.h @@ -7,9 +7,7 @@ // MIT Licensed // -#import #import -#import #import #import #import From 8fbe3772d16b0528ed15d7f42a7d4d7591783a5e Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 19:52:30 +0800 Subject: [PATCH 09/18] Revert "ios4.0" This reverts commit a43349948740513696310cb93b6b70327eaecad2. --- src/ios/RemoteControls.m | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index fba881c..2d1a949 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -18,16 +18,6 @@ - (void)pluginInitialize NSLog(@"RemoteControls plugin init."); } -- (void)jsCallback: (NSString*)jsString - { - if ([self.webView isKindOfClass:[UIWebView class]]) { - [(UIWebView*)self.webView stringByEvaluatingJavaScriptFromString:jsString]; - }else if([self.webView isKindOfClass:[WKWebView class]]) { - [(WKWebView*)self.webView evaluateJavaScript:jsString completionHandler:nil]; - } - } - - - (void)updateMetas:(CDVInvokedUrlCommand*)command { NSString *artist = [command.arguments objectAtIndex:0]; @@ -147,7 +137,15 @@ - (void)receiveRemoteEvent:(UIEvent *)receivedEvent { NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options: 0 error: nil]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSString *jsStatement = [NSString stringWithFormat:@"if(window.remoteControls)remoteControls.receiveRemoteEvent(%@);", jsonString]; - [self jsCallback:jsStatement]; + + if ([self.webView respondsToSelector:@selector(stringByEvaluatingJavaScriptFromString:)]) { + // Cordova-iOS pre-4 + [self.webView stringByEvaluatingJavaScriptFromString:jsStatement]; + } else { + // Cordova-iOS 4+ + [self.webView evaluateJavaScript:completionHandler:jsStatement]; + } + } } From 7b74b6aa34978709396364fb17301e1940fae4bc Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 20:05:35 +0800 Subject: [PATCH 10/18] ios4.0 --- src/ios/RemoteControls.m | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index 2d1a949..9ac6017 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -138,12 +138,13 @@ - (void)receiveRemoteEvent:(UIEvent *)receivedEvent { NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSString *jsStatement = [NSString stringWithFormat:@"if(window.remoteControls)remoteControls.receiveRemoteEvent(%@);", jsonString]; + if ([self.webView respondsToSelector:@selector(stringByEvaluatingJavaScriptFromString:)]) { // Cordova-iOS pre-4 - [self.webView stringByEvaluatingJavaScriptFromString:jsStatement]; + [self.webView performSelectorOnMainThread:@selector(stringByEvaluatingJavaScriptFromString:) withObject:jsStatement waitUntilDone:NO]; } else { // Cordova-iOS 4+ - [self.webView evaluateJavaScript:completionHandler:jsStatement]; + [self.webView performSelectorOnMainThread:@selector(evaluateJavaScript:completionHandler:) withObject:jsStatement waitUntilDone:NO]; } } From ffef334a91f1359b522214ffab951efc507b525c Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 20:24:36 +0800 Subject: [PATCH 11/18] testing --- src/ios/RemoteControls.m | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index 9ac6017..e63f1d1 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -150,6 +150,20 @@ - (void)receiveRemoteEvent:(UIEvent *)receivedEvent { } } +- (void)viewDidLoad { + [[RemoteControls remoteControls] setWebView:self.webView]; +} + +- (void)viewDidUnload +{ + // Turn off remote control event delivery + [[UIApplication sharedApplication] endReceivingRemoteControlEvents]; +} + +- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent { + [[RemoteControls remoteControls] receiveRemoteEvent:receivedEvent]; +} + +(RemoteControls *)remoteControls { //objects using shard instance are responsible for retain/release count From f96d6b686bdbe3ec4b9efcce075f6b63dc67fb1f Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 20:27:54 +0800 Subject: [PATCH 12/18] testing --- src/ios/RemoteControls.m | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index e63f1d1..8d10945 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -150,10 +150,6 @@ - (void)receiveRemoteEvent:(UIEvent *)receivedEvent { } } -- (void)viewDidLoad { - [[RemoteControls remoteControls] setWebView:self.webView]; -} - - (void)viewDidUnload { // Turn off remote control event delivery From bf05701e9ba7d6f9d240b1857bf368828eb421e7 Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 20:31:49 +0800 Subject: [PATCH 13/18] testing --- src/ios/RemoteControls.m | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index 8d10945..9ac6017 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -150,16 +150,6 @@ - (void)receiveRemoteEvent:(UIEvent *)receivedEvent { } } -- (void)viewDidUnload -{ - // Turn off remote control event delivery - [[UIApplication sharedApplication] endReceivingRemoteControlEvents]; -} - -- (void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent { - [[RemoteControls remoteControls] receiveRemoteEvent:receivedEvent]; -} - +(RemoteControls *)remoteControls { //objects using shard instance are responsible for retain/release count From 31be2e45a2f1d8057a1324f98be394494e0faca9 Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 21:19:58 +0800 Subject: [PATCH 14/18] logging --- www/RemoteControls.js | 1 + 1 file changed, 1 insertion(+) diff --git a/www/RemoteControls.js b/www/RemoteControls.js index 0ed7ba0..fbdbe85 100644 --- a/www/RemoteControls.js +++ b/www/RemoteControls.js @@ -23,6 +23,7 @@ remoteControls.updateMetas = function(success, fail, params) { remoteControls.receiveRemoteEvent = function(event) { var ev = document.createEvent('HTMLEvents'); + console.log("remote event JS "+event); ev.remoteEvent = event; ev.initEvent('remote-event', true, true, arguments); document.dispatchEvent(ev); From 622a14aa12a2128c7f348bf0bf570ca3ac2d6444 Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 21:33:36 +0800 Subject: [PATCH 15/18] testing --- src/ios/RemoteControls.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index 9ac6017..716817f 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -141,7 +141,7 @@ - (void)receiveRemoteEvent:(UIEvent *)receivedEvent { if ([self.webView respondsToSelector:@selector(stringByEvaluatingJavaScriptFromString:)]) { // Cordova-iOS pre-4 - [self.webView performSelectorOnMainThread:@selector(stringByEvaluatingJavaScriptFromString:) withObject:jsStatement waitUntilDone:NO]; + [self.webView performSelectorOnMainThread:@selector(stringByEvaluatingJavaScriptFromString:jsStatement) waitUntilDone:NO]; } else { // Cordova-iOS 4+ [self.webView performSelectorOnMainThread:@selector(evaluateJavaScript:completionHandler:) withObject:jsStatement waitUntilDone:NO]; From f41cdd2cab530af48ac971c0944b8b913df7311e Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 21:37:39 +0800 Subject: [PATCH 16/18] test --- src/ios/RemoteControls.m | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index 716817f..cdcf330 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -137,15 +137,7 @@ - (void)receiveRemoteEvent:(UIEvent *)receivedEvent { NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options: 0 error: nil]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSString *jsStatement = [NSString stringWithFormat:@"if(window.remoteControls)remoteControls.receiveRemoteEvent(%@);", jsonString]; - - - if ([self.webView respondsToSelector:@selector(stringByEvaluatingJavaScriptFromString:)]) { - // Cordova-iOS pre-4 - [self.webView performSelectorOnMainThread:@selector(stringByEvaluatingJavaScriptFromString:jsStatement) waitUntilDone:NO]; - } else { - // Cordova-iOS 4+ - [self.webView performSelectorOnMainThread:@selector(evaluateJavaScript:completionHandler:) withObject:jsStatement waitUntilDone:NO]; - } + [(UIWebView*)self.webView stringByEvaluatingJavaScriptFromString:jsStatement]; } } From 1411edfc928a11ea68b521ed4440591437b5e580 Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 21:49:19 +0800 Subject: [PATCH 17/18] revert --- src/ios/RemoteControls.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ios/RemoteControls.m b/src/ios/RemoteControls.m index cdcf330..4e5898d 100644 --- a/src/ios/RemoteControls.m +++ b/src/ios/RemoteControls.m @@ -137,7 +137,7 @@ - (void)receiveRemoteEvent:(UIEvent *)receivedEvent { NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options: 0 error: nil]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSString *jsStatement = [NSString stringWithFormat:@"if(window.remoteControls)remoteControls.receiveRemoteEvent(%@);", jsonString]; - [(UIWebView*)self.webView stringByEvaluatingJavaScriptFromString:jsStatement]; + [self.webView stringByEvaluatingJavaScriptFromString:jsStatement]; } } From 8ecee1cf9993bbe3b2e64622c24dc391f262bd56 Mon Sep 17 00:00:00 2001 From: ghenry22 Date: Fri, 4 Mar 2016 22:00:47 +0800 Subject: [PATCH 18/18] comment out logging --- www/RemoteControls.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/RemoteControls.js b/www/RemoteControls.js index fbdbe85..327e2a4 100644 --- a/www/RemoteControls.js +++ b/www/RemoteControls.js @@ -23,7 +23,7 @@ remoteControls.updateMetas = function(success, fail, params) { remoteControls.receiveRemoteEvent = function(event) { var ev = document.createEvent('HTMLEvents'); - console.log("remote event JS "+event); + //console.log("remote event JS "+event); ev.remoteEvent = event; ev.initEvent('remote-event', true, true, arguments); document.dispatchEvent(ev);