jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/341621 )

Change subject: Populate reading list screen with reading list items.
......................................................................


Populate reading list screen with reading list items.

Bug: T156073
Change-Id: Ib3a52cb08067f1b30d24d2add36b3ea37014c93b
---
M app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
A app/src/main/res/drawable/ic_offline_pin_black_24dp.xml
2 files changed, 66 insertions(+), 1 deletion(-)

Approvals:
  Niedzielski: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java 
b/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
index 89496d2..d7d4d52 100644
--- a/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
+++ b/app/src/main/java/org/wikipedia/readinglist/ReadingListFragment.java
@@ -7,6 +7,7 @@
 import android.support.design.widget.CollapsingToolbarLayout;
 import android.support.v4.app.Fragment;
 import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.Toolbar;
 import android.view.LayoutInflater;
@@ -15,7 +16,13 @@
 
 import org.wikipedia.R;
 import org.wikipedia.concurrency.CallbackTask;
+import org.wikipedia.readinglist.page.ReadingListPage;
+import org.wikipedia.util.ResourceUtil;
+import org.wikipedia.views.DefaultViewHolder;
+import org.wikipedia.views.DrawableItemDecoration;
+import org.wikipedia.views.PageItemView;
 
+import java.util.Collections;
 import java.util.List;
 
 import butterknife.BindView;
@@ -32,6 +39,8 @@
     private Unbinder unbinder;
 
     @Nullable private ReadingList readingList;
+    private ReadingListPageItemAdapter adapter = new 
ReadingListPageItemAdapter();
+
     @NonNull private ReadingLists readingLists = new ReadingLists();
 
     @NonNull
@@ -54,10 +63,18 @@
         
getAppCompatActivity().getSupportActionBar().setDisplayHomeAsUpEnabled(true);
         getAppCompatActivity().getSupportActionBar().setTitle("");
 
+        recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
+        recyclerView.setAdapter(adapter);
+        recyclerView.addItemDecoration(new DrawableItemDecoration(getContext(),
+                ResourceUtil.getThemedAttributeId(getContext(), 
R.attr.list_separator_drawable), true));
+
         final String readingListTitle = 
getArguments().getString(EXTRA_READING_LIST_TITLE);
         ReadingList.DAO.queryMruLists(null, new 
CallbackTask.Callback<List<ReadingList>>() {
             @Override
             public void success(List<ReadingList> lists) {
+                if (getActivity() == null) {
+                    return;
+                }
                 readingLists.set(lists);
                 readingList = readingLists.get(readingListTitle);
                 update();
@@ -74,6 +91,9 @@
     }
 
     @Override public void onDestroyView() {
+        readingList = null;
+        readingLists.set(Collections.<ReadingList>emptyList());
+        recyclerView.setAdapter(null);
         unbinder.unbind();
         unbinder = null;
         super.onDestroyView();
@@ -84,6 +104,42 @@
     }
 
     private void update() {
-        // TODO: update UI state for the current reading list.
+        adapter.notifyDataSetChanged();
+    }
+
+    private class ReadingListPageItemHolder extends 
DefaultViewHolder<PageItemView<ReadingListPage>> {
+        private ReadingListPage page;
+
+        ReadingListPageItemHolder(PageItemView<ReadingListPage> itemView) {
+            super(itemView);
+        }
+
+        void bindItem(ReadingListPage page) {
+            this.page = page;
+            getView().setItem(page);
+            getView().setActionIcon(R.drawable.ic_offline_pin_black_24dp);
+            getView().setTitle(page.title());
+            getView().setDescription(page.description());
+            getView().setImageUrl(page.thumbnailUrl());
+        }
+    }
+
+    private final class ReadingListPageItemAdapter extends 
RecyclerView.Adapter<RecyclerView.ViewHolder> {
+        @Override
+        public int getItemCount() {
+            return readingList == null ? 0 : readingList.getPages().size();
+        }
+
+        @Override
+        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, 
int type) {
+            return new ReadingListPageItemHolder(new 
PageItemView<ReadingListPage>(getContext()));
+        }
+
+        @Override
+        public void onBindViewHolder(RecyclerView.ViewHolder holder, int pos) {
+            if (readingList != null && holder instanceof 
ReadingListPageItemHolder) {
+                ((ReadingListPageItemHolder) 
holder).bindItem(readingList.getPages().get(pos));
+            }
+        }
     }
 }
diff --git a/app/src/main/res/drawable/ic_offline_pin_black_24dp.xml 
b/app/src/main/res/drawable/ic_offline_pin_black_24dp.xml
new file mode 100644
index 0000000..d04f270
--- /dev/null
+++ b/app/src/main/res/drawable/ic_offline_pin_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android";
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12,2C6.5,2 2,6.5 2,12s4.5,10 10,10 10,-4.5 
10,-10S17.5,2 12,2zM17,18L7,18v-2h10v2zM10.3,14L7,10.7l1.4,-1.4 1.9,1.9 
5.3,-5.3L17,7.3 10.3,14z"/>
+</vector>

-- 
To view, visit https://gerrit.wikimedia.org/r/341621
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib3a52cb08067f1b30d24d2add36b3ea37014c93b
Gerrit-PatchSet: 4
Gerrit-Project: apps/android/wikipedia
Gerrit-Branch: master
Gerrit-Owner: Dbrant <dbr...@wikimedia.org>
Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org>
Gerrit-Reviewer: Dbrant <dbr...@wikimedia.org>
Gerrit-Reviewer: Mholloway <mhollo...@wikimedia.org>
Gerrit-Reviewer: Niedzielski <sniedziel...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to