Skip to content
This repository has been archived by the owner on Jan 18, 2021. It is now read-only.

Commit

Permalink
Add UI for downloading later when offline
Browse files Browse the repository at this point in the history
  • Loading branch information
winniequinn committed Dec 7, 2018
1 parent 7a18dfc commit 2c66e81
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
package org.nypl.simplified.app.catalog;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;

import com.io7m.jfunctional.None;
import com.io7m.jfunctional.Option;
Expand All @@ -13,6 +17,7 @@
import com.io7m.junreachable.UnimplementedCodeException;

import org.nypl.simplified.app.LoginDialog;
import org.nypl.simplified.app.R;
import org.nypl.simplified.books.accounts.AccountID;
import org.nypl.simplified.books.accounts.AccountType;
import org.nypl.simplified.books.accounts.AccountsDatabaseNonexistentException;
Expand Down Expand Up @@ -84,6 +89,16 @@ public CatalogAcquisitionButtonController(

@Override
public void onClick(final @Nullable View v) {
ConnectivityManager cm =
(ConnectivityManager) this.activity.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (netInfo == null || !netInfo.isConnectedOrConnecting()) {
Toast.makeText(
activity.getApplicationContext(),
activity.getResources().getString(R.string.catalog_added_for_later_download),
Toast.LENGTH_LONG
).show();
}

final AccountType account =
accountForBook(this.profiles, this.book_registry, this.id);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package org.nypl.simplified.app.catalog;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
Expand Down Expand Up @@ -514,6 +517,14 @@ public Unit onBookStatusDownloaded(final BookStatusDownloaded d) {
public Unit onBookStatusDownloadFailed(final BookStatusDownloadFailed f) {
UIThread.checkIsUIThread();

ConnectivityManager cm =
(ConnectivityManager) this.activity.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (netInfo == null || !netInfo.isConnectedOrConnecting()) {
this.onBookStatusLoaned(new BookStatusLoaned(f.getID(), None.none(), false));
return Unit.unit();
}

this.book_debug_status.setText("download failed");

this.book_download.setVisibility(View.INVISIBLE);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package org.nypl.simplified.app.catalog;

import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
Expand All @@ -12,6 +15,7 @@
import android.widget.ProgressBar;
import android.widget.TextView;

import com.io7m.jfunctional.None;
import com.io7m.jfunctional.OptionType;
import com.io7m.jfunctional.Some;
import com.io7m.jfunctional.Unit;
Expand Down Expand Up @@ -300,6 +304,14 @@ private AccountType account(final BookID book_id) {
@Override
public Unit onBookStatusDownloadFailed(final BookStatusDownloadFailed f) {

ConnectivityManager cm =
(ConnectivityManager) this.activity.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (netInfo == null || !netInfo.isConnectedOrConnecting()) {
this.onBookStatusLoaned(new BookStatusLoaned(f.getID(), None.none(), false));
return Unit.unit();
}

LOG.debug("{}: download failed", f.getID());

this.cell_book.setVisibility(View.INVISIBLE);
Expand Down
1 change: 1 addition & 0 deletions simplified-app-shared/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@
<string name="catalog_more_feed">More&#8230;</string>
<string name="catalog_requesting_loan">Requesting</string>
<string name="catalog_requesting_revoke">Requesting</string>
<string name="catalog_added_for_later_download">Added to My Books for downloading later.</string>

<!-- Catalog book detail strings -->
<string name="catalog_book_borrow">Get</string>
Expand Down

0 comments on commit 2c66e81

Please sign in to comment.