/*
ShengDao Android Client, DownLoadCallback
Copyright (c) 2014 ShengDao Tech Company Limited
*/
package cn.rongcloud.im.server.network.download;
import android.os.Handler;
import android.os.Message;
public class DownLoadCallback extends Handler {
protected static final int START_MESSAGE = 0;
protected static final int ADD_MESSAGE = 1;
protected static final int PROGRESS_MESSAGE = 2;
protected static final int SUCCESS_MESSAGE = 3;
protected static final int FAILURE_MESSAGE = 4;
protected static final int FINISH_MESSAGE = 5;
protected static final int STOP_MESSAGE = 6;
public void onStart() {
}
public void onAdd(String url, Boolean isInterrupt) {
}
public void onLoading(String url, int bytesWritten, int totalSize) {
}
public void onSuccess(String url, String filePath) {
}
public void onFailure(String url, String strMsg) {
}
public void onFinish(String url) {
}
public void onStop() {
}
@Override
public void handleMessage(Message msg) {
Object[] response = null;
switch (msg.what) {
case START_MESSAGE:
onStart();
break;
case ADD_MESSAGE:
response = (Object[]) msg.obj;
onAdd((String) response[0], (Boolean) response[1]);
break;
case PROGRESS_MESSAGE:
response = (Object[]) msg.obj;
onLoading((String) response[0], (Integer) response[1], (Integer) response[2]);
break;
case SUCCESS_MESSAGE:
response = (Object[]) msg.obj;
onSuccess((String) response[0], (String) response[1]);
break;
case FAILURE_MESSAGE:
response = (Object[]) msg.obj;
onFailure((String) response[0], (String) response[1]);
break;
case FINISH_MESSAGE:
response = (Object[]) msg.obj;
onFinish((String) response[0]);
break;
case STOP_MESSAGE:
onStop();
break;
}
}
protected void sendSuccessMessage(String url, String path) {
sendMessage(obtainMessage(SUCCESS_MESSAGE, new Object[] { url, path }));
}
protected void sendLoadMessage(String url, int bytesWritten, int totalSize) {
sendMessage(obtainMessage(PROGRESS_MESSAGE, new Object[] { url, bytesWritten, totalSize}));
}
protected void sendAddMessage(String url, Boolean isInterrupt) {
sendMessage(obtainMessage(ADD_MESSAGE, new Object[] { url, isInterrupt }));
}
protected void sendFailureMessage(String url, String strMsg) {
sendMessage(obtainMessage(FAILURE_MESSAGE, new Object[] { url, strMsg }));
}
protected void sendStartMessage() {
sendMessage(obtainMessage(START_MESSAGE, null));
}
protected void sendStopMessage() {
sendMessage(obtainMessage(STOP_MESSAGE, null));
}
protected void sendFinishMessage(String url) {
sendMessage(obtainMessage(FINISH_MESSAGE, new Object[] { url }));
}
}