123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /*global $, Whisper, Backbone, textsecure, extension*/
- /*
- * vim: ts=4:sw=4:expandtab
- */
- // This script should only be included in background.html
- (function () {
- 'use strict';
- window.Whisper = window.Whisper || {};
- window.isFocused = function() {
- return inboxFocused;
- };
- window.isOpen = function() {
- return inboxOpened;
- };
- window.drawAttention = function() {
- if (inboxOpened && !inboxFocused) {
- extension.windows.drawAttention(inboxWindowId);
- }
- };
- window.clearAttention = function() {
- extension.windows.clearAttention(inboxWindowId);
- };
- /* Inbox window controller */
- var inboxFocused = false;
- var inboxOpened = false;
- var inboxWindowId = 'inbox';
- var appWindow = null;
- window.openInbox = function() {
- console.log('open inbox');
- if (inboxOpened === false) {
- inboxOpened = true;
- extension.windows.open({
- id: 'inbox',
- url: 'index.html',
- focused: true,
- width: 580,
- height: 440,
- minWidth: 600,
- minHeight: 360
- }, function (windowInfo) {
- appWindow = windowInfo;
- inboxWindowId = appWindow.id;
- appWindow.contentWindow.addEventListener('load', function() {
- setUnreadCount(storage.get("unreadCount", 0));
- });
- appWindow.onClosed.addListener(function () {
- inboxOpened = false;
- appWindow = null;
- });
- appWindow.contentWindow.addEventListener('blur', function() {
- inboxFocused = false;
- });
- appWindow.contentWindow.addEventListener('focus', function() {
- inboxFocused = true;
- clearAttention();
- });
- // close the inbox if background.html is refreshed
- extension.windows.onSuspend(function() {
- // TODO: reattach after reload instead of closing.
- extension.windows.remove(inboxWindowId);
- });
- });
- } else if (inboxOpened === true) {
- extension.windows.focus(inboxWindowId, function (error) {
- if (error) {
- inboxOpened = false;
- openInbox();
- }
- });
- }
- };
- window.setUnreadCount = function(count) {
- if (count > 0) {
- extension.navigator.setBadgeText(count);
- if (inboxOpened === true && appWindow) {
- appWindow.contentWindow.document.title = "Cable (" + count + ")";
- }
- } else {
- extension.navigator.setBadgeText("");
- if (inboxOpened === true && appWindow) {
- appWindow.contentWindow.document.title = "Cable";
- }
- }
- };
- var open;
- window.openConversation = function(conversation) {
- if (inboxOpened === true) {
- appWindow.contentWindow.openConversation(conversation);
- } else {
- open = conversation;
- }
- openInbox();
- };
- window.getOpenConversation = function() {
- var o = open;
- open = null;
- return o;
- };
- })();
|