DownloaderService: only broadcast progress when it actually changes
On a slow download, this could send like 100+ updates even though no more data had been received. closes #1742
This commit is contained in:
		
							parent
							
								
									d794c5a77c
								
							
						
					
					
						commit
						04298f8886
					
				@ -204,10 +204,16 @@ public abstract class Downloader {
 | 
				
			|||||||
     * Send progress updates on a timer to avoid flooding receivers with pointless events.
 | 
					     * Send progress updates on a timer to avoid flooding receivers with pointless events.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private final TimerTask progressTask = new TimerTask() {
 | 
					    private final TimerTask progressTask = new TimerTask() {
 | 
				
			||||||
 | 
					        private long lastBytesRead = Long.MIN_VALUE;
 | 
				
			||||||
 | 
					        private long lastTotalBytes = Long.MIN_VALUE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        @Override
 | 
					        @Override
 | 
				
			||||||
        public void run() {
 | 
					        public void run() {
 | 
				
			||||||
            if (downloaderProgressListener != null) {
 | 
					            if (downloaderProgressListener != null
 | 
				
			||||||
 | 
					                    && (bytesRead != lastBytesRead || totalBytes != lastTotalBytes)) {
 | 
				
			||||||
                downloaderProgressListener.onProgress(bytesRead, totalBytes);
 | 
					                downloaderProgressListener.onProgress(bytesRead, totalBytes);
 | 
				
			||||||
 | 
					                lastBytesRead = bytesRead;
 | 
				
			||||||
 | 
					                lastTotalBytes = totalBytes;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user