You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			101 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			JavaScript
		
	
| /*
 | |
|  * vim: ts=4:sw=4:expandtab
 | |
|  */
 | |
| ;(function() {
 | |
|     'use strict';
 | |
|     extension.windows.getBackground(function(bg) {
 | |
|         $('.notifications .on button').click(function() {
 | |
|             bg.Whisper.Notifications.disable();
 | |
|             initOptions();
 | |
|         });
 | |
| 
 | |
|         $('.notifications .off button').click(function() {
 | |
|             bg.Whisper.Notifications.enable(initOptions);
 | |
|             initOptions();
 | |
|         });
 | |
| 
 | |
|         function initOptions() {
 | |
|             if (bg.Whisper.Notifications.isEnabled()) {
 | |
|                 $('.notifications .on').show();
 | |
|                 $('.notifications .off').hide();
 | |
|             } else {
 | |
|                 $('.notifications .on').hide();
 | |
|                 $('.notifications .off').show();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         function setProvisioningUrl(url) {
 | |
|             $('#status').text('');
 | |
|             new QRCode($('#qr')[0]).makeCode(url);
 | |
|         }
 | |
| 
 | |
|         function confirmNumber(number) {
 | |
|             return new Promise(function(resolve, reject) {
 | |
|                 $('#qr').hide();
 | |
|                 $('.confirmation-dialog .number').text(number);
 | |
|                 $('.confirmation-dialog .cancel').click(function(e) {
 | |
|                     reject();
 | |
|                 });
 | |
|                 $('.confirmation-dialog .ok').click(function(e) {
 | |
|                     e.stopPropagation();
 | |
|                     var name = $('#device-name').val();
 | |
|                     if (name.trim().length === 0) {
 | |
|                         return;
 | |
|                     }
 | |
|                     $('.confirmation-dialog').hide();
 | |
|                     $('.progress-dialog').show();
 | |
|                     $('.progress-dialog .status').text('Generating Keys');
 | |
|                     resolve(name);
 | |
|                 });
 | |
|                 $('.modal-container').show();
 | |
|             });
 | |
|         }
 | |
| 
 | |
|         var counter = 0;
 | |
|         function incrementCounter() {
 | |
|             $('.progress-dialog .bar').css('width', (++counter * 100 / 100) + '%');
 | |
|         }
 | |
| 
 | |
|         $('.modal-container .cancel').click(function() {
 | |
|             $('.modal-container').hide();
 | |
|         });
 | |
| 
 | |
|         $(function() {
 | |
|             var accountManager = new bg.getAccountManager();
 | |
| 
 | |
|             var init = function() {
 | |
|                 $('#init-setup').show().addClass('in');
 | |
|                 $('#qr').html('');
 | |
|                 $('#status').text("Connecting...");
 | |
| 
 | |
|                 accountManager.registerSecondDevice(setProvisioningUrl, confirmNumber, incrementCounter).then(function() {
 | |
|                     var launch = function() {
 | |
|                         bg.openInbox();
 | |
|                         bg.removeEventListener('textsecure:contactsync', launch);
 | |
|                         clearTimeout(timeout);
 | |
|                         window.close();
 | |
|                     };
 | |
|                     var timeout = setTimeout(launch, 60000);
 | |
|                     bg.addEventListener('textsecure:contactsync', launch);
 | |
|                     $('.progress-dialog .status').text('Syncing groups and contacts');
 | |
|                     $('.progress-dialog .bar').addClass('progress-bar-striped active');
 | |
|                 }).catch(function(e) {
 | |
|                     if (e.message === 'websocket closed') {
 | |
|                         init();
 | |
|                     } else if (e.name === 'HTTPError' && e.code == 411) {
 | |
|                         $('.progress-dialog').hide();
 | |
|                         $('.error-dialog').show();
 | |
|                         $('.error-dialog .ok').click(function(e) {
 | |
|                             chrome.runtime.reload();
 | |
|                         });
 | |
|                     }
 | |
|                     else {
 | |
|                         throw e;
 | |
|                     }
 | |
|                 });
 | |
|             };
 | |
|             init();
 | |
|         });
 | |
|     });
 | |
| })();
 |