Continue refactoring out static fields

This commit is contained in:
Bradlee Speice 2014-07-09 22:15:18 -04:00
parent 60ea2a6097
commit b0327dd491
4 changed files with 26 additions and 22 deletions

View File

@ -4,8 +4,11 @@ import org.bspeice.minimalbible.Injector;
import org.bspeice.minimalbible.MinimalBibleModules;
import org.bspeice.minimalbible.activity.downloader.manager.BookDownloadManager;
import org.bspeice.minimalbible.activity.downloader.manager.BookDownloadThread;
import org.bspeice.minimalbible.activity.downloader.manager.InstalledManager;
import org.bspeice.minimalbible.activity.downloader.manager.RefreshManager;
import org.crosswire.jsword.book.Book;
import org.crosswire.jsword.book.BookCategory;
import org.crosswire.jsword.book.Books;
import java.util.ArrayList;
import java.util.List;
@ -29,7 +32,8 @@ import de.devland.esperandro.Esperandro;
BookDownloadThread.class,
RefreshManager.class,
DownloadNavDrawerFragment.class,
DownloadActivity.class
DownloadActivity.class,
InstalledManager.class
},
addsTo = MinimalBibleModules.class
)
@ -70,4 +74,15 @@ public class DownloadActivityModules {
add(BookCategory.MAPS);
}};
}
//TODO: Move this to a true async
@Provides @Singleton
Books provideInstalledBooksManager() {
return Books.installed();
}
@Provides
List<Book> provideInstalledBooks(Books b) {
return b.getBooks();
}
}

View File

@ -2,6 +2,7 @@ package org.bspeice.minimalbible.activity.downloader.manager;
import android.util.Log;
import org.bspeice.minimalbible.Injector;
import org.crosswire.jsword.book.Book;
import org.crosswire.jsword.book.BookException;
import org.crosswire.jsword.book.Books;
@ -19,28 +20,18 @@ import javax.inject.Singleton;
@Singleton
public class InstalledManager implements BooksListener {
private Books installedBooks;
private List<Book> installedBooksList;
@Inject Books installedBooks;
@Inject List<Book> installedBooksList;
private String TAG = "InstalledManager";
@Inject InstalledManager() {}
/**
* Register our manager to receive events on Book install
* This is a relatively expensive operation,
* so we don't put it in the constructor.
*/
public void initialize() {
//TODO: Move this to a true async, rather than separate initialize() function
installedBooks = Books.installed();
installedBooksList = installedBooks.getBooks();
@Inject
InstalledManager(Injector injector) {
injector.inject(this);
installedBooks.addBooksListener(this);
}
public boolean isInstalled(Book b) {
if (installedBooks == null) {
initialize();
}
return installedBooksList.contains(b);
}
@ -63,9 +54,6 @@ public class InstalledManager implements BooksListener {
}
public void removeBook(Book b) {
if (installedBooks == null) {
initialize();
}
// Not sure why we need to call this multiple times, but...
while (Books.installed().getBooks().contains(b)) {
try {

View File

@ -105,7 +105,7 @@ public class BookFragment extends BaseFragment {
private void displayBook(Book b) {
Log.d("BookFragment", b.getName());
((BibleViewer)getActivity()).setActionBarTitle(b.getInitials());
mainContent.loadUrl(getString(R.string.content_page));
mainContent.loadUrl(getString(R.string.book_html));
mainContent.setWebViewClient(new WebViewClient(){
@Override
public void onPageFinished(WebView view, String url) {

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="content_page">file:///android_asset/book.html</string>
<string name="asset_url">file:///android_asset/</string>
<string name="book_html">file:///android_asset/book.html</string>
</resources>