Announcement

Collapse
No announcement yet.

Announce: Material Skin

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • Originally posted by SamY
    The first example is a list of New Releases containing 134 items. As you can see, the icon is displayed but the text field is truncated at the first line-feed. In the second example, a list of the user's Favorite albums containing 89 items, the icon is not displayed but all three lines of the text field are fully intact.
    When showing a list with over 100 items Material uses a 'view recycler'. This only adds the displayed items to the internal HTML document - as the list is scrolled items are removed and new ones added. This way the list stays responsive even if it has thousands of items. Early on in Material's development I noticed this could still be slow-ish, so I trimmed the code within this to as little as possible. Because of this it does not really handle text items - which you can see in your example as the font weight is not lighter for this "text" item as it is in the list with less than 100 items. Also, this recycler is faster if each list item has the same height.

    Now I could change this limit to 150 - but then you'd have the same issue with 151 items. I could add text item handling, but this would only be for 2 lines of text, as each item has to be the same height.

    Default skin does not suffer from this as it splits the list into pages, and therefore is not really one big list.

    However, what is the point of showing an item in the list that cannot be streamed?

    [Edit] I've updated Material (git/master) to better handle text items in lists of over 100 items. Lighter text is used, but still only a max of 2 lines are shown.
    Last edited by cpd73; 2023-05-07, 09:16.
    Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.

    Comment


    • Originally posted by cpd73

      When showing a list with over 100 items Material uses a 'view recycler'. This only adds the displayed items to the internal HTML document - as the list is scrolled items are removed and new ones added. This way the list stays responsive even if it has thousands of items. Early on in Material's development I noticed this could still be slow-ish, so I trimmed the code within this to as little as possible. Because of this it does not really handle text items - which you can see in your example as the font weight is not lighter for this "text" item as it is in the list with less than 100 items. Also, this recycler is faster if each list item has the same height.
      Would there be any mileage in initially loading a "page" (say 50 items, like the default skin) and then loading more in response to a browser overscroll event?

      Failing that, a limit of 200 would help, for consistency, on the Qobuz side, as we have a results limit of 200 items for any given list.

      Having said that, I actually prefer the current "over 100 items" display rendering as it includes the icon. However, in other places in the Qobuz plug-in, we make good use of the fact that Material does not add icons to list items of type text. The ideal for Qobuz would be that text items would show an icon if we pass an icon URL , but not a default icon if no icon URL is passed. See screenshots to demonstrate Material's superior handling of text strings in the Qobuz album view, compared with the default skin.

      As to why show these unstreamable results at all, you'd have to ask Qobuz, who return them in their search results. One reason for them being unstreamable is that they're not yet released. I suppose we could be more helpful by showing the release date in such cases.

      Click image for larger version

Name:	Screenshot 2023-05-07 12.07.51.png
Views:	243
Size:	451.6 KB
ID:	1638372 Click image for larger version

Name:	Screenshot 2023-05-07 12.10.24.png
Views:	231
Size:	172.2 KB
ID:	1638373

      Comment


      • Originally posted by darrell
        Would there be any mileage in initially loading a "page" (say 50 items, like the default skin) and then loading more in response to a browser overscroll event?
        No, as eventually you go over the limit - and the recycler is needed. Each row in the list is 'active' - as in you can select it, etc, so the display can change. Having lots of these in the HTML document slows things down massively.

        Originally posted by darrell
        Failing that, a limit of 200 would help, for consistency, on the Qobuz side, as we have a results limit of 200 items for any given list.
        Again, no. I'm not slowing down the general use case because Qobuz is mixing items. IMVHO, a list should be of 1 type. This non-playable album should be displayed as an album, but (e.g.) dimmed. However (AFAIK) SlimBrowse has no way of indicating its an album that's not playable. Would be nice if SlimBrowse indicated an item type - artist, album, playlist, song, etc. But I don't think it was designed for that use-case.

        Originally posted by darrell
        As to why show these unstreamable results at all, you'd have to ask Qobuz, who return them in their search results. One reason for them being unstreamable is that they're not yet released. I suppose we could be more helpful by showing the release date in such cases.
        But what is the point to the plugin showing these? The user cannot play it, so it is of no use in the list.
        Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.

        Comment


        • Originally posted by cpd73
          But what is the point to the plugin showing these? The user cannot play it, so it is of no use in the list.
          I agree. Personally, I'd go further and exclude releases where any of the individual tracks are unstreamable or samples only. It's just too annoying. The only possible use case would be adding the release to your Qobuz favourites, ready for its release date. But as things stand, that cannot be done because the "add to favourites" option is within the album display which we don't make available. It's something we might be able to change, though.

          Anyway, I use the grid view, which is consistent and works fine with all the information present in the tooltip. I was just mulling over the options for users who might do things differently to me.

          Comment


          • cpd73 darrell
            Thanks for the detailed information, Craig. I don't like the idea of mixing item types in a list either, whether it can be handled or not. I'm going to change those items to empty playlists and display the 'non-streamable' message on the resulting screen, along with any other useful info. I agree with Darrell, though, that when an icon is included in a text item, it should ideally be displayed along with the text. Thanks to both of you for the input.
            Sam

            Comment


            • Originally posted by SamY
              cpd73 darrell
              Thanks for the detailed information, Craig. I don't like the idea of mixing item types in a list either, whether it can be handled or not. I'm going to change those items to empty playlists and display the 'non-streamable' message on the resulting screen, along with any other useful info. I agree with Darrell, though, that when an icon is included in a text item, it should ideally be displayed along with the text. Thanks to both of you for the input.
              Fyi, here is how it looks now:

              Click image for larger version

