Make avatar image only visible after it has been successfully loaded
This avoids showing empty image frames while avatar images are loading. Such an empty frame is especially annoying if there is no avatar image for a user, since then the empty frame is shown and disappears a moment later. Change-Id: Ib431f5d1a2bada9de0207f6ac8cf655400cf35f7 Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
		
				
					committed by
					
						
						Edwin Kempin
					
				
			
			
				
	
			
			
			
						parent
						
							920d7c7dd4
						
					
				
				
					commit
					8cf7801d9c
				
			@@ -17,8 +17,8 @@ package com.google.gerrit.client;
 | 
				
			|||||||
import com.google.gerrit.client.account.AccountInfo;
 | 
					import com.google.gerrit.client.account.AccountInfo;
 | 
				
			||||||
import com.google.gerrit.client.changes.Util;
 | 
					import com.google.gerrit.client.changes.Util;
 | 
				
			||||||
import com.google.gerrit.client.rpc.RestApi;
 | 
					import com.google.gerrit.client.rpc.RestApi;
 | 
				
			||||||
import com.google.gwt.event.dom.client.ErrorEvent;
 | 
					import com.google.gwt.event.dom.client.LoadEvent;
 | 
				
			||||||
import com.google.gwt.event.dom.client.ErrorHandler;
 | 
					import com.google.gwt.event.dom.client.LoadHandler;
 | 
				
			||||||
import com.google.gwt.event.dom.client.MouseOutEvent;
 | 
					import com.google.gwt.event.dom.client.MouseOutEvent;
 | 
				
			||||||
import com.google.gwt.event.dom.client.MouseOutHandler;
 | 
					import com.google.gwt.event.dom.client.MouseOutHandler;
 | 
				
			||||||
import com.google.gwt.event.dom.client.MouseOverEvent;
 | 
					import com.google.gwt.event.dom.client.MouseOverEvent;
 | 
				
			||||||
@@ -59,18 +59,17 @@ public class AvatarImage extends Image {
 | 
				
			|||||||
  public AvatarImage(AccountInfo account, int size, boolean addPopup) {
 | 
					  public AvatarImage(AccountInfo account, int size, boolean addPopup) {
 | 
				
			||||||
    super(isGerritServer(account) ? getGerritServerAvatarUrl() :
 | 
					    super(isGerritServer(account) ? getGerritServerAvatarUrl() :
 | 
				
			||||||
        url(account.email(), size));
 | 
					        url(account.email(), size));
 | 
				
			||||||
 | 
					    setVisible(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (size > 0) {
 | 
					    if (size > 0) {
 | 
				
			||||||
      // If the provider does not resize the image, force it in the browser.
 | 
					      // If the provider does not resize the image, force it in the browser.
 | 
				
			||||||
      setSize(size + "px", size + "px");
 | 
					      setSize(size + "px", size + "px");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    addErrorHandler(new ErrorHandler() {
 | 
					    addLoadHandler(new LoadHandler() {
 | 
				
			||||||
      @Override
 | 
					      @Override
 | 
				
			||||||
      public void onError(ErrorEvent event) {
 | 
					      public void onLoad(LoadEvent event) {
 | 
				
			||||||
        // We got a 404, don't bother showing the image. Either the user doesn't
 | 
					        setVisible(true);
 | 
				
			||||||
        // have an avatar or there is no avatar provider plugin installed.
 | 
					 | 
				
			||||||
        setVisible(false);
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user