diff --git a/platformcode/launcher.py b/platformcode/launcher.py
index 25839355..6e41f12a 100644
--- a/platformcode/launcher.py
+++ b/platformcode/launcher.py
@@ -33,8 +33,11 @@ def start():
def run(item=None):
- # from core.support import dbg;dbg()
logger.debug()
+
+ # for saving viewmode for precedent menu
+ platformtools.viewmodeMonitor()
+
if not item:
# Extract item from sys.argv
if sys.argv[2]:
diff --git a/platformcode/platformtools.py b/platformcode/platformtools.py
index 446cc382..32c9dce9 100644
--- a/platformcode/platformtools.py
+++ b/platformcode/platformtools.py
@@ -388,6 +388,26 @@ def render_items(itemlist, parent_item):
logger.debug('END render_items')
+def viewmodeMonitor():
+ try:
+ currentModeName = xbmc.getInfoLabel('Container.Viewmode')
+ win = xbmcgui.Window(xbmcgui.getCurrentWindowId())
+ currentMode = int(win.getFocusId())
+ if currentModeName and 'plugin.video.kod' in xbmc.getInfoLabel('Container.FolderPath') and currentMode < 1000 and currentMode >= 50: # inside addon and in itemlist view
+ content, Type = getCurrentView()
+ if content:
+ defaultMode = int(config.get_setting('view_mode_%s' % content).split(',')[-1])
+ if currentMode != defaultMode:
+ logger.debug('viewmode changed: ' + currentModeName + '-' + str(currentMode) + ' - content: ' + content)
+ config.set_setting('view_mode_%s' % content, currentModeName + ', ' + str(currentMode))
+ dialog_notification(config.get_localized_string(70153),
+ config.get_localized_string(70187) % (content, currentModeName),
+ sound=False)
+ except:
+ import traceback
+ logger.error(traceback.print_exc())
+
+
def getCurrentView(item=None, parent_item=None):
if not parent_item:
info = xbmc.getInfoLabel('Container.FolderPath')
@@ -395,7 +415,7 @@ def getCurrentView(item=None, parent_item=None):
return None, None
parent_item = Item().fromurl(info)
if not item:
- info = xbmc.getInfoLabel('Container.ListItem(1).FileNameAndPath')
+ info = xbmc.getInfoLabel('Container.ListItemPosition(2).FileNameAndPath') # first addon listitem (consider "..")
if not info:
return None, None
item = Item().fromurl(info) if info else Item()
@@ -424,12 +444,12 @@ def getCurrentView(item=None, parent_item=None):
return 'episode', 'tvshows'
else:
- return 'addon', 'addons' if config.get_setting('touch_view') else ''
+ return 'menu', 'addons' if config.get_setting('touch_view') else ''
def set_view_mode(item, parent_item):
def reset_view_mode():
- for mode in ['addon','channel','movie','tvshow','season','episode','server']:
+ for mode in ['menu','channel','movie','tvshow','season','episode','server']:
config.set_setting('skin_name', xbmc.getSkinDir())
config.set_setting('view_mode_%s' % mode, config.get_localized_string(70003) + ' , 0')
diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po
index 39947634..ec414ea0 100644
--- a/resources/language/resource.language.en_gb/strings.po
+++ b/resources/language/resource.language.en_gb/strings.po
@@ -3433,7 +3433,7 @@ msgid "Show ExtendedInfo"
msgstr ""
msgctxt "#70153"
-msgid ""
+msgid "View mode saved"
msgstr ""
msgctxt "#70154"
@@ -3569,7 +3569,7 @@ msgid "Getting episodes..."
msgstr ""
msgctxt "#70187"
-msgid ""
+msgid "For content %s -> %s"
msgstr ""
msgctxt "#70188"
diff --git a/resources/language/resource.language.it_it/strings.po b/resources/language/resource.language.it_it/strings.po
index 307be3f8..d1198d29 100644
--- a/resources/language/resource.language.it_it/strings.po
+++ b/resources/language/resource.language.it_it/strings.po
@@ -3432,8 +3432,8 @@ msgid "Show ExtendedInfo"
msgstr "Mostra ExtendedInfo"
msgctxt "#70153"
-msgid ""
-msgstr ""
+msgid "View mode saved"
+msgstr "Tipo di vista salvato"
msgctxt "#70154"
msgid "TMDB search"
@@ -3568,8 +3568,8 @@ msgid "Getting episodes..."
msgstr "Ottenimento episodi..."
msgctxt "#70187"
-msgid ""
-msgstr ""
+msgid "For content %s -> %s"
+msgstr "Per contenuto %s -> %s"
msgctxt "#70188"
msgid "Obtaining data for the TV show"
diff --git a/resources/settings.xml b/resources/settings.xml
index 880344eb..3acf0ec7 100644
--- a/resources/settings.xml
+++ b/resources/settings.xml
@@ -138,7 +138,7 @@
-
+
diff --git a/service.py b/service.py
index 4c1c88a1..cf225499 100644
--- a/service.py
+++ b/service.py
@@ -286,22 +286,6 @@ def check_for_update(overwrite=True):
trakt_tools.update_all()
-def viewmodeMonitor():
- try:
- currentModeName = xbmc.getInfoLabel('Container.Viewmode')
- win = xbmcgui.Window(xbmcgui.getCurrentWindowId())
- currentMode = int(win.getFocusId())
- if currentModeName and 'plugin.video.kod' in xbmc.getInfoLabel('Container.FolderPath') and currentMode < 1000 and currentMode >= 50: # inside addon and in itemlist view
- content, Type = platformtools.getCurrentView()
- if content:
- defaultMode = int(config.get_setting('view_mode_%s' % content).split(',')[-1])
- if currentMode != defaultMode:
- logger.debug('viewmode changed: ' + currentModeName + '-' + str(currentMode) + ' - content: ' + content)
- config.set_setting('view_mode_%s' % content, currentModeName + ', ' + str(currentMode))
- except:
- logger.error(traceback.print_exc())
-
-
def updaterCheck():
# updater check
updated, needsReload = updater.check(background=True)
@@ -441,7 +425,7 @@ class AddonMonitor(xbmc.Monitor):
logger.debug('scheduled videolibrary at ' + str(self.update_hour).zfill(2) + ':00')
def scheduleScreenOnJobs(self):
- schedule.every().second.do(viewmodeMonitor).tag('screenOn')
+ schedule.every().second.do(platformtools.viewmodeMonitor).tag('screenOn')
schedule.every().second.do(torrent.elementum_monitor).tag('screenOn')
def onDPMSActivated(self):