learningequality / kolibri-installer-android

Android wrapper for Kolibri.
MIT License
26 stars 22 forks source link

Handle tracks with no releases key. #158

Closed rtibbles closed 1 year ago

rtibbles commented 1 year ago

Apparently, it is possible for the track object returned by the Play Store API to be missing a releases key.

See below:

[{'track': 'production',
  'releases': [{'name': '0.13.3a0.dev0+git.18.g5c58205f-87562b7-official',
    'versionCodes': ['2004262131', '2004262134'],
    'releaseNotes': [{'language': 'en-US',
      'text': 'Initial pre-release version'}],
    'status': 'draft'}]},
 {'track': 'beta'},
 {'track': 'alpha',
  'releases': [{'name': '0.15.9',
    'releaseNotes': [{'language': 'en-US',
      'text': 'UI enhancements, and a series of fixes around learner progress tracking for resources, metadata display, and search.'}],
    'status': 'draft'},
   {'name': '0.15.6',
    'versionCodes': ['2009007882', '2009007883'],
    'status': 'completed'}]},
 {'track': 'internal',
  'releases': [{'name': '0.16.0b4-0.1.0-official',
    'versionCodes': ['2009007886'],
    'status': 'completed'}]},
 {'track': 'Pre-release testing',
  'releases': [{'name': '0.13.3a0.dev0+git.18.g5c58205f-87562b7-official',
    'versionCodes': ['2004262131', '2004262134'],
    'releaseNotes': [{'language': 'en-US',
      'text': 'Initial pre-release version'}],
    'status': 'completed'}]}]

This adds defensive handling for that scenario.

Fixes #157