Kodi Community Forum

Full Version: [Beta] Estuary Ketts Mod
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Ketts Mod (working title)
Please help me eliminate the bug currently plaging me, described below, with debug and a description of the bug
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 cleaning

- 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

- Code cleaning


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


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

- Fixed widget's to be visible!!!
    - using stock widgets for all default list items


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


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


• 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
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?
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
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
Ok I think I have narrowed it down a bit.The code for custom wigets is

                <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)
                    <include content="Visible_Right_Delayed">
                        <param name="id" value="movies"/>
                    <control type="grouplist" id="18001">

                        <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 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 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 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"/>

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

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:
    <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 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>
    <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>

Does anyone understand why the first set of variables would cause widgets not to re appear?
So what exactly are you trying to figure out... Are the widgets working correctly before you add you custom code?
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
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
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
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.
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?
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.
I understand how it works I will download your stuff and look at it a little later
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
Pages: 1 2