Skip to content

Commit

Permalink
Fix demo parameter setup for systems without offline
Browse files Browse the repository at this point in the history
If there was no offline support, shakaDemo.postOfflineLoadOperation_
was not being called.

Instead, since offline setup is Promise-based, we now perform the
second half of demo app setup after this Promise is resolved.
This also allows us to merge two setup methods into one:
postBrowserCheckParams_ and postOfflineLoadOperation_.

Change-Id: I85ab27d04a2816921ef3fac95a195b66b3a7c81b
  • Loading branch information
joeyparrish committed Mar 24, 2017
1 parent 183e444 commit 0d0ccdb
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 26 deletions.
10 changes: 8 additions & 2 deletions demo/asset_section.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@
var shakaDemo = shakaDemo || {};


/** @private */
/**
* @return {!Promise}
* @private
*/
shakaDemo.setupAssets_ = function() {
// Populate the asset list.
var assetList = document.getElementById('assetList');
Expand Down Expand Up @@ -76,7 +79,8 @@ shakaDemo.setupAssets_ = function() {
first.selected = true;
}

shakaDemo.setupOfflineAssets_();
// This needs to be started before we add the custom asset option.
var asyncOfflineSetup = shakaDemo.setupOfflineAssets_();

// Add an extra option for custom assets.
var option = document.createElement('option');
Expand All @@ -99,6 +103,8 @@ shakaDemo.setupAssets_ = function() {
'keyup', shakaDemo.onAssetKeyUp_);
document.getElementById('manifestInput').addEventListener(
'keyup', shakaDemo.onAssetKeyUp_);

return asyncOfflineSetup;
};


Expand Down
41 changes: 19 additions & 22 deletions demo/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ shakaDemo.init = function() {
shakaDemo.player_.addEventListener('error', shakaDemo.onErrorEvent_);
shakaDemo.localPlayer_ = localPlayer;

shakaDemo.setupAssets_();
var asyncSetup = shakaDemo.setupAssets_();
shakaDemo.setupOffline_();
shakaDemo.setupConfiguration_();
shakaDemo.setupInfo_();
Expand All @@ -157,7 +157,9 @@ shakaDemo.init = function() {
shakaDemo.controls_.init(shakaDemo.castProxy_, shakaDemo.onError_,
shakaDemo.onCastStatusChange_);

shakaDemo.postBrowserCheckParams_(params);
asyncSetup.then(function() {
shakaDemo.postBrowserCheckParams_(params);
});
});
}
};
Expand Down Expand Up @@ -255,18 +257,20 @@ shakaDemo.preBrowserCheckParams_ = function(params) {
};


/** @private */
shakaDemo.postOfflineLoadOperation_ = function() {
var params = shakaDemo.getParams_();

/**
* @param {!Object.<string, string>} params
* @private
*/
shakaDemo.postBrowserCheckParams_ = function(params) {
// If a custom asset was given in the URL, select it now.
if ('asset' in params) {
var assetList = document.getElementById('assetList');
var assetUri = params['asset'];
var isDefault = false;
// Check all options except the last, which is 'custom asset'.
for (var index = 0; index < assetList.options.length - 1; index++) {
if (assetList[index].asset.manifestUri == assetUri) {
if (assetList[index].asset &&
assetList[index].asset.manifestUri == assetUri) {
assetList.selectedIndex = index;
isDefault = true;
break;
Expand All @@ -284,21 +288,6 @@ shakaDemo.postOfflineLoadOperation_ = function() {
}
}

if ('play' in params) {
shakaDemo.load();
}

// Allow the hash to be changed, and give it an initial change.
shakaDemo.hashCanChange_ = true;
shakaDemo.hashShouldChange_();
};


/**
* @param {!Object.<string, string>} params
* @private
*/
shakaDemo.postBrowserCheckParams_ = function(params) {
if ('noadaptation' in params) {
var enableAdaptation = document.getElementById('enableAdaptation');
enableAdaptation.checked = false;
Expand All @@ -316,6 +305,14 @@ shakaDemo.postBrowserCheckParams_ = function(params) {
var fakeEvent = /** @type {!Event} */({target: showTrickPlay});
shakaDemo.onTrickPlayChange_(fakeEvent);
}

// Allow the hash to be changed, and give it an initial change.
shakaDemo.hashCanChange_ = true;
shakaDemo.hashShouldChange_();

if ('play' in params) {
shakaDemo.load();
}
};


Expand Down
2 changes: 0 additions & 2 deletions demo/offline_section.js
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,6 @@ shakaDemo.setupOfflineAssets_ = function() {

shakaDemo.updateButtons_(true);
return db.destroy();
}).then(function() {
shakaDemo.postOfflineLoadOperation_();
});
};

Expand Down

0 comments on commit 0d0ccdb

Please sign in to comment.