title: RecyclerView not populating, likely a silly adapter problem
body: <p>I used a working <code>RecyclerView</code> as a template for another, but I made some sort of mistake in its implementation and I can't find it. Here is the code that initializes the view:</p>
  
  <pre><code> mMessageThreadList = new ArrayList&lt;&gt;();       
   mRecyclerView = findViewById(R.id.chat_list_recycler_view);
  
  
   private void initRecyclerView() {
          Log.d(TAG, "initRecyclerView Called");
  
          //Initializes and sets up adapter
  
          mAdapter = new ChatListRecyclerViewAdapter(mThreadList);
          mRecyclerView.setAdapter(mAdapter);
  
  
          Query query = mThreadCollection;
          query.addSnapshotListener(new EventListener&lt;QuerySnapshot&gt;() {
              @Override
              public void onEvent(@Nullable QuerySnapshot queryDocumentSnapshots, @Nullable FirebaseFirestoreException e) {
  
                  for (DocumentChange documentChange : queryDocumentSnapshots.getDocumentChanges()) {
                      switch (documentChange.getType()) {
                          case ADDED:
                              Thread thread = documentChange.getDocument().toObject(Thread.class);
                              Log.d(TAG, "Last Message: " + thread.getLastMessage().getMessage());
  
                              mThreadList.add(thread);
                              mAdapter.notifyDataSetChanged();
  
                      }
                  }
              }
          });
      }
  </code></pre>
  
  <p>Note that the print log statement in the <code>SnapshotListener</code> does contain a value when printed so the information is returning from Firebase, it's just not displaying. Which makes me think my problem is with my Adapter/Viewholder:</p>
  
  <pre><code>public class ChatListRecyclerViewAdapter extends RecyclerView.Adapter&lt;ChatListRecyclerViewAdapter.ChatListViewHolder&gt; {
  
      private List&lt;Thread&gt; threadList;
  
      ChatListRecyclerViewAdapter(List&lt;Thread&gt; threadList) {
          this.threadList = threadList;
      }
  
  
      @NonNull
      @Override
      public ChatListViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  
          View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.chat_list_row, parent, false);
          return new ChatListViewHolder(view);
  
      }
  
      @Override
      public void onBindViewHolder(@NonNull ChatListViewHolder holder, int position) {
  
          // This method fills fields with data for each list item
          Log.d(TAG, "onBindViewholder called");
  
          SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MMM hh:mm a");
          final Thread thread = threadList.get(position);
          char initial = thread.getPartnerName().charAt(0);
          char uppercaseInitial = Character.toUpperCase(initial);
  
          Log.d(TAG, thread.getLastMessage() + " " + thread.getPartnerID());
  
  
          holder.partnerName.setText(thread.getPartnerName());
          holder.authorInitial.setText(uppercaseInitial);
          holder.lastMessageText.setText(thread.getLastMessage().getMessage());
          holder.lastMessageTime.setText(simpleDateFormat.format(thread.getLastMessage().getTimestamp()));
  
      }
  
      @Override
      public int getItemCount() {
          return threadList.size();
      }
  
      //Viewholder stores the information about the layout and content of each list item, and serves as a template for each item of a RecyclerView
  
  
      public class ChatListViewHolder extends RecyclerView.ViewHolder {
  
          TextView partnerName;
          TextView authorInitial;
          TextView lastMessageText;
          TextView lastMessageTime;
          LinearLayout listTextHolder;
  
          public ChatListViewHolder(View itemView) {
              super(itemView);
  
              partnerName = itemView.findViewById(R.id.partner_name);
              authorInitial = itemView.findViewById(R.id.partner_initial);
              lastMessageText = itemView.findViewById(R.id.last_message);
              lastMessageTime = itemView.findViewById(R.id.last_message_time);
              listTextHolder = itemView.findViewById(R.id.list_text_holder);
  
          }
      }
  }
  </code></pre>
  
  <p>chat_list_row.xml file:</p>
  
  <pre><code>&lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:id="@+id/single_thread_container"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:orientation="vertical"
      android:layout_marginTop="5dp"
      android:layout_marginBottom="5dp"
      android:background="@color/colorPrimaryDark"&gt;
  
      &lt;TextView
          android:id="@+id/partner_initial"
          android:background="@drawable/chat_list_circle"
          android:layout_width="45dp"
          android:layout_height="45dp"
          android:layout_alignParentStart="true"
          android:gravity="center"
          android:text="A"
          android:textSize="36sp"
          tools:ignore="HardcodedText" /&gt;
  
  
      &lt;TextView
          android:id="@+id/last_message_time"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_alignParentEnd="true"
          android:padding="5dp"
          android:fontFamily="@font/nunito_extralight"
          android:text="@string/sample_time"
          android:textColor="@android:color/darker_gray"
          android:textSize="12sp"
          android:typeface="normal" /&gt;
  
      &lt;LinearLayout
          android:id="@+id/list_text_holder"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_toEndOf="@id/partner_initial"
          android:layout_centerVertical="true"
          android:orientation="vertical"&gt;
  
          &lt;TextView
              android:id="@+id/partner_name"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_gravity="start"
              android:layout_marginStart="5dp"
              android:fontFamily="@font/nunito"
              android:text="@string/sample_name"
              android:textColor="@color/white"
              android:textSize="14sp"
              android:textStyle="bold"
              android:typeface="sans" /&gt;
  
          &lt;TextView
              android:id="@+id/last_message"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_marginStart="5dp"
              android:fontFamily="@font/nunito_extralight"
              android:gravity="start"
              android:text="@string/sample_message"
              android:textColor="@android:color/darker_gray"
              android:textSize="12sp"
              android:typeface="normal" /&gt;
  
      &lt;/LinearLayout&gt;
  
  &lt;/RelativeLayout&gt;
  </code></pre>
  
  <p>Edit: Layout of the Activity that <code>RecyclerView</code> appears in. I also edit above code to show where the variable is attached to the view:</p>
  
  <pre><code>&lt;android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:background="@color/colorPrimaryDark"
      android:paddingLeft="0dp"
      android:paddingTop="@dimen/activity_vertical_margin"
      android:paddingRight="0dp"
      android:paddingBottom="0dp"
      tools:context="org.andrewedgar.theo.ChatListActivity"&gt;
  
      &lt;include
          android:id="@+id/chat_list_toolbar"
          layout="@layout/toolbar" /&gt;
  
  
      &lt;android.support.v7.widget.RecyclerView
          android:id="@+id/chat_list_recycler_view"
          android:layout_width="0dp"
          android:layout_height="0dp"
          android:layout_alignParentStart="true"
          android:layout_centerVertical="true"
          app:layout_constraintBottom_toBottomOf="parent"
          app:layout_constraintEnd_toEndOf="parent"
          app:layout_constraintStart_toStartOf="parent"
          app:layout_constraintTop_toBottomOf="@+id/chat_list_toolbar" /&gt;
  
      &lt;android.support.design.widget.FloatingActionButton
          android:id="@+id/new_check_in_button"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="end|bottom"
          android:layout_marginEnd="16dp"
          android:layout_marginBottom="16dp"
          android:src="@drawable/ic_person_pin_circle_black_24dp"
          app:layout_constraintBottom_toBottomOf="parent"
          app:layout_constraintEnd_toEndOf="parent" /&gt;
  
  
  &lt;/android.support.constraint.ConstraintLayout&gt;
  </code></pre>