Mod [Beta] Estuary Ketts Mod
#1
Ketts Mod (working title)
Please help me eliminate the bug currently plaging me, described below, with debug and a description of the bug
Description
The purpose of this mod is to add a custimizable home menu items as well as custom widgets. My goal is to make the skin as visually close to stock estuary as possible. I want to add features, bit not change the general over all look fo the skin

I would like to credit @im85288 as much of the code for extra features is borrowed from him.

Download - V 0.8.1
Download - v 0.7.2

Change Log
Code:
[B]0.8.1[/B]
- code cleaning

[B]0.8.0[/B]
- Fix widget disapearance
Created workaround to fix bug-added a value to each widget variable to act as fall back if nothing is found -side effect, if no widgets are set there are 4 fallback (currently set to go to library://videos

[B]0.7.2[/B]
- Code cleaning

[B]0.7.1[/B]

•Added custom widgets
- BUG custom widgets disapear after loosing focus
- changed default icons folder - now we have hundreads available


[B]0.6.1[/B]

• Fixed not being able to navigate to widgets
- added code to make custome widgets - still not visiable

[B]0.6.0[/B]
- Fixed widget's to be visible!!!
    - using stock widgets for all default list items

[B]0.5.1[/B]

• fixed menu list visability statements
- Fixed Id's
- fixed icon to be thumb now icons visible


[B]0.5.0[/B]

• made Custom menu list appear
- created menu defaults, emulates stock defaults


[B]0.2.0[/B]

• Initial commmit
- added removed main menu list
- Added script.skinsettings.xml
- Built

Current Bugs
Custom Widgets are only visible on first focus.
Default shortcuts visibility is dependant on having content
Reply
#2
reserved
Reply
#3
I'm Hoping someone can review the code in the home.xml and help me figure out why any custom widgets will appear at first (or on reload) but after the list item looses focus, (other widgets load), but you retrun to the custom item, the widgets will not reappear.

Can anyone please explain why that would be?
Reply
#4
I have a debug Log that might be able to be reviewed
Debug Log
Im really hoping someone might see something, I have relativly little experiance with skinning and can't find where my error is
Reply
#5
I have noticed one other oddity, I can switch between 2 custom widgets and they will both stay visible, but if i move to a list item with default widgets the custom ones will not appear


on another note, at this point I have not actually implemented any custom widgets on any default main menu list item, only on custom ones
Reply
#6
Ok I think I have narrowed it down a bit.The code for custom wigets is

Code:
                <control type="group" id="18000">
                    <visible> !String.IsEqual(Container(9000).ListItem.Property(defaultID),addons)
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),weather)
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),games)
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),livetv)
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),radio)
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),tvshows)
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),music)  
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),musicvideos)
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),movies)
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),favorites)
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),videos)
                        + !String.IsEqual(Container(9000).ListItem.Property(defaultID),pictures)
                    </visible>
                    <include content="Visible_Right_Delayed">
                        <param name="id" value="movies"/>
                    </include>
                    <control type="grouplist" id="18001">
                        <top>40</top>
                        <include>WidgetGroupListCommon</include>

                        <include content="WidgetListPoster">
                            <param name="content_path" value="$VAR[DefWidgetDefault1Content]"/>
                            <param name="widget_header" value="$VAR[DefWidgetDefault1Label]"/>
                            <param name="widget_target" value="$VAR[DefWidgetDefault1Target]"/>
                            <param name="list_id" value="181000"/>
                        </include>

                <!--        <include content="WidgetListPoster">
                            <param name="content_path" value="upnp://87eac7c3-7991-2364-1c4c-b3159de7d5d5/library%3a%2f%2fvideo%2fmovies%2frecentlyaddedmovies.xml%2f"/>
                            <param name="widget_header" value="upnpbox - Recently added movies"/>
                            <param name="widget_target" value="videos"/>
                            <param name="list_id" value="181000"/>
                        </include> -->
                        <include content="WidgetListEpisodes">
                            <param name="content_path" value="$VAR[DefWidgetDefault2Content]"/>
                            <param name="widget_header" value="$VAR[DefWidgetDefault2Label]"/>
                            <param name="widget_target" value="$VAR[DefWidgetDefault2Target]"/>
                            <param name="item_image" value="$VAR[TVShowWidgetImageVar]"/>
                            <param name="list_id" value="182000"/>
                        </include>
                        <include content="WidgetListPoster">
                            <param name="content_path" value="$VAR[DefWidgetDefault3Content]"/>
                            <param name="widget_header" value="$VAR[DefWidgetDefault3Label]"/>
                            <param name="widget_target" value="$VAR[DefWidgetDefault3Target]"/>
                            <param name="list_id" value="183000"/>
                        </include>
                        <include content="WidgetListEpisodes">
                            <param name="content_path" value="$VAR[DefWidgetDefault4Content]"/>
                            <param name="widget_header" value="$VAR[DefWidgetDefault4Label]"/>
                            <param name="widget_target" value="$VAR[DefWidgetDefault4Target]"/>
                            <param name="item_image" value="$VAR[TVShowWidgetImageVar]"/>
                            <param name="list_id" value="184000"/>
                        </include>
                </control>    
            </control>

