Skip to content

Commit 0cda763

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

1 file changed

Lines changed: 27 additions & 24 deletions

File tree

resources/lib/modules/updates.py

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

294294
@log.log_function()
295295
def set_release_channel(self, listItem):
296-
if listItem:
297-
self.set_value(listItem)
296+
if 'value' in self.struct['update']['settings']['ReleaseChannel']:
297+
old_release_channel = self.struct['update']['settings']['ReleaseChannel']['value']
298+
self.set_value(listItem)
298299
release_channel = self.struct['update']['settings']['ReleaseChannel']['value']
299300

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

327330

328331
@log.log_function()

0 commit comments

Comments
 (0)