From e4c5ab88fb78ad83acdaf05bac8a9604a680f3b3 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Tue, 25 Oct 2016 23:17:46 -0400 Subject: [PATCH] update icon when vault is locked/unlocked --- src/_locales/en/messages.json | 4 +++ src/background.js | 48 ++++++++++++++------------- src/images/icon19_locked.png | Bin 0 -> 584 bytes src/images/icon38_locked.png | Bin 0 -> 996 bytes src/popup/app/lock/lockController.js | 1 + src/services/i18nService.js | 1 + 6 files changed, 31 insertions(+), 23 deletions(-) create mode 100644 src/images/icon19_locked.png create mode 100644 src/images/icon38_locked.png diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index e32b13431d..14c6ccd334 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -103,6 +103,10 @@ "message": "No matching sites.", "description": "No matching sites." }, + "vaultLocked": { + "message": "Vault is locked.", + "description": "Vault is locked." + }, "autoFillInfo": { "message": "There are no sites available to auto-fill for the current browser tab.", "description": "There are no sites available to auto-fill for the current browser tab." diff --git a/src/background.js b/src/background.js index 99f87b2cd4..a47d40da66 100644 --- a/src/background.js +++ b/src/background.js @@ -27,13 +27,10 @@ chrome.commands.onCommand.addListener(function (command) { }); chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) { - if (msg.command === 'loggedOut') { - setIcon(true); + if (msg.command === 'loggedOut' || msg.command === 'loggedIn' || msg.command === 'unlocked' || msg.command === 'locked') { + setIcon(); refreshBadgeAndMenu(); } - else if (msg.command === 'loggedIn') { - setIcon(false); - } else if (msg.command === 'syncCompleted' && msg.successfully) { setTimeout(refreshBadgeAndMenu, 2000); } @@ -45,21 +42,25 @@ chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) { } }); -userService.isAuthenticated(function (isAuthenticated) { - setIcon(!isAuthenticated); -}); +setIcon(); +function setIcon() { + userService.isAuthenticated(function (isAuthenticated) { + cryptoService.getKey(false, function (key) { + var suffix = ''; + if (!isAuthenticated) { + suffix = '_gray'; + } + else if (!key) { + suffix = '_locked'; + } -function setIcon(grayedOut) { - var suffix = ''; - if (grayedOut) { - suffix = '_gray'; - } - - chrome.browserAction.setIcon({ - path: { - '19': 'images/icon19' + suffix + '.png', - '38': 'images/icon38' + suffix + '.png', - } + chrome.browserAction.setIcon({ + path: { + '19': 'images/icon19' + suffix + '.png', + '38': 'images/icon38' + suffix + '.png', + } + }); + }); }); } @@ -190,14 +191,14 @@ function loadMenuAndUpdateBadge(url, tabId, loadContextMenuOptions) { }); } else { - loadNoSitesContextMenuOptions(); + loadNoSitesContextMenuOptions(i18nService.noMatchingSites); chrome.browserAction.setBadgeText({ text: '', tabId: tabId }); } }, function () { - loadNoSitesContextMenuOptions(); + loadNoSitesContextMenuOptions(i18nService.vaultLocked); chrome.browserAction.setBadgeText({ text: '', tabId: tabId @@ -334,8 +335,8 @@ function loadSiteContextMenuOptions(site) { loadContextMenuOptions(title, site.id, site); } -function loadNoSitesContextMenuOptions() { - loadContextMenuOptions(i18nService.noMatchingSites, 'noop', null); +function loadNoSitesContextMenuOptions(noSitesMessage) { + loadContextMenuOptions(noSitesMessage, 'noop', null); } function loadContextMenuOptions(title, idSuffix, site) { @@ -444,6 +445,7 @@ function checkLock() { if (diffSeconds >= lockOptionSeconds) { // need to lock now cryptoService.clearKey(function () { + setIcon(); folderService.clearCache(); siteService.clearCache(); refreshBadgeAndMenu(); diff --git a/src/images/icon19_locked.png b/src/images/icon19_locked.png new file mode 100644 index 0000000000000000000000000000000000000000..11c92080acdf0360c6078e1b0abb44b958b93862 GIT binary patch literal 584 zcmV-O0=NB%P)3tinJ#xC6w~fp{VdkSGG;E(Y=e$N{}T%nUND6een|B*NgTDZ%jT z&p%Yq6~ZS@dv~87oXsKCPqfA>X;a)2nMfVEaYgC zeRP`P_0)9?0^gY#M8B&uyylj`H0GH9{qvWh*S?M6 zp`Z$?H?P0^gx4UhUthq6eKPi9P+WJN;c(V+hOewV48cIdF~aP?tyc`sKYqt)nAXel zU;|ZMy%|0*aWQOt!^Uu3+>k-^%X3V_zWn^dFmeAaoQ9cmegV_JpWbKK+S|dPdu1bo z$k!K;+1u600RKa W>!YT{5&wPw0000W+J2^fzOy3MFkOp1(LlW>_O!p_D2?!f7Rc$u%Z_jMM_92 z1tI>SMJD*De5Hk;Ic?K?N^=>9^?djtWfAHNsyXTyHKKy>?@w=BvlUL&( z+eLJVNJbQj<*^Z>dZODzHRhW(KvmUAo+aFvBb$FcH8qa`Lf zK|PkfN}$X}S<! zJ#sycBt}3g3Rn`i#Dxa|31;MjbV=_^h zmJG~f`LPjhPYq<4HKL^H2lO*W8X+t7CL~HikR%Z~HV-`qWZ6Y7>A$7!z#5kur;tXur)A8GmzyRjISGqy66_PZ_C;Lk|_f&7=uw6a~ORg z(T;(!JGm1(wLOz+x{-Y6CPqf*(;Oe7Br0Vs3s=7Fl>Ja@r)TiTFzcD5esU0bHTm%6 zp!mWN_-u)XP7-HnbD*=7m0hrQl416#bshoB{PGn3`U$oieCRBqs|Fz`c!$cMxhU~Wt$h=8=KPO!G|vQ_c6LUZ&Y;PZdL-k_>S+# zDN+&gcWeSv)xdrOpr-HdK}o?qNQbqM{--YuCzB?xcIb^GHEIK{r^mt1i*L1_rql-? z*RtvJnbas8O_D;983RMVVrh@0x}IM+|Kbydw9_{8`TenC6lcqDj6fN+8keD*J}VWY zlQ>7<+Q>3rG|7DgxV$e0;&r|&bBL=a^|<)58BgkZ*jF`MW;B}I22(rR$wDh+Z=o88VX>bWmIPMcDr!BB