package com.gh.common.util; import android.text.TextUtils; import android.view.View; import com.gh.common.constant.Config; import com.gh.common.view.DownloadProgressBar; import com.gh.download.DownloadManager; import com.gh.gamecenter.R; import com.gh.gamecenter.adapter.viewholder.DetailViewHolder; import com.gh.gamecenter.entity.PluginLocation; import com.gh.gamecenter.manager.PackagesManager; import com.lightgame.download.DownloadEntity; /** * Created by khy on 27/06/17. * 详情下载工具类 */ public class DetailDownloadUtils { public static void detailInitDownload(DetailViewHolder viewHolder, boolean isCheck) { if (viewHolder.gameEntity != null && Config.isShowDownload(viewHolder.gameEntity.getId()) && !"光环助手".equals(viewHolder.gameEntity.getName())) { viewHolder.downloadBottom.setVisibility(View.VISIBLE); } else { viewHolder.downloadBottom.setVisibility(View.GONE); return; } if (viewHolder.gameEntity.getApk().isEmpty()) { viewHolder.mDownloadPb.setText(TextUtils.isEmpty(viewHolder.downloadOffText) ? "暂无下载" : viewHolder.downloadOffText); viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.NONE); } else { String status = GameUtils.getDownloadBtnText(viewHolder.context, viewHolder.gameEntity, PluginLocation.only_game); switch (status) { case "插件化": viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.PLUGIN); break; case "打开": case "启动": viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.LAUNCH_OR_OPEN); break; default: viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.NORMAL); break; } if (viewHolder.isNewsDetail) { viewHolder.mDownloadPb.setText(status); } else if (TextUtils.isEmpty(viewHolder.downloadAddWord)) { viewHolder.mDownloadPb.setText(String.format(status + "《%s》", viewHolder.gameEntity.getName())); } else { viewHolder.mDownloadPb.setText(String.format(status + "《%s》%s", viewHolder.gameEntity.getName(), viewHolder.downloadAddWord)); } } if (isCheck && viewHolder.gameEntity.getApk().size() == 1) { String url = viewHolder.gameEntity.getApk().get(0).getUrl(); DownloadEntity downloadEntity = DownloadManager.getInstance(viewHolder.context).getDownloadEntityByUrl(url); if (downloadEntity != null) { viewHolder.downloadEntity = downloadEntity; detailInvalidate(viewHolder); } } } public static void detailInvalidate(DetailViewHolder viewHolder) { viewHolder.mDownloadPb.setProgress((int) (viewHolder.downloadEntity.getPercent() * 10)); DownloadEntity downloadEntity = viewHolder.downloadEntity; switch (downloadEntity.getStatus()) { case downloading: case pause: viewHolder.mDownloadPb.setText(R.string.downloading); if (downloadEntity.isPluggable() && PackagesManager.INSTANCE.isInstalled(downloadEntity.getPackageName())) { viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.DOWNLOADING_PLUGIN); } else { viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.DOWNLOADING_NORMAL); } break; case timeout: case neterror: case waiting: case subscribe: viewHolder.mDownloadPb.setText(R.string.waiting); if (downloadEntity.isPluggable() && PackagesManager.INSTANCE.isInstalled(downloadEntity.getPackageName())) { viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.DOWNLOADING_PLUGIN); } else { viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.DOWNLOADING_NORMAL); } break; case done: viewHolder.mDownloadPb.setText(R.string.install); if (downloadEntity.isPluggable() && PackagesManager.INSTANCE.isInstalled(downloadEntity.getPackageName())) { viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.INSTALL_PLUGIN); } else { viewHolder.mDownloadPb.setDownloadType(DownloadProgressBar.DownloadType.INSTALL_NORMAL); } break; case cancel: case hijack: case notfound: detailInitDownload(viewHolder, false); break; default: break; } } }