添加timeout处理

This commit is contained in:
huangzhuanghua
2016-05-21 18:23:11 +08:00
parent 90dab2875b
commit 547f27f19b
8 changed files with 318 additions and 319 deletions

View File

@ -161,157 +161,154 @@ public class DownloadItemUtils {
downloadEntry.getMeta().get("platform"));
switch (downloadEntry.getStatus()) {
case downloading:
if (!"pause".equals(statusMap.get(downloadEntry.getUrl()))) {
if (isShowPlatform) {
if (platform == null) {
case downloading:
if (!"pause".equals(statusMap.get(downloadEntry.getUrl()))) {
if (isShowPlatform) {
if (platform == null) {
download_speed
.setText(SpeedUtils
.getSpeed(downloadEntry
.getSpeed())
+ "(剩"
+ SpeedUtils.getRemainTime(
downloadEntry
.getSize(),
downloadEntry
.getProgress(),
downloadEntry
.getSpeed() * 1024)
+ ")");
} else {
download_speed
.setText(platform
+ " - "
+ SpeedUtils
.getSpeed(downloadEntry
.getSpeed())
+ "(剩"
+ SpeedUtils.getRemainTime(
downloadEntry
.getSize(),
downloadEntry
.getProgress(),
downloadEntry
.getSpeed() * 1024)
+ ")");
}
} else {
download_speed
.setText(SpeedUtils
.getSpeed(downloadEntry
.getSpeed())
+ "(剩"
+ SpeedUtils.getRemainTime(
downloadEntry
.getSize(),
downloadEntry
.getProgress(),
downloadEntry
.getSpeed() * 1024)
+ ")");
} else {
download_speed
.setText(platform
+ " - "
+ SpeedUtils
.getSpeed(downloadEntry
.getSpeed())
+ "(剩"
+ SpeedUtils.getRemainTime(
downloadEntry
.getSize(),
downloadEntry.getSize(),
downloadEntry
.getProgress(),
downloadEntry
.getSpeed() * 1024)
+ ")");
}
} else {
download_speed
.setText(SpeedUtils
.getSpeed(downloadEntry
.getSpeed())
+ "(剩"
+ SpeedUtils.getRemainTime(
downloadEntry.getSize(),
downloadEntry
.getProgress(),
downloadEntry
.getSpeed() * 1024)
+ ")");
}
}
download_percentage.setText(downloadEntry.getPercent() + "%");
if (entity.getApk() != null && entity.getApk().size() == 1) {
if (!"pause".equals(statusMap.get(downloadEntry.getUrl()))) {
downloadBtn.setText("暂停");
download_percentage.setText(downloadEntry.getPercent() + "%");
if (entity.getApk() != null && entity.getApk().size() == 1) {
if (!"pause".equals(statusMap.get(downloadEntry.getUrl()))) {
downloadBtn.setText("暂停");
downloadBtn.setBackgroundResource(R.drawable.textview_gray_style);
downloadBtn.setTextColor(0xFF999999);
}
} else {
downloadBtn.setText("下载");
downloadBtn.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
}
break;
case waiting:
if (isShowPlatform) {
if (platform == null) {
download_speed.setText("等待");
} else {
download_speed.setText(platform + " - 等待");
}
} else {
download_speed.setText("等待");
}
download_percentage.setText(downloadEntry.getPercent() + "%");
if (entity.getApk() != null && entity.getApk().size() == 1) {
downloadBtn.setText("等待");
downloadBtn.setBackgroundResource(R.drawable.textview_gray_style);
downloadBtn.setTextColor(0xFF999999);
}
} else {
downloadBtn.setText("下载");
downloadBtn.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
}
break;
case waiting:
if (isShowPlatform) {
if (platform == null) {
download_speed.setText("等待");
} else {
download_speed.setText(platform + " - 等待");
downloadBtn.setText("下载");
downloadBtn.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
}
} else {
download_speed.setText("等待");
}
download_percentage.setText(downloadEntry.getPercent() + "%");
if (entity.getApk() != null && entity.getApk().size() == 1) {
downloadBtn.setText("等待");
downloadBtn.setBackgroundResource(R.drawable.textview_gray_style);
downloadBtn.setTextColor(0xFF999999);
} else {
downloadBtn.setText("下载");
downloadBtn.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
}
break;
case done:
if (isShowPlatform) {
if (platform == null) {
break;
case done:
if (isShowPlatform) {
if (platform == null) {
download_speed.setText("下载完成");
} else {
download_speed.setText(platform + " - 下载完成");
}
} else {
download_speed.setText("下载完成");
} else {
download_speed.setText(platform + " - 下载完成");
}
} else {
download_speed.setText("下载完成");
}
download_percentage.setText("100%");
if (entity.getApk() != null
&& entity.getApk().size() == 1) {
EventBus.getDefault().post(
new EBPutUrl(entity.getApk().get(0)
.getPackageName(), downloadEntry
.getUrl()));
downloadBtn.setText("安装");
downloadBtn
.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
} else {
download_percentage.setText("100%");
if (entity.getApk() != null
&& entity.getApk().size() == 1) {
EventBus.getDefault().post(
new EBPutUrl(entity.getApk().get(0)
.getPackageName(), downloadEntry
.getUrl()));
downloadBtn.setText("安装");
downloadBtn
.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
} else {
labelList.setVisibility(View.VISIBLE);
game_progressbar.setVisibility(View.GONE);
game_ll_info.setVisibility(View.GONE);
downloadBtn.setText("下载");
downloadBtn
.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
}
break;
case pause:
case timeout:
case neterror:
if (isShowPlatform) {
if (platform == null) {
download_speed.setText("暂停");
} else {
download_speed.setText(platform + " - 暂停");
}
} else {
download_speed.setText("暂停");
}
download_percentage.setText(downloadEntry.getPercent() + "%");
if (entity.getApk() != null && entity.getApk().size() == 1) {
downloadBtn.setText("继续");
downloadBtn.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
} else {
downloadBtn.setText("下载");
downloadBtn.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
}
break;
case cancel:
case hijack:
labelList.setVisibility(View.VISIBLE);
game_progressbar.setVisibility(View.GONE);
game_ll_info.setVisibility(View.GONE);
downloadBtn.setText("下载");
downloadBtn
.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
}
break;
case pause:
case neterror:
if (isShowPlatform) {
if (platform == null) {
download_speed.setText("暂停");
} else {
download_speed.setText(platform + " - 暂停");
}
} else {
download_speed.setText("暂停");
}
download_percentage.setText(downloadEntry.getPercent()
+ "%");
if (entity.getApk() != null
&& entity.getApk().size() == 1) {
downloadBtn.setText("继续");
downloadBtn
.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
} else {
downloadBtn.setText("下载");
downloadBtn
.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
}
break;
case cancel:
case hijack:
labelList.setVisibility(View.VISIBLE);
game_progressbar.setVisibility(View.GONE);
game_ll_info.setVisibility(View.GONE);
downloadBtn.setText("下载");
downloadBtn.setBackgroundResource(R.drawable.textview_blue_style);
downloadBtn.setTextColor(0xFFFFFFFF);
break;
default:
break;
break;
default:
break;
}
game_progressbar.setProgress((int) (downloadEntry
.getPercent() * 10));

View File

@ -1031,53 +1031,36 @@ public class DownloadDialog {
.setProgress((int) (downloadEntry.getPercent() * 10));
Utils.log("download status = " + downloadEntry.getStatus());
switch (downloadEntry.getStatus()) {
case pause:
case neterror:
viewHolder.download_item_tv_status.setText("继续");
break;
case downloading:
if (!"pause".equals(statusMap.get(downloadEntry
.getUrl()))) {
viewHolder.download_item_tv_status
.setText(downloadEntry.getPercent() + "%");
}
break;
case done:
EventBus.getDefault().post(
new EBPutUrl(PackageUtils.getPackageNameByPath(
context, downloadEntry.getPath()),
downloadEntry.getUrl()));
viewHolder.download_item_tv_status.setText("安装");
break;
case waiting:
viewHolder.download_item_tv_status.setText("等待");
break;
case cancel:
case hijack:
int id = PlatformUtils.getInstance(context).getPlatformPic(
apkEntity.getPlatform());
if (id != 0) {
viewHolder.download_item_iv_pic
.setVisibility(View.VISIBLE);
viewHolder.download_item_iv_pic.setImageResource(id);
viewHolder.download_item_tv_hint
.setVisibility(View.GONE);
viewHolder.download_item_progressbar
.setVisibility(View.GONE);
viewHolder.download_item_tv_name
.setVisibility(View.GONE);
viewHolder.download_item_tv_status
.setVisibility(View.GONE);
viewHolder.view.setBackgroundColor(0xffffff);
} else {
String path = PlatformUtils.getInstance(context)
.getPlatformPicPath(apkEntity.getPlatform());
if (path != null) {
case pause:
case timeout:
case neterror:
viewHolder.download_item_tv_status.setText("继续");
break;
case downloading:
if (!"pause".equals(statusMap.get(downloadEntry
.getUrl()))) {
viewHolder.download_item_tv_status
.setText(downloadEntry.getPercent() + "%");
}
break;
case done:
EventBus.getDefault().post(
new EBPutUrl(PackageUtils.getPackageNameByPath(
context, downloadEntry.getPath()),
downloadEntry.getUrl()));
viewHolder.download_item_tv_status.setText("安装");
break;
case waiting:
viewHolder.download_item_tv_status.setText("等待");
break;
case cancel:
case hijack:
int id = PlatformUtils.getInstance(context).getPlatformPic(
apkEntity.getPlatform());
if (id != 0) {
viewHolder.download_item_iv_pic
.setVisibility(View.VISIBLE);
ImageUtils.getInstance(context).display(
"file://" + path,
viewHolder.download_item_iv_pic);
viewHolder.download_item_iv_pic.setImageResource(id);
viewHolder.download_item_tv_hint
.setVisibility(View.GONE);
viewHolder.download_item_progressbar
@ -1088,26 +1071,44 @@ public class DownloadDialog {
.setVisibility(View.GONE);
viewHolder.view.setBackgroundColor(0xffffff);
} else {
viewHolder.download_item_tv_hint
.setVisibility(View.VISIBLE);
viewHolder.download_item_tv_hint
.setText(PlatformUtils.getInstance(context)
.getPlatformName(
apkEntity.getPlatform()));
viewHolder.download_item_iv_pic
.setVisibility(View.GONE);
viewHolder.download_item_progressbar
.setVisibility(View.GONE);
viewHolder.download_item_tv_name
.setVisibility(View.GONE);
viewHolder.download_item_tv_status
.setVisibility(View.GONE);
viewHolder.view.setBackgroundColor(0xffffff);
String path = PlatformUtils.getInstance(context)
.getPlatformPicPath(apkEntity.getPlatform());
if (path != null) {
viewHolder.download_item_iv_pic
.setVisibility(View.VISIBLE);
ImageUtils.getInstance(context).display(
"file://" + path,
viewHolder.download_item_iv_pic);
viewHolder.download_item_tv_hint
.setVisibility(View.GONE);
viewHolder.download_item_progressbar
.setVisibility(View.GONE);
viewHolder.download_item_tv_name
.setVisibility(View.GONE);
viewHolder.download_item_tv_status
.setVisibility(View.GONE);
viewHolder.view.setBackgroundColor(0xffffff);
} else {
viewHolder.download_item_tv_hint
.setVisibility(View.VISIBLE);
viewHolder.download_item_tv_hint
.setText(PlatformUtils.getInstance(context)
.getPlatformName(
apkEntity.getPlatform()));
viewHolder.download_item_iv_pic
.setVisibility(View.GONE);
viewHolder.download_item_progressbar
.setVisibility(View.GONE);
viewHolder.download_item_tv_name
.setVisibility(View.GONE);
viewHolder.download_item_tv_status
.setVisibility(View.GONE);
viewHolder.view.setBackgroundColor(0xffffff);
}
}
}
break;
default:
break;
break;
default:
break;
}
} else {
int id = PlatformUtils.getInstance(context).getPlatformPic(

View File

@ -37,22 +37,22 @@ public class DownloadService extends Service {
DownloadEntry entry = (DownloadEntry) intent
.getSerializableExtra(Constants.KEY_DOWNLOAD_ENTRY);
switch (status) {
case add:
addDownload(entry);
break;
case pause:
case neterror:
case timeout:
pauseDownload(entry);
break;
case resume:
resumeDownload(entry);
break;
case cancel:
cancelDownload(entry);
break;
default:
break;
case add:
addDownload(entry);
break;
case pause:
case timeout:
case neterror:
pauseDownload(entry);
break;
case resume:
resumeDownload(entry);
break;
case cancel:
cancelDownload(entry);
break;
default:
break;
}
}
return super.onStartCommand(intent, flags, startId);

View File

@ -45,10 +45,7 @@ public class DownloadThread extends Thread {
}
}
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
FileOutputStream fileOutputStream = null;
FileOutputStream fileOutputStream;
if (targetFile.length() > 0) {
fileOutputStream = new FileOutputStream(entry.getPath(), true);
} else {
@ -85,9 +82,9 @@ public class DownloadThread extends Thread {
//设置自动重定向
connection.setInstanceFollowRedirects(true);
}
bis = new BufferedInputStream(connection.getInputStream());
bos = new BufferedOutputStream(fileOutputStream);
BufferedInputStream bis = new BufferedInputStream(connection.getInputStream());
BufferedOutputStream bos = new BufferedOutputStream(fileOutputStream);
long conentLength = connection.getContentLength();
String eTag = connection.getHeaderField("ETag");
if (!TextUtils.isEmpty(eTag) && eTag.startsWith("\"") && eTag.endsWith("\"")) {

View File

@ -1067,36 +1067,37 @@ public class GameDetailsActivity extends BaseFragmentActivity implements
gamedetails_progressbar
.setProgress((int) (downloadEntry.getPercent() * 10));
switch (downloadEntry.getStatus()) {
case downloading:
gamedetails_tv_per.setText(downloadEntry.getPercent() + "%");
break;
case pause:
case neterror:
gamedetails_tv_per.setText("继续");
break;
case waiting:
gamedetails_tv_per.setText("等待");
break;
case done:
EventBus.getDefault().post(
new EBPutUrl(entity.getApk().get(0).getPackageName(),
downloadEntry.getUrl()));
gamedetails_tv_per.setText("安装");
break;
case cancel:
case hijack:
gamedetails_tv_download.setVisibility(View.VISIBLE);
gamedetails_progressbar.setVisibility(View.GONE);
gamedetails_tv_per.setVisibility(View.GONE);
if (TextUtils.isEmpty(entity.getDownloadAddWord())) {
gamedetails_tv_download.setText("下载《" + entity.getName() + "");
} else {
gamedetails_tv_download.setText("下载《" + entity.getName() + ""
+ entity.getDownloadAddWord());
}
break;
default:
break;
case downloading:
gamedetails_tv_per.setText(downloadEntry.getPercent() + "%");
break;
case pause:
case timeout:
case neterror:
gamedetails_tv_per.setText("继续");
break;
case waiting:
gamedetails_tv_per.setText("等待");
break;
case done:
EventBus.getDefault().post(
new EBPutUrl(entity.getApk().get(0).getPackageName(),
downloadEntry.getUrl()));
gamedetails_tv_per.setText("安装");
break;
case cancel:
case hijack:
gamedetails_tv_download.setVisibility(View.VISIBLE);
gamedetails_progressbar.setVisibility(View.GONE);
gamedetails_tv_per.setVisibility(View.GONE);
if (TextUtils.isEmpty(entity.getDownloadAddWord())) {
gamedetails_tv_download.setText("下载《" + entity.getName() + "");
} else {
gamedetails_tv_download.setText("下载《" + entity.getName() + ""
+ entity.getDownloadAddWord());
}
break;
default:
break;
}
}

View File

@ -1188,6 +1188,7 @@ public class NewsActivity extends BaseActivity implements OnClickListener {
essaydetails_tv_per.setText(downloadEntry.getPercent() + "%");
break;
case pause:
case timeout:
case neterror:
essaydetails_tv_per.setText("继续");
break;

View File

@ -642,66 +642,67 @@ public class DownLoadManagerFragment extends Fragment {
viewHolder.dm_item_progressbar.setProgress((int) (entry
.getPercent() * 10));
switch (entry.getStatus()) {
case done:
EventBus.getDefault().post(
new EBPutUrl(PackageUtils.getPackageNameByPath(
getActivity(), entry.getPath()), entry
.getUrl()));
viewHolder.dm_item_tv_downloads.setText("下载完成");
viewHolder.dm_item_tv_startorpause
.setBackgroundResource(R.drawable.textview_blue_style);
viewHolder.dm_item_tv_startorpause.setTextColor(0xFFFFFFFF);
if (entry.getMeta().get("isPlugin") != null
&& PackageManager.isInstalled(entry.getMeta().get(
"package_name"))) {
viewHolder.dm_item_tv_startorpause.setText("插件化");
viewHolder.dm_item_tv_startorpause
.setBackgroundResource(R.drawable.textview_orange_style);
} else {
viewHolder.dm_item_tv_startorpause.setText("安装");
case done:
EventBus.getDefault().post(
new EBPutUrl(PackageUtils.getPackageNameByPath(
getActivity(), entry.getPath()), entry
.getUrl()));
viewHolder.dm_item_tv_downloads.setText("下载完成");
viewHolder.dm_item_tv_startorpause
.setBackgroundResource(R.drawable.textview_blue_style);
}
viewHolder.dm_item_tv_speed.setText("100%");
break;
case downloading:
if (!"pause".equals(statusMap.get(entry.getUrl()))) {
viewHolder.dm_item_tv_downloads.setText(SpeedUtils
.getSpeed(entry.getSpeed())
+ "(剩"
+ SpeedUtils.getRemainTime(entry.getSize(),
entry.getProgress(),
entry.getSpeed() * 1024) + ")");
viewHolder.dm_item_tv_startorpause.setTextColor(0xFFFFFFFF);
if (entry.getMeta().get("isPlugin") != null
&& PackageManager.isInstalled(entry.getMeta().get(
"package_name"))) {
viewHolder.dm_item_tv_startorpause.setText("插件化");
viewHolder.dm_item_tv_startorpause
.setBackgroundResource(R.drawable.textview_orange_style);
} else {
viewHolder.dm_item_tv_startorpause.setText("安装");
viewHolder.dm_item_tv_startorpause
.setBackgroundResource(R.drawable.textview_blue_style);
}
viewHolder.dm_item_tv_speed.setText("100%");
break;
case downloading:
if (!"pause".equals(statusMap.get(entry.getUrl()))) {
viewHolder.dm_item_tv_downloads.setText(SpeedUtils
.getSpeed(entry.getSpeed())
+ "(剩"
+ SpeedUtils.getRemainTime(entry.getSize(),
entry.getProgress(),
entry.getSpeed() * 1024) + ")");
viewHolder.dm_item_tv_startorpause
.setBackgroundResource(R.drawable.textview_gray_style);
viewHolder.dm_item_tv_startorpause
.setTextColor(0xFF999999);
viewHolder.dm_item_tv_startorpause.setText("暂停");
viewHolder.dm_item_tv_speed.setText(entry.getPercent()
+ "%");
}
break;
case waiting:
viewHolder.dm_item_tv_downloads.setText("");
viewHolder.dm_item_tv_startorpause
.setBackgroundResource(R.drawable.textview_gray_style);
viewHolder.dm_item_tv_startorpause
.setTextColor(0xFF999999);
viewHolder.dm_item_tv_startorpause.setText("暂停");
viewHolder.dm_item_tv_startorpause.setTextColor(0xFF999999);
viewHolder.dm_item_tv_startorpause.setText("等待");
viewHolder.dm_item_tv_speed.setText(entry.getPercent()
+ "%");
}
break;
case waiting:
viewHolder.dm_item_tv_downloads.setText("");
viewHolder.dm_item_tv_startorpause
.setBackgroundResource(R.drawable.textview_gray_style);
viewHolder.dm_item_tv_startorpause.setTextColor(0xFF999999);
viewHolder.dm_item_tv_startorpause.setText("等待");
viewHolder.dm_item_tv_speed.setText(entry.getPercent()
+ "%");
break;
case pause:
case neterror:
viewHolder.dm_item_tv_downloads.setText("");
viewHolder.dm_item_tv_startorpause
.setBackgroundResource(R.drawable.textview_blue_style);
viewHolder.dm_item_tv_startorpause.setTextColor(0xFFFFFFFF);
viewHolder.dm_item_tv_startorpause.setText("继续");
viewHolder.dm_item_tv_speed.setText(entry.getPercent()
+ "%");
break;
default:
break;
break;
case pause:
case timeout:
case neterror:
viewHolder.dm_item_tv_downloads.setText("");
viewHolder.dm_item_tv_startorpause
.setBackgroundResource(R.drawable.textview_blue_style);
viewHolder.dm_item_tv_startorpause.setTextColor(0xFFFFFFFF);
viewHolder.dm_item_tv_startorpause.setText("继续");
viewHolder.dm_item_tv_speed.setText(entry.getPercent()
+ "%");
break;
default:
break;
}
}
}

View File

@ -2931,27 +2931,28 @@ public class PersonalFragmentAdapter extends
viewHolder.platform_item_progressbar
.setProgress((int) (downloadEntry.getPercent() * 10));
switch (downloadEntry.getStatus()) {
case pause:
case neterror:
viewHolder.platform_item_tv_status.setText("继续");
break;
case downloading:
if (!"pause".equals(statusMap.get(downloadEntry.getUrl()))) {
viewHolder.platform_item_tv_status.setText("插件化中");
}
break;
case done:
EventBus.getDefault().post(
new EBPutUrl(PackageUtils.getPackageNameByPath(
fragmentActivity, downloadEntry.getPath()),
downloadEntry.getUrl()));
viewHolder.platform_item_tv_status.setText("插件化安装");
break;
case waiting:
viewHolder.platform_item_tv_status.setText("等待");
break;
default:
break;
case pause:
case timeout:
case neterror:
viewHolder.platform_item_tv_status.setText("继续");
break;
case downloading:
if (!"pause".equals(statusMap.get(downloadEntry.getUrl()))) {
viewHolder.platform_item_tv_status.setText("插件化中");
}
break;
case done:
EventBus.getDefault().post(
new EBPutUrl(PackageUtils.getPackageNameByPath(
fragmentActivity, downloadEntry.getPath()),
downloadEntry.getUrl()));
viewHolder.platform_item_tv_status.setText("插件化安装");
break;
case waiting:
viewHolder.platform_item_tv_status.setText("等待");
break;
default:
break;
}
}
}