Home Reference Source Repository

js/loader.js

document.addEventListener('deviceready', function(){
	function continueBoot(){
		navigator.splashscreen.show();
		window.location = 'synthesis.html';
	}

	// Only android requires addition file access permissions
	if(device.platform !== 'Android'){
		continueBoot();
		return;
	}
	var permissions = cordova.plugins.permissions;
	function checkPermissions(){

		function errorHandler(){
			console.log('Failed to get File Access permission');
			navigator.app.exitApp();
		}
		permissions.hasPermission(permissions.WRITE_EXTERNAL_STORAGE, function(status){
			if(status.hasPermission){
				continueBoot();
			}
			else{
				permissions.requestPermission(permissions.WRITE_EXTERNAL_STORAGE, function(requestStatus){
					if(requestStatus.hasPermission){
						continueBoot();
					}
					else{
						console.log('User did not allow file access');
						navigator.notification.confirm(
								'This application requires file access to store offline files.',
								function(index){
									if (index === 2){
										navigator.app.exitApp();
									}
									else{
										checkPermissions();
									}
								},
								'File Permission Required',
								['Retry', 'Exit']);
					}
				}, errorHandler);
			}
		}, errorHandler);
	}

	checkPermissions();
}, false);