📄 updateautodownloader.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: UpdateAutoDownloader.java
package org.gudy.azureus2.ui.swt.update;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import org.gudy.azureus2.core3.util.AEThread;
import org.gudy.azureus2.plugins.update.Update;
import org.gudy.azureus2.plugins.utils.resourcedownloader.*;
public class UpdateAutoDownloader
implements ResourceDownloaderListener
{
public static interface cbCompletion
{
public abstract void allUpdatesComplete(boolean flag, boolean flag1);
}
private final Update updates[];
private ArrayList downloaders;
private Iterator iterDownloaders;
private final cbCompletion completionCallback;
public UpdateAutoDownloader(Update updates[], cbCompletion completionCallback)
{
this.updates = updates;
this.completionCallback = completionCallback;
downloaders = new ArrayList();
start();
}
private void start()
{
for (int i = 0; i < updates.length; i++)
{
Update update = updates[i];
ResourceDownloader rds[] = update.getDownloaders();
for (int j = 0; j < rds.length; j++)
{
ResourceDownloader rd = rds[j];
downloaders.add(rd);
}
}
iterDownloaders = downloaders.iterator();
nextUpdate();
}
private boolean nextUpdate()
{
if (iterDownloaders.hasNext())
{
ResourceDownloader downloader = (ResourceDownloader)iterDownloaders.next();
downloader.addListener(this);
downloader.asyncDownload();
return true;
} else
{
return false;
}
}
private void allDownloadsComplete()
{
boolean bRequiresRestart = false;
boolean bHadMandatoryUpdates = false;
for (int i = 0; i < updates.length; i++)
{
Update update = updates[i];
if (update.getDownloaders().length <= 0)
continue;
if (update.getRestartRequired() != 1)
bRequiresRestart = true;
if (update.isMandatory())
bHadMandatoryUpdates = true;
}
completionCallback.allUpdatesComplete(bRequiresRestart, bHadMandatoryUpdates);
}
public boolean completed(ResourceDownloader downloader, InputStream data)
{
downloader.removeListener(this);
if (!nextUpdate())
{
AEThread thread = new AEThread("AllDownloadsComplete", true) {
final UpdateAutoDownloader this$0;
public void runSupport()
{
allDownloadsComplete();
}
{
this$0 = UpdateAutoDownloader.this;
super(x0, x1);
}
};
thread.start();
}
return true;
}
public void failed(ResourceDownloader downloader, ResourceDownloaderException e)
{
downloader.removeListener(this);
iterDownloaders.remove();
nextUpdate();
}
public void reportActivity(ResourceDownloader resourcedownloader, String s)
{
}
public void reportAmountComplete(ResourceDownloader resourcedownloader, long l)
{
}
public void reportPercentComplete(ResourceDownloader resourcedownloader, int i)
{
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -