Progress is working fine for most books

Still seeing some strange issues, need to do some investigation...
This commit is contained in:
Bradlee Speice 2014-05-24 22:34:55 -04:00
parent 6191943d3f
commit 7558fc7f20
3 changed files with 16 additions and 4 deletions

View File

@ -52,12 +52,12 @@ public class BookItemHolder {
if (dlProgressEvent != null) { if (dlProgressEvent != null) {
displayProgress((int) dlProgressEvent.toCircular()); displayProgress((int) dlProgressEvent.toCircular());
} }
downloadManager.getDownloadBus().register(this);
// TODO: Display a remove icon if the book has been downloaded. // TODO: Display a remove icon if the book has been downloaded.
} }
@OnClick(R.id.download_ibtn_download) @OnClick(R.id.download_ibtn_download)
public void onDownloadItem(View v) { public void onDownloadItem(View v) {
downloadManager.getDownloadBus().register(this);
bookDownloadManager.installBook(this.b); bookDownloadManager.installBook(this.b);
} }
@ -117,4 +117,8 @@ public class BookItemHolder {
downloadProgress.setVisibility(View.GONE); downloadProgress.setVisibility(View.GONE);
} }
} }
public void onScrollOffscreen() {
downloadManager.getDownloadBus().unregister(this);
}
} }

View File

@ -3,6 +3,7 @@ package org.bspeice.minimalbible.activities.downloader;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import org.bspeice.minimalbible.R; import org.bspeice.minimalbible.R;
@ -13,7 +14,7 @@ import java.util.List;
/** /**
* Adapter to inflate list_download_items.xml * Adapter to inflate list_download_items.xml
*/ */
public class BookListAdapter extends BaseAdapter { public class BookListAdapter extends BaseAdapter implements AbsListView.RecyclerListener {
private List<Book> bookList; private List<Book> bookList;
private LayoutInflater inflater; private LayoutInflater inflater;
@ -53,4 +54,11 @@ public class BookListAdapter extends BaseAdapter {
viewHolder.bindHolder(); viewHolder.bindHolder();
return convertView; return convertView;
} }
@Override
public void onMovedToScrapHeap(View view) {
BookItemHolder holder = (BookItemHolder) view.getTag();
holder.onScrollOffscreen();
}
} }

View File

@ -9,8 +9,8 @@ import org.bspeice.minimalbible.MinimalBible;
import org.bspeice.minimalbible.MinimalBibleModules; import org.bspeice.minimalbible.MinimalBibleModules;
import org.bspeice.minimalbible.R; import org.bspeice.minimalbible.R;
import org.bspeice.minimalbible.activities.downloader.BookItemHolder; import org.bspeice.minimalbible.activities.downloader.BookItemHolder;
import org.bspeice.minimalbible.activities.downloader.manager.DLProgressEvent;
import org.bspeice.minimalbible.activities.downloader.manager.DownloadManager; import org.bspeice.minimalbible.activities.downloader.manager.DownloadManager;
import org.bspeice.minimalbible.activities.downloader.manager.DownloadProgressEvent;
import org.crosswire.jsword.book.Book; import org.crosswire.jsword.book.Book;
import org.crosswire.jsword.book.install.Installer; import org.crosswire.jsword.book.install.Installer;
@ -54,7 +54,7 @@ public class DownloadActivityTest extends InstrumentationTestCase {
BookItemHolder holder = new BookItemHolder(dummyView, testBook); BookItemHolder holder = new BookItemHolder(dummyView, testBook);
dm.getDownloadBus().register(new Object() { dm.getDownloadBus().register(new Object() {
public void onEvent(DownloadProgressEvent event) { public void onEvent(DLProgressEvent event) {
Log.d("testInitial", Integer.toString(event.getProgress())); Log.d("testInitial", Integer.toString(event.getProgress()));
if (event.getProgress() == 0) { if (event.getProgress() == 0) {
signal.countDown(); signal.countDown();