From 9f6789a66c2764b38bbb93448fd3990f11cd85da Mon Sep 17 00:00:00 2001 From: brianjjones Date: Tue, 2 Jul 2013 15:57:52 -0700 Subject: [PATCH] Putting missing text back in. Adding several try/catch statements to deal with possible null arrays Change-Id: I81f77072df6ac15ca378b9492b48f6e742f38713 Signed-off-by: brianjjones --- js/main.js | 148 +++++++++++++++++++++++++++++------------- packaging/MediaPlayer.changes | 3 + 2 files changed, 106 insertions(+), 45 deletions(-) diff --git a/js/main.js b/js/main.js index 467f9c5..4d2adcb 100644 --- a/js/main.js +++ b/js/main.js @@ -85,6 +85,8 @@ function loadImages(callback) } for (var src in audioContent) { + try + { audioContent[src].coverArt = new Image(); audioContent[src].coverArt.onload = function(){ @@ -99,6 +101,11 @@ function loadImages(callback) }; audioContent[src].coverArt.src = (audioContent[src].coverArtURI !== undefined && audioContent[src].coverArtURI !== "") ? audioContent[src].coverArtURI : "images/musicButton.png"; + } + catch(err) + { + console.log("Failed to load audio cover image"); + } } } @@ -156,7 +163,8 @@ function updateMediaName(newArtist, newTitle, newCover) function fillMediaList(contentList) { - if (!imagesLoaded) + //Don't try and fill an empty content list or an audio list that hasn't finished loading the thumbnails + if (contentList.length <=0 || (contentList === audioContent && !imagesLoaded)) return false; var iconURI; @@ -171,15 +179,15 @@ function fillMediaList(contentList) { if (!lightColor) { - $("#mediaListItems").append("
  • " - " " + $("#mediaListItems").append("
  • " + + " " + "
  • " ); } else { - $("#mediaListItems").append("
  • " - " " + $("#mediaListItems").append("
  • " + + " " + "
  • " ); } @@ -196,21 +204,45 @@ function fillMediaList(contentList) switch (currentPlayerType) { case "AUDIO": - updateMediaName(audioContent[listIndex].artists[0], audioContent[listIndex].title, audioContent[listIndex].coverArt); - $("#audioSrc").attr("src", audioContent[listIndex].contentURI); - audioPlayer.load(); + try + { + updateMediaName(audioContent[listIndex].artists[0], audioContent[listIndex].title, audioContent[listIndex].coverArt); + $("#audioSrc").attr("src", audioContent[listIndex].contentURI); + audioPlayer.load(); + } + catch(err) + { + console.log("updateMediaName error: " + err.message); + } break; + case "VIDEO": - updateMediaName(videoContent[listIndex].artists[0], audioContent[listIndex].title, vidIcon); - $("#videoSrc").attr("src", videoContent[listIndex].contentURI); - videoPlayer.load(); - $("#mediaList").fadeOut(300); + try + { + updateMediaName(videoContent[listIndex].artists[0], audioContent[listIndex].title, vidIcon); + $("#videoSrc").attr("src", videoContent[listIndex].contentURI); + videoPlayer.load(); + $("#mediaList").fadeOut(300); + } + catch(err) + { + console.log("updateMediaName error: " + err.message); + } break; + case "IMAGE": - $("#imagePlayer").css("background", "url(" + imageContent[listIndex].contentURI + ") no-repeat center"); - $("#imagePlayer").css("background-size", "contain"); - $("#mediaList").fadeOut(300); + try + { + $("#imagePlayer").css("background", "url(" + imageContent[listIndex].contentURI + ") no-repeat center"); + $("#imagePlayer").css("background-size", "contain"); + $("#mediaList").fadeOut(300); + } + catch(err) + { + console.log("updateMediaName error: " + err.message); + } break; + default: break; } @@ -235,6 +267,7 @@ function fillMediaList(contentList) var artistText = new TextObject(currentCTX,{"text" : contentList[i].title, "xLoc" : canvasH + 20, "yLoc" : canvasH / 2.5 , "zLoc" : 0}); var trackText = new TextObject(currentCTX,{"text" : " ", "xLoc" : canvasH + 20, "yLoc" : canvasH / 1.1 , "zLoc" : 0}); break; + default: break; } @@ -260,7 +293,7 @@ function onContentItemArraySuccess(content) var emptyContent = true; if (!content || content === undefined || content.length <= 0) - console.log("Invalid content"); + console.log("Invalid content for " + contentType); else { emptyContent = false; @@ -269,24 +302,35 @@ function onContentItemArraySuccess(content) switch (contentType) { case "AUDIO": - if (!emptyContent) - { - audioContent = content; - sortByAlpha(audioContent); - $("#audioSrc").attr("src", audioContent[0].contentURI); - - var imgSources = []; - for (var i=0; i < audioContent.length; i++) + if (!emptyContent) { - var iconURI = (audioContent[i].thumbnailURIs !== undefined && audioContent[i].thumbnailURIs !== null) ? audioContent[i].thumbnailURIs[0] : "images/musicButton.png"; - audioContent[i].coverArtURI = iconURI; + try + { + audioContent = content; + sortByAlpha(audioContent); + + $("#audioSrc").attr("src", audioContent[0].contentURI); + + var imgSources = []; + for (var i = 0; i < audioContent.length; i++) + { + var iconURI = (audioContent[i].thumbnailURIs !== undefined && audioContent[i].thumbnailURIs !== null) ? audioContent[i].thumbnailURIs[0] : "images/musicButton.png"; + audioContent[i].coverArtURI = iconURI; + } + + loadImages(fillMediaList); + } + + catch (err) + { + console.log("Error when parsing audioContent"); + } } - loadImages(fillMediaList); - } contentType = "VIDEO"; break; + case "VIDEO": if (!emptyContent) { @@ -295,6 +339,7 @@ function onContentItemArraySuccess(content) } contentType = "IMAGE"; break; + case "IMAGE": if (!emptyContent) { @@ -304,6 +349,7 @@ function onContentItemArraySuccess(content) } contentType = undefined; break; + default: console.log("Undefined content search type"); nextContentType = undefined; @@ -330,10 +376,19 @@ function showMediaMenu() { case "AUDIO": //show audio player - updateMediaName(audioContent[listIndex].artists[0], audioContent[listIndex].title, audioContent[listIndex].coverArt); + try + { + updateMediaName(audioContent[listIndex].artists[0], audioContent[listIndex].title, audioContent[listIndex].coverArt); + } + catch(err) + { + console.log("updateMediaName failed for showMediaMenu (audio) : " + err.message); + } + $("#mediaName").fadeIn(800); $(".sortButton").fadeIn(800); currentPlayer.fadeIn(800); + $("#mediaList").addClass("mediaListAudioList"); if (screenOrientation === "landscape" ) @@ -343,16 +398,19 @@ function showMediaMenu() $("#mediaList").fadeIn(800); break; + case "VIDEO": //show video setTimeout(function(){currentPlayer.show()}, 800); //The video element can't be faded, so wait a moment before showing break; + case "IMAGE": //show image currentPlayer.fadeIn(800); break; - default:0 - console.log("Invalid player type"); + + default: + console.log("Invalid player type"); break; } } @@ -401,24 +459,26 @@ function changeMenu(menuButtonId) { case ("mainMusicButton"): currentPlayer = $("#audioPlayer"); - currentPlayerControls = document.getElementById("audioPlayer"); - currentPlayerType = "AUDIO"; - currentContent = audioContent; - showMediaMenu(); + currentPlayerControls = document.getElementById("audioPlayer"); + currentPlayerType = "AUDIO"; + currentContent = audioContent; + showMediaMenu(); break; + case ("mainVideoButton"): currentPlayer = $("#videoPlayer"); - currentPlayerControls = document.getElementById("videoPlayer"); - currentPlayerType = "VIDEO"; - currentContent = videoContent; - showMediaMenu(); + currentPlayerControls = document.getElementById("videoPlayer"); + currentPlayerType = "VIDEO"; + currentContent = videoContent; + showMediaMenu(); break; + case ("mainImageButton"): currentPlayer = $("#imagePlayer"); - currentPlayerControls = imageControls; - currentPlayerType = "IMAGE"; - currentContent = imageContent; - showMediaMenu(); + currentPlayerControls = imageControls; + currentPlayerType = "IMAGE"; + currentContent = imageContent; + showMediaMenu(); break; default: console.log("Error: No menu by that name"); @@ -598,7 +658,6 @@ function nextButtonClick() audioPlayer.pause(); $("#playButton").attr("src","images/playButton.png"); - $("#audioSrc").attr("src", audioContent[listIndex].contentURI); updateMediaName(audioContent[listIndex].artists[0], audioContent[listIndex].title, audioContent[listIndex].coverArt); audioPlayer.load(); @@ -615,7 +674,6 @@ function nextButtonClick() videoPlayer.pause(); $("#playButton").attr("src","images/playButton.png"); - $("#videoSrc").attr("src", videoContent[videoIndex].contentURI); videoPlayer.load(); } diff --git a/packaging/MediaPlayer.changes b/packaging/MediaPlayer.changes index e314a04..4c07c8c 100644 --- a/packaging/MediaPlayer.changes +++ b/packaging/MediaPlayer.changes @@ -1,3 +1,6 @@ +* Tue Jul 02 2013 brianjjones submit/tizen/20130701.233523@c4d3618 +- Putting missing text back in. Adding several try/catch statements to deal with possible null arrays + * Mon Jul 01 2013 brianjjones submit/tizen/20130629.001025@76c119d - Adding a null check for artwork. Various other sizing tweaks -- 2.7.4