Don't automatically go out to the internet...

This commit is contained in:
Bradlee Speice 2015-01-02 17:11:13 -05:00
parent 4b9c146248
commit cae1ee584e
3 changed files with 27 additions and 16 deletions

View File

@ -3,9 +3,7 @@ package org.bspeice.minimalbible.activity.downloader;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -33,6 +31,7 @@ import javax.inject.Inject;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.InjectView; import butterknife.InjectView;
import butterknife.OnItemSelected; import butterknife.OnItemSelected;
import dagger.Lazy;
import rx.Observable; import rx.Observable;
import rx.android.schedulers.AndroidSchedulers; import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1; import rx.functions.Action1;
@ -52,7 +51,7 @@ public class BookListFragment extends BaseFragment {
@Inject @Inject
DownloadPrefs downloadPrefs; DownloadPrefs downloadPrefs;
@Inject @Inject
RefreshManager refreshManager; Lazy<RefreshManager> refreshManager;
@Inject @Inject
LocaleManager localeManager; LocaleManager localeManager;
@ -143,14 +142,29 @@ public class BookListFragment extends BaseFragment {
); );
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
languagesSpinner.setAdapter(adapter); languagesSpinner.setAdapter(adapter);
Drawable d = languagesSpinner.getBackground();
Log.d("Spinner", d.toString()); // Use Object to avoid the incredibly long type parameters
refreshManager.get().getAvailableModules()
.subscribe(new Action1<Object>() {
@Override
public void call(Object o) {
}
},
new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
Toast.makeText(getActivity(),
getString(R.string.error_book_refresh),
Toast.LENGTH_SHORT)
.show();
}
});
} }
@SuppressWarnings("unused") @SuppressWarnings("unused")
@OnItemSelected(R.id.spn_available_languages) @OnItemSelected(R.id.spn_available_languages)
public void onClick(final int position) { public void onClick(final int position) {
booksByLanguage(refreshManager.getFlatModules(), booksByLanguage(refreshManager.get().getFlatModules(),
availableLanguages.get(position), availableLanguages.get(position),
bookCategory) bookCategory)
// Repack all the books // Repack all the books
@ -231,6 +245,7 @@ public class BookListFragment extends BaseFragment {
downloadPrefs.hasEnabledDownload(true); downloadPrefs.hasEnabledDownload(true);
// And warn them that it has been enabled in the future. // And warn them that it has been enabled in the future.
// TODO: Migrate to strings.xml
showToast("Downloading now enabled. Disable in settings"); showToast("Downloading now enabled. Disable in settings");
fragment.displayModules(); fragment.displayModules();
} }
@ -238,6 +253,7 @@ public class BookListFragment extends BaseFragment {
void buttonNegative() { void buttonNegative() {
// Clicked to not download - Permanently disable downloading // Clicked to not download - Permanently disable downloading
downloadPrefs.hasEnabledDownload(false); downloadPrefs.hasEnabledDownload(false);
// TODO: Migrate to strings.xml
showToast("Disabling downloading. Re-enable it in settings."); showToast("Disabling downloading. Re-enable it in settings.");
fragment.getActivity().finish(); fragment.getActivity().finish();
} }

View File

@ -1,7 +1,6 @@
package org.bspeice.minimalbible.activity.downloader.manager package org.bspeice.minimalbible.activity.downloader.manager
import org.crosswire.jsword.book.install.Installer import org.crosswire.jsword.book.install.Installer
import java.util.concurrent.atomic.AtomicBoolean
import rx.Observable import rx.Observable
import org.crosswire.jsword.book.Book import org.crosswire.jsword.book.Book
import rx.schedulers.Schedulers import rx.schedulers.Schedulers
@ -19,12 +18,12 @@ class RefreshManager(val installers: Collection<Installer>,
val exclude: List<String>, val exclude: List<String>,
val prefs: DownloadPrefs, val prefs: DownloadPrefs,
val connManager: ConnectivityManager?) { val connManager: ConnectivityManager?) {
val refreshComplete = AtomicBoolean()
val availableModules: Observable<Map<Installer, List<Book>>> = val availableModules: Observable<Map<Installer, List<Book>>> =
Observable.from(installers) Observable.from(installers)
.map { .map {
if (doReload()) { if (doReload()) {
it.reloadBookList() // TODO: Handle InstallException it.reloadBookList()
prefs.downloadRefreshedOn(Date().getTime()) prefs.downloadRefreshedOn(Date().getTime())
} }
val validBooks = it.getBooks() val validBooks = it.getBooks()
@ -45,12 +44,6 @@ class RefreshManager(val installers: Collection<Installer>,
BookComparators.getInitialComparator().compare(book1, book2) BookComparators.getInitialComparator().compare(book1, book2)
}; };
// Constructor - Split from the value creation because `subscribe` returns
// the subscriber object, not the underlying value
{
availableModules.subscribe({}, {}, { refreshComplete set true })
}
val fifteenDaysAgo = Calendar.getInstance().getTime().getTime() - 1296000 val fifteenDaysAgo = Calendar.getInstance().getTime().getTime() - 1296000
fun doReload(downloadEnabled: Boolean, lastUpdated: Long, fun doReload(downloadEnabled: Boolean, lastUpdated: Long,

View File

@ -6,7 +6,9 @@
<string name="navigation_drawer_close">Close navigation drawer</string> <string name="navigation_drawer_close">Close navigation drawer</string>
<string name="action_settings">Settings</string> <string name="action_settings">Settings</string>
<string name="activity_downloader">Downloads</string> <string name="activity_downloader">Downloads</string>
<string name="book_removal_failure">Could not remove book. Try restarting application?</string> <string name="book_removal_failure">Could not remove, please restart application</string>
<string name="action_download_title_categories">Categories</string> <string name="action_download_title_categories">Categories</string>
<string name="error_book_refresh">Error refreshing. Try again later</string>
</resources> </resources>