Skip to content

Commit

Permalink
Related #58, #63, #62:
Browse files Browse the repository at this point in the history
1- Added Document stub object to pinned messages
2- Added pinned Document xml views
3- Introduced isDocument() to PinnedMessagesAdapter
4- added some code cleanup in PinnedMessagesAdapter class
  • Loading branch information
cool-appz committed Mar 8, 2018
1 parent 8a9b14b commit 577fc26
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 3 deletions.
5 changes: 5 additions & 0 deletions res/layout/pinned_conversation_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@
android:layout_height="@dimen/media_bubble_height"
android:layout="@layout/pinned_conversation_item_sent_thumbnail" />

<ViewStub android:id="@+id/pinned_document_view_stub"
android:layout="@layout/pinned_conversation_item_sent_document"
android:layout_width="210dp"
android:layout_height="wrap_content"/>

<ViewStub
android:id="@+id/pinned_audio_view_stub"
android:layout="@layout/pinned_conversation_item_sent_audio"
Expand Down
12 changes: 12 additions & 0 deletions res/layout/pinned_conversation_item_sent_document.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<org.thoughtcrime.securesms.components.DocumentView
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:id="@+id/pinned_document_view"
android:layout_width="210dp"
android:layout_height="wrap_content"
app:documentForegroundTintColor="@color/grey_500"
app:documentBackgroundTintColor="@color/white"
android:visibility="gone"
tools:visibility="visible"/>
25 changes: 22 additions & 3 deletions src/org/thoughtcrime/securesms/PinnedMessageAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import android.app.AlertDialog;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Color;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
Expand All @@ -28,6 +29,7 @@
import android.widget.TextView;

import org.thoughtcrime.securesms.components.AudioView;
import org.thoughtcrime.securesms.components.DocumentView;
import org.thoughtcrime.securesms.components.ThumbnailView;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.thoughtcrime.securesms.database.DatabaseFactory;
Expand Down Expand Up @@ -61,8 +63,9 @@ public PinnedMessageAdapter(Activity mContext, Cursor cursor, MasterSecret maste
}

public static class ViewHolder extends RecyclerView.ViewHolder {
private Stub<ThumbnailView> mediaThumbnailStub;
private Stub<AudioView> audioViewStub;
private Stub<DocumentView> documentViewStub;
private Stub<ThumbnailView> mediaThumbnailStub;
public TextView messageContent;
public TextView recipient;
public TextView time;
Expand All @@ -71,6 +74,7 @@ public static class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View v) {
super(v);
this.audioViewStub = new Stub<>(v.findViewById(R.id.pinned_audio_view_stub));
this.documentViewStub = new Stub<>(v.findViewById(R.id.pinned_document_view_stub));
this.mediaThumbnailStub = new Stub<>(v.findViewById(R.id.pinned_image_view_stub));
this.messageContent = v.findViewById(R.id.pinned_message_body);
this.recipient = v.findViewById(R.id.pinned_message_recipient);
Expand All @@ -87,7 +91,6 @@ public PinnedMessageAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int
return new ViewHolder(theInflatedView);
}


@Override
public void onBindViewHolder(ViewHolder holder, int position) {
dataCursor.moveToPosition(position);
Expand All @@ -97,6 +100,17 @@ public void onBindViewHolder(ViewHolder holder, int position) {

this.setMessageView(record, holder);

if (isDocument(record)) {
ConversationItem.ThumbnailClickListener thumbnailClickListener
= conversationItem.new ThumbnailClickListener(record);
ConversationItem.AttachmentDownloadClickListener attachmentDownloadClickListener
= conversationItem.new AttachmentDownloadClickListener();
holder.documentViewStub.get().setDocument(((MediaMmsMessageRecord)record).getSlideDeck().getDocumentSlide(), true);
holder.documentViewStub.get().setDocumentClickListener(thumbnailClickListener);
holder.documentViewStub.get().setDownloadClickListener(attachmentDownloadClickListener);
holder.documentViewStub.get().setVisibility(view.VISIBLE);
}

if (isAudio(record)) {
ConversationItem.AttachmentDownloadClickListener attachmentDownloadClickListener
= conversationItem.new AttachmentDownloadClickListener();
Expand All @@ -106,7 +120,8 @@ public void onBindViewHolder(ViewHolder holder, int position) {
}

else if (isVideo(record)) {
ConversationItem.ThumbnailClickListener thumbnailClickListener = conversationItem.new ThumbnailClickListener(record);
ConversationItem.ThumbnailClickListener thumbnailClickListener
= conversationItem.new ThumbnailClickListener(record);

holder.mediaThumbnailStub.get().setImageResource(masterSecret, glideRequests,
((MmsMessageRecord) record).getSlideDeck().getThumbnailSlide(),
Expand Down Expand Up @@ -166,6 +181,10 @@ private boolean isVideo(MessageRecord messageRecord) {
return messageRecord.isMms() && ((MmsMessageRecord)messageRecord).getSlideDeck().getThumbnailSlide() != null;
}

private boolean isDocument(MessageRecord messageRecord) {
return messageRecord.isMms() && ((MmsMessageRecord)messageRecord).getSlideDeck().getDocumentSlide() != null;
}

@Override
public int getItemCount() {
return (dataCursor == null) ? 0 : dataCursor.getCount();
Expand Down

0 comments on commit 577fc26

Please sign in to comment.