package com.ccxt.whl.activity;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.ccxt.whl.R;
import com.easemob.chat.EMChatConfig;
import com.easemob.chat.EMChatManager;
import com.easemob.chat.FileMessageBody;
import com.easemob.cloud.CloudOperationCallback;
import com.easemob.cloud.HttpFileManager;
import com.easemob.util.FileUtils;
public class ShowNormalFileActivity extends BaseActivity {
private ProgressBar progressBar;
private File file;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_show_file);
progressBar = (ProgressBar) findViewById(R.id.progressBar);
final FileMessageBody messageBody = getIntent().getParcelableExtra("msgbody");
file = new File(messageBody.getLocalUrl());
//set head map
final Map<String, String> maps = new HashMap<String, String>();
//maps.put("Authorization", "Bearer " + EMChatConfig.getInstance().AccessToken);
maps.put("Authorization", "Bearer " + EMChatManager.getInstance().getAccessToken());
if (!TextUtils.isEmpty(messageBody.getSecret())) {
maps.put("share-secret", messageBody.getSecret());
}
maps.put("Accept", "application/octet-stream");
//下载文件
new Thread(new Runnable() {
public void run() {
HttpFileManager fileManager = new HttpFileManager(ShowNormalFileActivity.this, EMChatConfig.getInstance().getStorageUrl());
fileManager.downloadFile(messageBody.getRemoteUrl(), messageBody.getLocalUrl(), EMChatConfig.getInstance().APPKEY,maps,
new CloudOperationCallback() {
@Override
public void onSuccess(String result) {
runOnUiThread(new Runnable() {
public void run() {
FileUtils.openFile(file, ShowNormalFileActivity.this);
finish();
}
});
}
@Override
public void onProgress(final int progress) {
runOnUiThread(new Runnable() {
public void run() {
progressBar.setProgress(progress);
}
});
}
@Override
public void onError(final String msg) {
runOnUiThread(new Runnable() {
public void run() {
if(file != null && file.exists())
file.delete();
Toast.makeText(ShowNormalFileActivity.this, "下载文件失败: "+msg, 0).show();
finish();
}
});
}
});
}
}).start();
}
}