/*
* Copyright (C) 2012 www.amsoft.cn
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.ab.http;
import java.io.File;
import android.content.Context;
import com.ab.util.AbFileUtil;
// TODO: Auto-generated Javadoc
/**
* © 2012 amsoft.cn
* 名称:AbBinaryHttpResponseListener.java
* 描述:Http文件响应监听器
*
* @author 还如一梦中
* @version v1.0
* @date:2013-11-13 上午9:00:52
*/
public abstract class AbFileHttpResponseListener extends AbHttpResponseListener{
/** 当前缓存文件. */
private File mFile;
/**
* 下载文件的构造,用默认的缓存方式.
*
* @param url the url
*/
public AbFileHttpResponseListener(String url) {
super();
}
/**
* 默认的构造.
*/
public AbFileHttpResponseListener() {
super();
}
/**
* 下载文件的构造,指定缓存文件名称.
* @param file 缓存文件名称
*/
public AbFileHttpResponseListener(File file) {
super();
this.mFile = file;
}
/**
* 描述:下载文件成功会调用这里.
*
* @param statusCode the status code
* @param file the file
*/
public void onSuccess(int statusCode,File file){};
/**
* 描述:多文件上传成功调用.
*
* @param statusCode the status code
*/
public void onSuccess(int statusCode){};
/**
* 成功消息.
*
* @param statusCode the status code
*/
public void sendSuccessMessage(int statusCode){
sendMessage(obtainMessage(AbHttpClient.SUCCESS_MESSAGE, new Object[]{statusCode}));
}
/**
* 失败消息.
*
* @param statusCode the status code
* @param error the error
*/
public void sendFailureMessage(int statusCode,Throwable error){
sendMessage(obtainMessage(AbHttpClient.FAILURE_MESSAGE, new Object[]{statusCode, error}));
}
/**
* Gets the file.
*
* @return the file
*/
public File getFile() {
return mFile;
}
/**
* Sets the file.
*
* @param file the new file
*/
public void setFile(File file) {
this.mFile = file;
try {
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
if(!file.exists()){
file.createNewFile();
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Sets the file.
*
* @param context the context
* @param name the name
*/
public void setFile(Context context,String name) {
//生成缓存文件
if(AbFileUtil.isCanUseSD()){
File file = new File(AbFileUtil.getFileDownloadDir(context) + name);
setFile(file);
}
}
}