package org.aisen.wen.component.bitmaploader.download;
import android.os.Handler;
import android.os.Message;
public abstract class DownloadProcess {
private Handler mHandler;
public DownloadProcess() {
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
receiveLength(Long.parseLong(msg.obj.toString()));
break;
case 1:
receiveProgress(Long.parseLong(msg.obj.toString()));
break;
case 2:
Object[] tag = (Object[]) msg.obj;
prepareDownload(tag[0].toString());
break;
case 3:
finishedDownload((byte[]) msg.obj);
break;
case 4:
downloadFailed((Exception) msg.obj);
break;
}
}
};
}
public void sendLength(int length) {
Message msg = mHandler.obtainMessage();
msg.what = 0;
msg.obj = length;
msg.sendToTarget();
}
public void sendProgress(long progress) {
Message msg = mHandler.obtainMessage();
msg.what = 1;
msg.obj = progress;
msg.sendToTarget();
}
void sendPrepareDownload(String url) {
Message msg = mHandler.obtainMessage();
msg.what = 2;
msg.obj = new Object[] { url };
msg.sendToTarget();
}
public void sendFinishedDownload(byte[] bytes) {
Message msg = mHandler.obtainMessage();
msg.what = 3;
msg.obj = bytes;
msg.sendToTarget();
}
void sendException(Exception e) {
Message msg = mHandler.obtainMessage();
msg.what = 4;
msg.obj = e;
msg.sendToTarget();
}
public void receiveLength(long length) {;
}
public void receiveProgress(long progressed) {
};
public void prepareDownload(String url) {;
}
public void finishedDownload(byte[] bytes) {;
}
public void downloadFailed(Exception e) {;
}
}