Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c04eda63 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Update RTT transcript screen."

parents af2757a2 168eecd4
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -61,7 +61,6 @@ public class RttTranscriptActivity extends AppCompatActivity {

    RecyclerView recyclerView = findViewById(R.id.rtt_recycler_view);
    LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    layoutManager.setStackFromEnd(true);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setHasFixedSize(true);
    adapter = new RttTranscriptAdapter(this);
+25 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.android.dialer.common.LogUtil;
import com.android.dialer.glidephotomanager.PhotoInfo;

/** Adapter class for holding RTT chat data. */
@@ -30,6 +31,7 @@ public class RttTranscriptAdapter extends RecyclerView.Adapter<RttTranscriptMess

  private final Context context;
  private RttTranscript rttTranscript;
  private int firstPositionToShowTimestamp;

  RttTranscriptAdapter(Context context) {
    this.context = context;
@@ -65,7 +67,9 @@ public class RttTranscriptAdapter extends RecyclerView.Adapter<RttTranscriptMess
      rttChatMessageViewHolder.hideTimestamp();
    } else {
      rttChatMessageViewHolder.showTimestamp(
          rttTranscriptMessage.getTimestamp(), rttTranscriptMessage.getIsRemote(), i == 0);
          rttTranscriptMessage.getTimestamp(),
          rttTranscriptMessage.getIsRemote(),
          i == firstPositionToShowTimestamp);
    }
  }

@@ -78,10 +82,30 @@ public class RttTranscriptAdapter extends RecyclerView.Adapter<RttTranscriptMess
  }

  void setRttTranscript(RttTranscript rttTranscript) {
    if (rttTranscript == null) {
      LogUtil.w("RttTranscriptAdapter.setRttTranscript", "null RttTranscript");
      return;
    }
    this.rttTranscript = rttTranscript;
    firstPositionToShowTimestamp = findFirstPositionToShowTimestamp(rttTranscript);

    notifyDataSetChanged();
  }

  /**
   * Returns first position of message that should show time stamp. This is usually the last one of
   * first grouped messages.
   */
  protected static int findFirstPositionToShowTimestamp(RttTranscript rttTranscript) {
    int i = 0;
    while (i + 1 < rttTranscript.getMessagesCount()
        && rttTranscript.getMessages(i).getIsRemote()
            == rttTranscript.getMessages(i + 1).getIsRemote()) {
      i++;
    }
    return i;
  }

  void setPhotoInfo(PhotoInfo photoInfo) {
    this.photoInfo = photoInfo;
  }