and the variables are as follows repeated for 4 widgets
Code:
<variable name="DefWidgetDefault1Content">
        <value condition="!String.IsEmpty(Container(9000).ListItem.Property(widgetPath.default1))">$INFO[Container(9000).ListItem.Property(widgetPath.default1)]</value>
    </variable>
    <variable name="DefWidgetDefault1Target">
        <value condition="!String.IsEmpty(Container(9000).ListItem.Property(widgetTarget.default1))">$INFO[Container(9000).ListItem.Property(widgetTarget.default1)]</value>
        <value>video</value>
    </variable>
    <variable name="DefWidgetDefault1Label">
        <value condition="!String.IsEmpty(Container(9000).ListItem.Property(widgetName.default1))">$INFO[Container(9000).ListItem.Property(widgetName.default1)]</value>
    </variable>

Now I tried to add an extra statment to each to act aas a fall back which allowed the widgets to reappear a second time, the new variables look like this:
Code:
    <variable name="DefWidgetDefault1Content">
        <value condition="!String.IsEmpty(Container(9000).ListItem.Property(widgetPath.default1))">$INFO[Container(9000).ListItem.Property(widgetPath.default1)]</value>
        <value condition="String.IsEmpty(Container(9000).ListItem.Property(widgetPath.default1))">library://video/</value>        
    </variable>
    <variable name="DefWidgetDefault1Target">
        <value condition="!String.IsEmpty(Container(9000).ListItem.Property(widgetTarget.default1))">$INFO[Container(9000).ListItem.Property(widgetTarget.default1)]</value>
        <value condition="String.IsEmpty(Container(9000).ListItem.Property(widgetTarget.default1))">videos</value>
        <value>video</value>
    </variable>
    <variable name="DefWidgetDefault1Label">
        <value condition="!String.IsEmpty(Container(9000).ListItem.Property(widgetName.default1))">$INFO[Container(9000).ListItem.Property(widgetName.default1)]</value>
        <value condition="String.IsEmpty(Container(9000).ListItem.Property(widgetName.default1))">$LOCALIZE[31148]</value>
    </variable>

Does anyone understand why the first set of variables would cause widgets not to re appear?
Reply
#7
So what exactly are you trying to figure out... Are the widgets working correctly before you add you custom code?
Shield TV | Windows 10 | Mariadb | Mii Box
Evolve Ecosystem Repo | TV Melodies | Madnox Holiday Mod
Reply
#8
Okay, I am trying to add custom homemenu items and configurable widgets. all default widgets did and still do work. They are all pretty well seperate as I have not touched the code for any default widgets. When skin is originally loaded I can move to a custom menu item with widgets set, and they will appear. They can be used, and navigated, but if i then navigate to a default menu item and back to a custom menu item, the widgets for the custom menu item (and all custom menu items) does not appear.

Like I said above I believe it might have to do with the variables(borrowed code from reesturised) are not reloading or setting properly. So when i add extra Code to the variables (to act as a fallback if there is now widgets) but its not an ideal fix either becasuse then any custom menu item without widget settings all fall to the fallback
Reply
#9
I haven't actually looking through all your code but it sounds like you have a visibility issue... Try to trace back then the widget that are working correctly are being displayed.. there should be a visible param some where defined based in the menu items
Shield TV | Windows 10 | Mariadb | Mii Box
Evolve Ecosystem Repo | TV Melodies | Madnox Holiday Mod
Reply
#10
Thats what I thought at the beginning, and is still possible, but i have replaced the varibles with hard coded stings and everthing worked as expected. but when using the variables I have shown above things get wacky
Reply
#11
Alright I have a video to show exactly what I mean, the first and second list items are stock, they work. The next ones work at first, as you can see but as soon as they loose focus (or the list item they are attached does) then the widgets will not reappear. If the skin refreshes it always continues.



I really hope this helps to illustrate what I mean.

Also the reason I beleive it has to do with variables, is because if i replace the variables with hard coded content and labels it works without issue.
Reply
#12
So for the custom widget are you using library://videos? Maybe you could try a smartplaylist in place just verify it is working correctly. Also visible right delay is that just Animation s?
Shield TV | Windows 10 | Mariadb | Mii Box
Evolve Ecosystem Repo | TV Melodies | Madnox Holiday Mod
Reply
#13
for custom widgets each variable is read from the skinshortcuts entry, and then used to create the widget. skinshortcuts allows you to store create and store all of the widget info along side the menu info/ control info.
The fallback code if there is no widget links to library://videos. In the video I did not show what it does with this fix in place. it does as you would expect, it shows the custom widget if its available and videos library if not. the reason this isnt perfect is because then if there are no wigets defined for a particular list item then the fall back screen comes up. I have 4 available widgets so it shows up 4 times.
Reply
#14
I understand how it works I will download your stuff and look at it a little later
Shield TV | Windows 10 | Mariadb | Mii Box
Evolve Ecosystem Repo | TV Melodies | Madnox Holiday Mod
Reply
#15
sorry i dont mean to act as if you dont know, I have done lots of reading from the skin manual, but I am very much novice at skinning and I wasn't sure is this is a standard practice/
Thank you so much for any and all time you have put into helping me.

Also I did try using a smartplaylist and it worked well
Reply

Logout Mark Read Team Forum Stats Members Help
[Beta] Estuary Ketts Mod0