mirror of
https://github.com/mihonapp/mihon.git
synced 2024-11-21 20:47:03 -05:00
Minor changes
This commit is contained in:
parent
95581007df
commit
9407d9b4f5
3 changed files with 30 additions and 32 deletions
|
@ -61,23 +61,13 @@ public class Page implements NetworkHelper.ProgressListener {
|
|||
|
||||
public void setStatus(int status) {
|
||||
this.status = status;
|
||||
if (statusSubject != null)
|
||||
statusSubject.onNext(status);
|
||||
notifyStatus();
|
||||
}
|
||||
|
||||
public int getProgress() {
|
||||
return progress;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Page{" +
|
||||
"pageNumber=" + pageNumber +
|
||||
", url='" + url + '\'' +
|
||||
", imageUrl='" + imageUrl + '\'' +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(long bytesRead, long contentLength, boolean done) {
|
||||
progress = (int) ((100 * bytesRead) / contentLength);
|
||||
|
@ -85,6 +75,12 @@ public class Page implements NetworkHelper.ProgressListener {
|
|||
|
||||
public void setStatusSubject(BehaviorSubject<Integer> subject) {
|
||||
this.statusSubject = subject;
|
||||
notifyStatus();
|
||||
}
|
||||
|
||||
private void notifyStatus() {
|
||||
if (statusSubject != null)
|
||||
statusSubject.onNext(status);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -71,7 +71,6 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> {
|
|||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
EventBus.getDefault().removeStickyEvent(SourceChapterEvent.class);
|
||||
source.savePageList(chapter.url, pageList);
|
||||
saveChapter();
|
||||
super.onDestroy();
|
||||
|
@ -79,14 +78,13 @@ public class ReaderPresenter extends BasePresenter<ReaderActivity> {
|
|||
|
||||
@EventBusHook
|
||||
public void onEventMainThread(SourceChapterEvent event) {
|
||||
if (source == null || chapter == null) {
|
||||
source = event.getSource();
|
||||
chapter = event.getChapter();
|
||||
if (chapter.last_page_read != 0)
|
||||
currentPage = chapter.last_page_read;
|
||||
source = event.getSource();
|
||||
chapter = event.getChapter();
|
||||
if (chapter.last_page_read != 0 && !chapter.read)
|
||||
currentPage = chapter.last_page_read;
|
||||
|
||||
start(1);
|
||||
}
|
||||
start(1);
|
||||
EventBus.getDefault().removeStickyEvent(SourceChapterEvent.class);
|
||||
}
|
||||
|
||||
private Observable<List<Page>> getPageListObservable() {
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.davemorrissey.labs.subscaleview.ImageSource;
|
|||
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import butterknife.Bind;
|
||||
import butterknife.ButterKnife;
|
||||
|
@ -124,29 +125,32 @@ public class ReaderPageFragment extends Fragment {
|
|||
}
|
||||
|
||||
private void observeStatus() {
|
||||
if (page == null)
|
||||
if (page == null || statusSubscription != null)
|
||||
return;
|
||||
|
||||
if (page.getStatus() == Page.READY) {
|
||||
showImage();
|
||||
} else {
|
||||
BehaviorSubject<Integer> statusSubject = BehaviorSubject.create();
|
||||
page.setStatusSubject(statusSubject);
|
||||
BehaviorSubject<Integer> statusSubject = BehaviorSubject.create();
|
||||
page.setStatusSubject(statusSubject);
|
||||
|
||||
statusSubscription = statusSubject
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(this::processStatus);
|
||||
}
|
||||
statusSubscription = statusSubject
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(this::processStatus);
|
||||
}
|
||||
|
||||
private void observeProgress() {
|
||||
if (progressSubscription != null)
|
||||
return;
|
||||
|
||||
final AtomicInteger currentValue = new AtomicInteger(-1);
|
||||
|
||||
progressSubscription = Observable.interval(75, TimeUnit.MILLISECONDS)
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(tick -> {
|
||||
if (page.getProgress() != 0)
|
||||
progressText.setText(
|
||||
getString(R.string.download_progress, page.getProgress()));
|
||||
// Refresh UI only if progress change
|
||||
if (page.getProgress() != currentValue.get()) {
|
||||
currentValue.set(page.getProgress());
|
||||
progressText.setText(getString(R.string.download_progress, page.getProgress()));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue