|
331 | 331 | else if not isValid(m.top.findNode("resumeLoadingButton")) |
332 | 332 | m.resumeLoadingButton = CreateObject("roSGNode", "IconButton") |
333 | 333 | m.resumeLoadingButton.id = "resumeLoadingButton" |
334 | | - m.resumeLoadingButton.icon = "pkg:/images/icons/resume.png" |
| 334 | + m.resumeLoadingButton.icon = "pkg:/images/icons/resume_$$RES$$.png" |
335 | 335 | if isValid(m.top.nextUpEpisode) and isValidAndNotEmpty(m.top.nextUpEpisode.id) |
336 | 336 | m.resumeLoadingButton.text = getResumeButtonText(m.top.nextUpEpisode) |
337 | 337 | else |
|
380 | 380 | if not isValid(m.top.findNode("trailerButton")) |
381 | 381 | trailerButton = CreateObject("roSGNode", "IconButton") |
382 | 382 | trailerButton.id = "trailerButton" |
383 | | - trailerButton.icon = "pkg:/images/icons/playOutline.png" |
| 383 | + trailerButton.icon = "pkg:/images/icons/playOutline_$$RES$$.png" |
384 | 384 | trailerButton.text = translate(translationKeys.LabelPlayTrailer) |
385 | 385 | ' Insert before Delete (if present) to match setupButtons() ordering, else before Refresh |
386 | 386 | deleteButtonIndex = getButtonIndex("deleteButton") |
|
416 | 416 | if not isValid(resumeButton) |
417 | 417 | resumeButton = CreateObject("roSGNode", "ResumeButton") |
418 | 418 | resumeButton.id = "resumeButton" |
419 | | - resumeButton.icon = "pkg:/images/icons/resume.png" |
| 419 | + resumeButton.icon = "pkg:/images/icons/resume_$$RES$$.png" |
420 | 420 | resumeButton.text = resumeText |
421 | 421 | resumeButton.playbackPositionTicks = item.playbackPositionTicks |
422 | 422 | resumeButton.runtimeTicks = item.runTimeTicks |
|
517 | 517 |
|
518 | 518 | resumeButton = CreateObject("roSGNode", "ResumeButton") |
519 | 519 | resumeButton.id = "resumeButton" |
520 | | - resumeButton.icon = "pkg:/images/icons/resume.png" |
| 520 | + resumeButton.icon = "pkg:/images/icons/resume_$$RES$$.png" |
521 | 521 | resumeButton.text = translate(translationKeys.ButtonResume) |
522 | 522 | resumeButton.playbackPositionTicks = item.playbackPositionTicks |
523 | 523 | resumeButton.runtimeTicks = item.runTimeTicks |
|
2172 | 2172 | imgParams = { maxHeight: 534, maxWidth: LOGO_MAX_DISPLAY_WIDTH, quality: 90, tag: item.primaryImageTag } |
2173 | 2173 | m.itemLogo.uri = ImageURL(item.id, "Primary", imgParams) |
2174 | 2174 | else |
2175 | | - m.itemLogo.uri = "pkg:/images/icons/baseline_person_white_48dp.png" |
| 2175 | + m.itemLogo.uri = "pkg:/images/icons/person_$$RES$$.png" |
2176 | 2176 | end if |
2177 | 2177 | return |
2178 | 2178 | else if item.type = "MusicArtist" |
|
2601 | 2601 | if itemType = "Series" |
2602 | 2602 | m.resumeLoadingButton = CreateObject("roSGNode", "IconButton") |
2603 | 2603 | m.resumeLoadingButton.id = "resumeLoadingButton" |
2604 | | - m.resumeLoadingButton.icon = "pkg:/images/icons/resume.png" |
| 2604 | + m.resumeLoadingButton.icon = "pkg:/images/icons/resume_$$RES$$.png" |
2605 | 2605 | if isValid(m.top.nextUpEpisode) and isValidAndNotEmpty(m.top.nextUpEpisode.id) |
2606 | 2606 | m.resumeLoadingButton.text = getResumeButtonText(m.top.nextUpEpisode) |
2607 | 2607 | else |
|
2615 | 2615 | if itemType = "Photo" |
2616 | 2616 | viewPhotoButton = CreateObject("roSGNode", "IconButton") |
2617 | 2617 | viewPhotoButton.id = "viewPhotoButton" |
2618 | | - viewPhotoButton.icon = "pkg:/images/icons/play.png" |
| 2618 | + viewPhotoButton.icon = "pkg:/images/icons/play_$$RES$$.png" |
2619 | 2619 | viewPhotoButton.text = translate(translationKeys.LabelView) |
2620 | 2620 | m.buttonGrp.appendChild(viewPhotoButton) |
2621 | 2621 | end if |
|
2624 | 2624 | if itemType = "PhotoAlbum" |
2625 | 2625 | slideshowButton = CreateObject("roSGNode", "IconButton") |
2626 | 2626 | slideshowButton.id = "slideshowButton" |
2627 | | - slideshowButton.icon = "pkg:/images/icons/play.png" |
| 2627 | + slideshowButton.icon = "pkg:/images/icons/play_$$RES$$.png" |
2628 | 2628 | slideshowButton.text = translate(translationKeys.LabelSlideshow) |
2629 | 2629 | m.buttonGrp.appendChild(slideshowButton) |
2630 | 2630 | end if |
|
2675 | 2675 |
|
2676 | 2676 | watchChannelButton = CreateObject("roSGNode", "ResumeButton") |
2677 | 2677 | watchChannelButton.id = "watchChannelButton" |
2678 | | - watchChannelButton.icon = "pkg:/images/icons/play.png" |
| 2678 | + watchChannelButton.icon = "pkg:/images/icons/play_$$RES$$.png" |
2679 | 2679 | watchChannelButton.runtimeTicks = runtimeSeconds& * 10000000& |
2680 | 2680 | watchChannelButton.playbackPositionTicks = elapsedSeconds& * 10000000& |
2681 | 2681 | else |
2682 | 2682 | watchChannelButton = CreateObject("roSGNode", "IconButton") |
2683 | 2683 | watchChannelButton.id = "watchChannelButton" |
2684 | | - watchChannelButton.icon = "pkg:/images/icons/play.png" |
| 2684 | + watchChannelButton.icon = "pkg:/images/icons/play_$$RES$$.png" |
2685 | 2685 | end if |
2686 | 2686 |
|
2687 | 2687 | watchChannelButton.text = translate(translationKeys.LabelWatch) |
|
2694 | 2694 | if showRecord |
2695 | 2695 | recordButton = CreateObject("roSGNode", "IconButton") |
2696 | 2696 | recordButton.id = "recordButton" |
2697 | | - recordButton.icon = "pkg:/images/icons/record.png" |
| 2697 | + recordButton.icon = "pkg:/images/icons/record_$$RES$$.png" |
2698 | 2698 | ' Check existing recording state — colorError icon when active |
2699 | 2699 | isRecording = false |
2700 | 2700 | if itemType = "Program" and isValidAndNotEmpty(item.timerId) |
|
2717 | 2717 | if itemType <> "Person" and itemType <> "Photo" and itemType <> "PhotoAlbum" and itemType <> "TvChannel" and itemType <> "Program" |
2718 | 2718 | playButton = CreateObject("roSGNode", "IconButton") |
2719 | 2719 | playButton.id = "playButton" |
2720 | | - playButton.icon = "pkg:/images/icons/play.png" |
| 2720 | + playButton.icon = "pkg:/images/icons/play_$$RES$$.png" |
2721 | 2721 | if itemType = "Series" or itemType = "Season" or itemType = "BoxSet" or itemType = "MusicArtist" or itemType = "MusicAlbum" or itemType = "Playlist" |
2722 | 2722 | playButton.text = translate(translationKeys.LabelPlayAll) |
2723 | 2723 | else |
|
2730 | 2730 | if itemType = "Series" or itemType = "Season" or itemType = "BoxSet" or itemType = "MusicArtist" or itemType = "MusicAlbum" or itemType = "Playlist" or itemType = "PhotoAlbum" |
2731 | 2731 | m.shuffleButton = CreateObject("roSGNode", "IconButton") |
2732 | 2732 | m.shuffleButton.id = "shuffleButton" |
2733 | | - m.shuffleButton.icon = "pkg:/images/icons/shuffle.png" |
| 2733 | + m.shuffleButton.icon = "pkg:/images/icons/shuffle_$$RES$$.png" |
2734 | 2734 | m.shuffleButton.text = translate(translationKeys.ButtonShuffle) |
2735 | 2735 | m.buttonGrp.appendChild(m.shuffleButton) |
2736 | 2736 | end if |
|
2740 | 2740 | if not inArray(itemTypeOrder.NO_WATCHED, itemType) |
2741 | 2741 | watchedButton = CreateObject("roSGNode", "IconButton") |
2742 | 2742 | watchedButton.id = "watchedButton" |
2743 | | - watchedButton.icon = "pkg:/images/icons/check.png" |
| 2743 | + watchedButton.icon = "pkg:/images/icons/check_$$RES$$.png" |
2744 | 2744 | watchedButton.text = translate(translationKeys.LabelWatched) |
2745 | 2745 | m.buttonGrp.appendChild(watchedButton) |
2746 | 2746 | end if |
|
2750 | 2750 | if itemType = "Person" |
2751 | 2751 | m.shuffleLoadingButton = CreateObject("roSGNode", "IconButton") |
2752 | 2752 | m.shuffleLoadingButton.id = "shuffleLoadingButton" |
2753 | | - m.shuffleLoadingButton.icon = "pkg:/images/icons/shuffle.png" |
| 2753 | + m.shuffleLoadingButton.icon = "pkg:/images/icons/shuffle_$$RES$$.png" |
2754 | 2754 | m.shuffleLoadingButton.text = translate(translationKeys.ButtonShuffle) |
2755 | 2755 | m.shuffleLoadingButton.isLoading = true |
2756 | 2756 | m.buttonGrp.appendChild(m.shuffleLoadingButton) |
|
2764 | 2764 | if itemType = "MusicArtist" or itemType = "MusicAlbum" or itemType = "Audio" |
2765 | 2765 | instantMixButton = CreateObject("roSGNode", "IconButton") |
2766 | 2766 | instantMixButton.id = "instantMixButton" |
2767 | | - instantMixButton.icon = "pkg:/images/icons/instantMix.png" |
| 2767 | + instantMixButton.icon = "pkg:/images/icons/instantMix_$$RES$$.png" |
2768 | 2768 | instantMixButton.text = translate(translationKeys.LabelInstantMix) |
2769 | 2769 | m.buttonGrp.appendChild(instantMixButton) |
2770 | 2770 | end if |
2771 | 2771 |
|
2772 | 2772 | ' Favorite button — all types |
2773 | 2773 | favoriteButton = CreateObject("roSGNode", "IconButton") |
2774 | 2774 | favoriteButton.id = "favoriteButton" |
2775 | | - favoriteButton.icon = "pkg:/images/icons/heart.png" |
| 2775 | + favoriteButton.icon = "pkg:/images/icons/heart_$$RES$$.png" |
2776 | 2776 | favoriteButton.text = translate(translationKeys.LabelFavorite) |
2777 | 2777 | m.buttonGrp.appendChild(favoriteButton) |
2778 | 2778 |
|
2779 | 2779 | ' Go to Series button — Season, Episode, and Program (when program is a series) |
2780 | 2780 | if itemType = "Season" or itemType = "Episode" or (itemType = "Program" and isValidAndNotEmpty(item.seriesId)) |
2781 | 2781 | goToSeriesButton = CreateObject("roSGNode", "IconButton") |
2782 | 2782 | goToSeriesButton.id = "goToSeriesButton" |
2783 | | - goToSeriesButton.icon = "pkg:/images/icons/tv.png" |
| 2783 | + goToSeriesButton.icon = "pkg:/images/icons/tv_$$RES$$.png" |
2784 | 2784 | goToSeriesButton.text = translate(translationKeys.LabelGoToSeries) |
2785 | 2785 | m.buttonGrp.appendChild(goToSeriesButton) |
2786 | 2786 | end if |
|
2789 | 2789 | if itemType = "Program" and isValidAndNotEmpty(item.channelId) |
2790 | 2790 | goToChannelButton = CreateObject("roSGNode", "IconButton") |
2791 | 2791 | goToChannelButton.id = "goToChannelButton" |
2792 | | - goToChannelButton.icon = "pkg:/images/icons/tv.png" |
| 2792 | + goToChannelButton.icon = "pkg:/images/icons/tv_$$RES$$.png" |
2793 | 2793 | goToChannelButton.text = translate(translationKeys.LabelGoToChannel) |
2794 | 2794 | m.buttonGrp.appendChild(goToChannelButton) |
2795 | 2795 | end if |
|
2798 | 2798 | if itemType = "Audio" and isValidAndNotEmpty(item.albumId) |
2799 | 2799 | goToAlbumButton = CreateObject("roSGNode", "IconButton") |
2800 | 2800 | goToAlbumButton.id = "goToAlbumButton" |
2801 | | - goToAlbumButton.icon = "pkg:/images/icons/album.png" |
| 2801 | + goToAlbumButton.icon = "pkg:/images/icons/album_$$RES$$.png" |
2802 | 2802 | goToAlbumButton.text = translate(translationKeys.LabelGoToAlbum) |
2803 | 2803 | m.buttonGrp.appendChild(goToAlbumButton) |
2804 | 2804 | end if |
|
2823 | 2823 | if hasNavigableArtist |
2824 | 2824 | goToArtistButton = CreateObject("roSGNode", "IconButton") |
2825 | 2825 | goToArtistButton.id = "goToArtistButton" |
2826 | | - goToArtistButton.icon = "pkg:/images/icons/baseline_person_white_48dp.png" |
| 2826 | + goToArtistButton.icon = "pkg:/images/icons/person_$$RES$$.png" |
2827 | 2827 | goToArtistButton.text = translate(translationKeys.LabelGoToArtist) |
2828 | 2828 | m.buttonGrp.appendChild(goToArtistButton) |
2829 | 2829 | end if |
|
2835 | 2835 | if m.top.trailerAvailable |
2836 | 2836 | trailerButton = CreateObject("roSGNode", "IconButton") |
2837 | 2837 | trailerButton.id = "trailerButton" |
2838 | | - trailerButton.icon = "pkg:/images/icons/playOutline.png" |
| 2838 | + trailerButton.icon = "pkg:/images/icons/playOutline_$$RES$$.png" |
2839 | 2839 | trailerButton.text = translate(translationKeys.LabelPlayTrailer) |
2840 | 2840 | m.buttonGrp.appendChild(trailerButton) |
2841 | 2841 | end if |
|
2844 | 2844 | if item.canDelete |
2845 | 2845 | deleteButton = CreateObject("roSGNode", "IconButton") |
2846 | 2846 | deleteButton.id = "deleteButton" |
2847 | | - deleteButton.icon = "pkg:/images/icons/delete.png" |
| 2847 | + deleteButton.icon = "pkg:/images/icons/delete_$$RES$$.png" |
2848 | 2848 | deleteButton.text = translate(translationKeys.ButtonDelete) |
2849 | 2849 | m.buttonGrp.appendChild(deleteButton) |
2850 | 2850 | end if |
2851 | 2851 |
|
2852 | 2852 | ' Refresh button — always last |
2853 | 2853 | refreshButton = CreateObject("roSGNode", "IconButton") |
2854 | 2854 | refreshButton.id = "refreshButton" |
2855 | | - refreshButton.icon = "pkg:/images/icons/refresh.png" |
| 2855 | + refreshButton.icon = "pkg:/images/icons/refresh_$$RES$$.png" |
2856 | 2856 | refreshButton.text = translate(translationKeys.ButtonRefresh) |
2857 | 2857 | m.buttonGrp.appendChild(refreshButton) |
2858 | 2858 |
|
|
2888 | 2888 | if not isValid(m.shuffleButton) |
2889 | 2889 | m.shuffleButton = CreateObject("roSGNode", "IconButton") |
2890 | 2890 | m.shuffleButton.id = "shuffleButton" |
2891 | | - m.shuffleButton.icon = "pkg:/images/icons/shuffle.png" |
| 2891 | + m.shuffleButton.icon = "pkg:/images/icons/shuffle_$$RES$$.png" |
2892 | 2892 | m.shuffleButton.text = translate(translationKeys.ButtonShuffle) |
2893 | 2893 |
|
2894 | 2894 | if isValid(loadingButton) |
|
2986 | 2986 | if not isValid(watchedButton) |
2987 | 2987 | watchedButton = CreateObject("roSGNode", "IconButton") |
2988 | 2988 | watchedButton.id = "watchedButton" |
2989 | | - watchedButton.icon = "pkg:/images/icons/check.png" |
| 2989 | + watchedButton.icon = "pkg:/images/icons/check_$$RES$$.png" |
2990 | 2990 | watchedButton.text = translate(translationKeys.LabelWatched) |
2991 | 2991 |
|
2992 | 2992 | currentFocusIndex = m.buttonGrp.buttonFocused |
|
0 commit comments