Skip to content

Commit a719b78

Browse files
committed
updates: only run set_release_channel refresh tasks if it changed
Signed-off-by: Ian Leonard <antonlacon@gmail.com>
1 parent 4a8e5c9 commit a719b78

File tree

1 file changed

+27
-24
lines changed

1 file changed

+27
-24
lines changed

resources/lib/modules/updates.py

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -289,36 +289,39 @@ def set_value(self, listItem):
289289

290290
@log.log_function()
291291
def set_release_channel(self, listItem):
292-
if listItem:
293-
self.set_value(listItem)
292+
if 'value' in self.struct['update']['settings']['ReleaseChannel']:
293+
old_release_channel = self.struct['update']['settings']['ReleaseChannel']['value']
294+
self.set_value(listItem)
294295
release_channel = self.struct['update']['settings']['ReleaseChannel']['value']
295296

296-
# Show or hide menu elements based on selected channel
297-
if release_channel == 'stable':
298-
# Automatic update only on stable releases
299-
if 'hidden' in self.struct['update']['settings']['AutoUpdate']:
300-
del(self.struct['update']['settings']['AutoUpdate']['hidden'])
301-
# Only show manual update options if automatic update disabled
302-
if self.struct['update']['settings']['AutoUpdate']['value'] == '0':
297+
# Only do work if ReleaseChannel changed
298+
if release_channel != old_release_channel:
299+
# Show or hide menu elements based on selected channel
300+
if release_channel == 'stable':
301+
# Automatic update only on stable releases
302+
if 'hidden' in self.struct['update']['settings']['AutoUpdate']:
303+
del(self.struct['update']['settings']['AutoUpdate']['hidden'])
304+
# Only show manual update options if automatic update disabled
305+
if self.struct['update']['settings']['AutoUpdate']['value'] == '0':
306+
if 'hidden' in self.struct['update']['settings']['Channel']:
307+
del(self.struct['update']['settings']['Channel']['hidden'])
308+
if 'hidden' in self.struct['update']['settings']['Build']:
309+
del(self.struct['update']['settings']['Build']['hidden'])
310+
else:
311+
self.struct['update']['settings']['Channel']['hidden'] = 'true'
312+
self.struct['update']['settings']['Build']['hidden'] = 'true'
313+
else:
314+
# Hide automatic update and show manual update options
315+
self.struct['update']['settings']['AutoUpdate']['hidden'] = 'true'
303316
if 'hidden' in self.struct['update']['settings']['Channel']:
304317
del(self.struct['update']['settings']['Channel']['hidden'])
305318
if 'hidden' in self.struct['update']['settings']['Build']:
306319
del(self.struct['update']['settings']['Build']['hidden'])
307-
else:
308-
self.struct['update']['settings']['Channel']['hidden'] = 'true'
309-
self.struct['update']['settings']['Build']['hidden'] = 'true'
310-
else:
311-
# Hide automatic update and show manual update options
312-
self.struct['update']['settings']['AutoUpdate']['hidden'] = 'true'
313-
if 'hidden' in self.struct['update']['settings']['Channel']:
314-
del(self.struct['update']['settings']['Channel']['hidden'])
315-
if 'hidden' in self.struct['update']['settings']['Build']:
316-
del(self.struct['update']['settings']['Build']['hidden'])
317-
318-
# Refresh json and available build channels if ReleaseChannel is stable, testing or custom with a custom URL set
319-
if release_channel != 'custom' or (release_channel == 'custom' and self.struct['update']['settings']['CustomChannel1']['value']):
320-
self.update_json = self.build_json()
321-
self.struct['update']['settings']['Channel']['values'] = self.get_channels()
320+
321+
# Refresh json for available build channels if ReleaseChannel is stable, testing, or custom with URL set
322+
if release_channel != 'custom' or (release_channel == 'custom' and self.struct['update']['settings']['CustomChannel1']['value']):
323+
self.update_json = self.build_json()
324+
self.struct['update']['settings']['Channel']['values'] = self.get_channels()
322325

323326

324327
@log.log_function()

0 commit comments

Comments
 (0)