Putting missing text back in. Adding several try/catch statements to deal with possi... 16/5416/1 accepted/tizen/20130702.230808 submit/tizen/20130702.231722
authorbrianjjones <brian.j.jones@intel.com>
Tue, 2 Jul 2013 22:57:52 +0000 (15:57 -0700)
committerbrianjjones <brian.j.jones@intel.com>
Tue, 2 Jul 2013 22:58:41 +0000 (15:58 -0700)
Change-Id: I81f77072df6ac15ca378b9492b48f6e742f38713
Signed-off-by: brianjjones <brian.j.jones@intel.com>
js/main.js
packaging/MediaPlayer.changes

index 467f9c5..4d2adcb 100644 (file)
@@ -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("<li><a href='#'>"
-                                       "<canvas id=canvasNum" + i + " width=" + canvasW + " height=" + canvasH + "> </canvas>"
+                       $("#mediaListItems").append("<li><a href='#'>" +
+                                       "<canvas id=canvasNum" + i + " width=" + canvasW + " height=" + canvasH + "> </canvas>" +
                                        "</a></li>"
                        );
                }
                else
                {
-                       $("#mediaListItems").append("<li><a href='#' class='lightColor'>"
-                                       "<canvas id=canvasNum" + i + " width=" + canvasW + " height=" + canvasH + "> </canvas>"
+                       $("#mediaListItems").append("<li><a href='#' class='lightColor'>" +
+                                       "<canvas id=canvasNum" + i + " width=" + canvasW + " height=" + canvasH + "> </canvas>" +
                                        "</a></li>"
                        );
                }
@@ -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();
                }
index e314a04..4c07c8c 100644 (file)
@@ -1,3 +1,6 @@
+* Tue Jul 02 2013 brianjjones <brian.j.jones@intel.com> 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 <brian.j.jones@intel.com> submit/tizen/20130629.001025@76c119d
 - Adding a null check for artwork.  Various other sizing tweaks