simplify/deduplicate badge error logic
also correctly restore the real badge info when error is cleared
This commit is contained in:
		
							parent
							
								
									c60c764d34
								
							
						
					
					
						commit
						c00c748c1e
					
				| 
						 | 
					@ -67,13 +67,15 @@ const iconMan = (() => {
 | 
				
			||||||
      refreshIconBadgeColor();
 | 
					      refreshIconBadgeColor();
 | 
				
			||||||
      setBadgeText({text});
 | 
					      setBadgeText({text});
 | 
				
			||||||
      for (const tabId of tabMan.list()) {
 | 
					      for (const tabId of tabMan.list()) {
 | 
				
			||||||
        if (badgeOvr) {
 | 
					        if (text) {
 | 
				
			||||||
          setBadgeText({tabId, text});
 | 
					          setBadgeText({tabId, text});
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
          refreshIconBadgeText(tabId);
 | 
					          refreshIconBadgeText(tabId);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      chrome.browserAction.setTitle({title});
 | 
					      chrome.browserAction.setTitle({
 | 
				
			||||||
 | 
					        title: title && chrome.i18n.getMessage(title) || title || '',
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -209,22 +209,7 @@ const syncMan = (() => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function emitStatusChange() {
 | 
					  function emitStatusChange() {
 | 
				
			||||||
    msg.broadcastExtension({method: 'syncStatusUpdate', status});
 | 
					    msg.broadcastExtension({method: 'syncStatusUpdate', status});
 | 
				
			||||||
 | 
					    iconMan.overrideBadge(getErrorBadge());
 | 
				
			||||||
    if (status.state !== STATES.connected || !lastError || isNetworkError(lastError)) {
 | 
					 | 
				
			||||||
      iconMan.overrideBadge({});
 | 
					 | 
				
			||||||
    } else if (isGrantError(lastError)) {
 | 
					 | 
				
			||||||
      iconMan.overrideBadge({
 | 
					 | 
				
			||||||
        text: 'x',
 | 
					 | 
				
			||||||
        color: '#F00',
 | 
					 | 
				
			||||||
        title: chrome.i18n.getMessage('syncErrorRelogin'),
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
      iconMan.overrideBadge({
 | 
					 | 
				
			||||||
        text: 'x',
 | 
					 | 
				
			||||||
        color: '#F00',
 | 
					 | 
				
			||||||
        title: chrome.i18n.getMessage('syncError'),
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function isNetworkError(err) {
 | 
					  function isNetworkError(err) {
 | 
				
			||||||
| 
						 | 
					@ -237,6 +222,16 @@ const syncMan = (() => {
 | 
				
			||||||
    return false;
 | 
					    return false;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  function getErrorBadge() {
 | 
				
			||||||
 | 
					    if (status.state === STATES.connected && lastError && !isNetworkError(lastError)) {
 | 
				
			||||||
 | 
					      return {
 | 
				
			||||||
 | 
					        text: 'x',
 | 
				
			||||||
 | 
					        color: '#F00',
 | 
				
			||||||
 | 
					        title: isGrantError(lastError) ? 'syncErrorRelogin' : 'syncError',
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  function getDrive(name) {
 | 
					  function getDrive(name) {
 | 
				
			||||||
    if (name === 'dropbox' || name === 'google' || name === 'onedrive') {
 | 
					    if (name === 'dropbox' || name === 'google' || name === 'onedrive') {
 | 
				
			||||||
      return dbToCloud.drive[name]({
 | 
					      return dbToCloud.drive[name]({
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user