Can now browse a list of documents!

This commit is contained in:
Bradlee Speice
2014-05-05 04:07:58 -04:00
parent f228e8265e
commit 594df14a31
11 changed files with 169 additions and 19 deletions

View File

@ -0,0 +1,28 @@
package org.bspeice.minimalbible.activities.downloader;
import android.content.Context;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import org.androidannotations.annotations.EViewGroup;
import org.androidannotations.annotations.ViewById;
import org.bspeice.minimalbible.R;
import org.crosswire.jsword.book.Book;
@EViewGroup(R.layout.list_download_items)
public class BookItemView extends RelativeLayout {
@ViewById (R.id.img_download_icon) ImageView downloadIcon;
@ViewById(R.id.txt_download_item_name) TextView itemName;
@ViewById(R.id.img_download_index_downloaded) ImageView isIndexedDownloaded;
@ViewById(R.id.img_download_item_downloaded) ImageView isDownloaded;
public BookItemView (Context ctx) {
super(ctx);
}
public void bind(Book b) {
itemName.setText(b.getName());
}
}

View File

@ -0,0 +1,53 @@
package org.bspeice.minimalbible.activities.downloader;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import org.crosswire.jsword.book.Book;
import java.util.List;
/**
* Adapter to inflate list_download_items.xml
*/
public class BookListAdapter extends BaseAdapter {
private List<Book> bookList;
private Context ctx;
public BookListAdapter(Context context, List<Book> bookList) {
this.bookList = bookList;
this.ctx = context;
}
@Override
public int getCount() {
return bookList.size();
}
@Override
public Book getItem(int position) {
return bookList.get(position);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
BookItemView itemView;
if (convertView == null) {
itemView = BookItemView_.build(this.ctx);
} else {
itemView = (BookItemView) convertView;
}
itemView.bind(getItem(position));
return itemView;
}
}

View File

@ -1,15 +1,20 @@
package org.bspeice.minimalbible.activities.downloader;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.os.Build;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.widget.TextView;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;
import com.readystatesoftware.systembartint.SystemBarTintManager;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.EFragment;
import org.androidannotations.annotations.FragmentArg;
@ -38,8 +43,8 @@ public class BookListFragment extends Fragment {
@FragmentArg
BookCategory bookCategory;
@ViewById(R.id.section_label)
protected TextView tv;
@ViewById(R.id.lst_download_available)
protected ListView downloadsAvailable;
private ProgressDialog refreshDialog;
@ -47,7 +52,6 @@ public class BookListFragment extends Fragment {
@AfterViews
public void updateName() {
((DownloadActivity) getActivity()).onSectionAttached(bookCategory.toString());
tv.setText(bookCategory.toString());
displayModules();
}
@ -97,11 +101,19 @@ public class BookListFragment extends Fragment {
displayBooks(event.getBookList());
}
public static void setInsets(Activity context, View view) {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return;
SystemBarTintManager tintManager = new SystemBarTintManager(context);
SystemBarTintManager.SystemBarConfig config = tintManager.getConfig();
view.setPadding(0, config.getPixelInsetTop(true), config.getPixelInsetRight(), config.getPixelInsetBottom());
}
public void displayBooks(List<Book> bookList) {
try {
BookFilter f = FilterUtil.filterFromCategory(bookCategory);
List<Book> filteredBooks = FilterUtil.applyFilter(bookList, f);
tv.setText(filteredBooks.get(0).getName());
downloadsAvailable.setAdapter(new BookListAdapter(this.getActivity(), filteredBooks));
setInsets(getActivity(), downloadsAvailable);
} catch (FilterUtil.InvalidFilterCategoryMappingException e) {
// To be honest, there should be no reason you end up here.
Log.e(TAG, e.getMessage());