Page.java 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package eu.kanade.mangafeed.data.models;
  2. import eu.kanade.mangafeed.data.helpers.NetworkHelper;
  3. import rx.subjects.BehaviorSubject;
  4. public class Page implements NetworkHelper.ProgressListener {
  5. private int pageNumber;
  6. private String url;
  7. private String imageUrl;
  8. private String imagePath;
  9. private transient volatile int status;
  10. private transient volatile int progress;
  11. private transient BehaviorSubject<Integer> statusSubject;
  12. public static final int QUEUE = 0;
  13. public static final int LOAD_PAGE = 1;
  14. public static final int DOWNLOAD_IMAGE = 2;
  15. public static final int READY = 3;
  16. public static final int ERROR = 4;
  17. public Page(int pageNumber, String url, String imageUrl, String imagePath) {
  18. this.pageNumber = pageNumber;
  19. this.url = url;
  20. this.imageUrl = imageUrl;
  21. this.imagePath = imagePath;
  22. }
  23. public Page(int pageNumber, String url) {
  24. this(pageNumber, url, null, null);
  25. }
  26. public int getPageNumber() {
  27. return pageNumber;
  28. }
  29. public String getUrl() {
  30. return url;
  31. }
  32. public String getImageUrl() {
  33. return imageUrl;
  34. }
  35. public void setImageUrl(String imageUrl) {
  36. this.imageUrl = imageUrl;
  37. }
  38. public String getImagePath() {
  39. return imagePath;
  40. }
  41. public void setImagePath(String imagePath) {
  42. this.imagePath = imagePath;
  43. }
  44. public int getStatus() {
  45. return status;
  46. }
  47. public void setStatus(int status) {
  48. this.status = status;
  49. notifyStatus();
  50. }
  51. public int getProgress() {
  52. return progress;
  53. }
  54. @Override
  55. public void update(long bytesRead, long contentLength, boolean done) {
  56. progress = (int) ((100 * bytesRead) / contentLength);
  57. }
  58. public void setStatusSubject(BehaviorSubject<Integer> subject) {
  59. this.statusSubject = subject;
  60. notifyStatus();
  61. }
  62. private void notifyStatus() {
  63. if (statusSubject != null)
  64. statusSubject.onNext(status);
  65. }
  66. }