Name:	image.png
Views:	265
Size:	276.0 KB
ID:	1638403 ​ Click image for larger version

Name:	image.png
Views:	265
Size:	169.4 KB
ID:	1638401
              Attached Files
              Last edited by SamY; 2023-05-07, 19:12.
              Sam

              Comment


              • Originally posted by cpd73

                Not exactly. The "_200x200_o" is asking LMS's image resizes to resize to "200 x 200 px" - without this you should get the unscaled image. So, the source image should be the same, if different perhaps LMS's image cache has got confused?



                If other skins also have issues, then perhaps it is the image cache that is corrupt?
                Thanks for the details about the picture size. I am not sure why the same image would display one way on Default and different on Material. And then the Artist photo is incorrect on Default, but drilling down to the album level is correct and then OK on Material.

                After rescanning last night, this issue has cleared, but the issue with the cover for the BANGA album is still incorrect.

                Last edited by stereoptic; 2023-05-07, 19:33.

                Comment


                • I've just started with LMS and pCP to replace my Volumio setup and am pleasantly surprised.
                  The Material Skin on top of LMS looks great.

                  One thing I'm curious about what is the sorting mechanism for Favorite Radio stations and is there any way to order them directly?
                  It does not look alphabetically.

                  Comment


                  • Originally posted by Izocad
                    sorting mechanism for Favorite Radio stations
                    Not sure where 'Favorite Radio Stations' comes from. You can re-order items (apart from folders) in LMS's 'Favorites'. But all other lists are shown by the order provided by LMS.
                    Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.

                    Comment


                    • Originally posted by Izocad
                      I've just started with LMS and pCP to replace my Volumio setup and am pleasantly surprised.
                      The Material Skin on top of LMS looks great.

                      One thing I'm curious about what is the sorting mechanism for Favorite Radio stations and is there any way to order them directly?
                      It does not look alphabetically.
                      There is an option to sort them alphabetically in "Interface settings"

                      You may only view thumbnails in this gallery. This gallery has 1 photos.
                      Living Room: Touch or Squeezelite (Pi3B) > Topping E30 > Audiolab 8000A > Monitor Audio S5 + BK200-XLS DF
                      Bedroom: Radio
                      Bathroom: Radio

                      Comment


                      • Originally posted by slartibartfast

                        There is an option to sort them alphabetically in "Interface settings"
                        That was already enabled


                        I'm talking about the Radio Presents, not the Home screen Favorites menu. Not sure if that makes a difference
                        Last edited by Izocad; 2023-05-08, 09:38.

                        Comment


                        • Originally posted by Izocad

                          That was already enabled
                          Where does "Favourite Radio Stations" come from? I only have "Favourites".
                          Living Room: Touch or Squeezelite (Pi3B) > Topping E30 > Audiolab 8000A > Monitor Audio S5 + BK200-XLS DF
                          Bedroom: Radio
                          Bathroom: Radio

                          Comment


                          • Originally posted by Izocad

                            That was already enabled


                            I'm talking about the Radio Presents, not the Home screen Favorites menu. Not sure if that makes a difference
                            Which screen do these Radio Presets appear on?
                            Living Room: Touch or Squeezelite (Pi3B) > Topping E30 > Audiolab 8000A > Monitor Audio S5 + BK200-XLS DF
                            Bedroom: Radio
                            Bathroom: Radio

                            Comment


                            • Originally posted by slartibartfast

                              Where does "Favourite Radio Stations" come from? I only have "Favourites".
                              It is a renamed pin on the Home Screen from the Radio -> My Presents

                              Comment


                              • Originally posted by Izocad
                                It is a renamed pin on the Home Screen from the Radio -> My Presents
                                Then, as stated, no - the order of these comes from LMS. However, for 3.3.0 of Material I will sort this list if 'Sort favourites' is selected in Material's settings.
                                Material debug: 1. Launch via http: //SERVER:9000/material/?debug=json (Use http: //SERVER:9000/material/?debug=json,cometd to also see update messages, e.g. play queue) 2. Open browser's developer tools 3. Open console tab in developer tools 4. REQ/RESP messages sent to/from LMS will be logged here.

                                Comment

                                Working...
                                X
                                😀
                                🥰
                                🤢
                                😎
                                😡
                                👍
                                👎