DownloadCall.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.benyanyi.okhttp.download;
  2. import android.content.Context;
  3. import com.benyanyi.okhttp.listener.OnDownLoadObserver;
  4. import com.benyanyi.okhttp.util.FormatUtil;
  5. /**
  6. * @author YanYi
  7. * @date 2019-08-15 10:23
  8. * @email ben@yanyi.red
  9. * @overview
  10. */
  11. public class DownloadCall implements DownloadConfig {
  12. private Context mContext;
  13. private String url;
  14. private String suffix;
  15. private DownloadCall(Builder builder) {
  16. this.mContext = builder.mContext;
  17. this.url = builder.url;
  18. this.suffix = builder.suffix;
  19. }
  20. @Override
  21. public void start() {
  22. if (FormatUtil.isEmpty(this.suffix)) {
  23. DownloadManager.getInstance(mContext).download(url);
  24. } else {
  25. DownloadManager.getInstance(mContext).download(url, suffix);
  26. }
  27. }
  28. @Override
  29. public void start(OnDownLoadObserver onDownLoadObserver) {
  30. if (FormatUtil.isEmpty(this.suffix)) {
  31. DownloadManager.getInstance(mContext).download(url, onDownLoadObserver);
  32. } else {
  33. DownloadManager.getInstance(mContext).download(url, suffix, onDownLoadObserver);
  34. }
  35. }
  36. @Override
  37. public void pause() {
  38. DownloadManager.getInstance(mContext).pause(url);
  39. }
  40. @Override
  41. public void cancel() {
  42. DownloadManager.getInstance(mContext).cancel(url);
  43. }
  44. public static class Builder {
  45. private Context mContext;
  46. private String url;
  47. private String suffix;
  48. public Builder setContext(Context mContext) {
  49. this.mContext = mContext;
  50. return this;
  51. }
  52. public Builder setUrl(String url) {
  53. this.url = url;
  54. return this;
  55. }
  56. public Builder setSuffix(String suffix) {
  57. this.suffix = suffix;
  58. return this;
  59. }
  60. public DownloadConfig builder() {
  61. return new DownloadCall(this);
  62. }
  63. }
  64. }