mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-12-29 04:17:12 +01:00
Copy priate messages.
This commit is contained in:
parent
9a994ca531
commit
345392a833
@ -225,12 +225,6 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
|
|||||||
intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY, message.getAuthor());
|
intent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY, message.getAuthor());
|
||||||
mActivity.startActivity(intent);
|
mActivity.startActivity(intent);
|
||||||
});
|
});
|
||||||
|
|
||||||
((DataViewHolder) holder).contentCustomMarkwonView.setOnClickListener(view -> {
|
|
||||||
if (((DataViewHolder) holder).contentCustomMarkwonView.getSelectionStart() == -1 && ((DataViewHolder) holder).contentCustomMarkwonView.getSelectionEnd() == -1) {
|
|
||||||
holder.itemView.performClick();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -330,6 +324,12 @@ public class MessageRecyclerViewAdapter extends PagedListAdapter<Message, Recycl
|
|||||||
contentCustomMarkwonView.setTextColor(mSecondaryTextColor);
|
contentCustomMarkwonView.setTextColor(mSecondaryTextColor);
|
||||||
|
|
||||||
contentCustomMarkwonView.setMovementMethod(LinkMovementMethod.getInstance());
|
contentCustomMarkwonView.setMovementMethod(LinkMovementMethod.getInstance());
|
||||||
|
|
||||||
|
contentCustomMarkwonView.setOnClickListener(view -> {
|
||||||
|
if (contentCustomMarkwonView.getSelectionStart() == -1 && contentCustomMarkwonView.getSelectionEnd() == -1) {
|
||||||
|
itemView.performClick();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
package ml.docilealligator.infinityforreddit.adapters;
|
package ml.docilealligator.infinityforreddit.adapters;
|
||||||
|
|
||||||
|
import android.content.ClipData;
|
||||||
|
import android.content.ClipboardManager;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
@ -11,6 +14,7 @@ import android.view.View;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
@ -154,7 +158,6 @@ public class PrivateMessagesDetailRecyclerViewAdapter extends RecyclerView.Adapt
|
|||||||
if (holder instanceof MessageViewHolder) {
|
if (holder instanceof MessageViewHolder) {
|
||||||
mMarkwon.setMarkdown(((MessageViewHolder) holder).messageTextView, message.getBody());
|
mMarkwon.setMarkdown(((MessageViewHolder) holder).messageTextView, message.getBody());
|
||||||
|
|
||||||
((MessageViewHolder) holder).messageTextView.setOnClickListener(view -> ((MessageViewHolder) holder).itemView.performClick());
|
|
||||||
if (mShowElapsedTime) {
|
if (mShowElapsedTime) {
|
||||||
((MessageViewHolder) holder).timeTextView.setText(Utils.getElapsedTime(mViewPrivateMessagesActivity, message.getTimeUTC()));
|
((MessageViewHolder) holder).timeTextView.setText(Utils.getElapsedTime(mViewPrivateMessagesActivity, message.getTimeUTC()));
|
||||||
} else {
|
} else {
|
||||||
@ -164,11 +167,12 @@ public class PrivateMessagesDetailRecyclerViewAdapter extends RecyclerView.Adapt
|
|||||||
((MessageViewHolder) holder).messageTextView.setOnClickListener(view -> {
|
((MessageViewHolder) holder).messageTextView.setOnClickListener(view -> {
|
||||||
if (((MessageViewHolder) holder).timeTextView.getVisibility() != View.VISIBLE) {
|
if (((MessageViewHolder) holder).timeTextView.getVisibility() != View.VISIBLE) {
|
||||||
((MessageViewHolder) holder).timeTextView.setVisibility(View.VISIBLE);
|
((MessageViewHolder) holder).timeTextView.setVisibility(View.VISIBLE);
|
||||||
mViewPrivateMessagesActivity.delayTransition();
|
((MessageViewHolder) holder).copyImageView.setVisibility(View.VISIBLE);
|
||||||
} else {
|
} else {
|
||||||
((MessageViewHolder) holder).timeTextView.setVisibility(View.GONE);
|
((MessageViewHolder) holder).timeTextView.setVisibility(View.GONE);
|
||||||
mViewPrivateMessagesActivity.delayTransition();
|
((MessageViewHolder) holder).copyImageView.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
mViewPrivateMessagesActivity.delayTransition();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -246,17 +250,40 @@ public class PrivateMessagesDetailRecyclerViewAdapter extends RecyclerView.Adapt
|
|||||||
class MessageViewHolder extends RecyclerView.ViewHolder {
|
class MessageViewHolder extends RecyclerView.ViewHolder {
|
||||||
TextView messageTextView;
|
TextView messageTextView;
|
||||||
TextView timeTextView;
|
TextView timeTextView;
|
||||||
|
ImageView copyImageView;
|
||||||
|
|
||||||
public MessageViewHolder(@NonNull View itemView) {
|
public MessageViewHolder(@NonNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setBaseView(TextView messageTextView, TextView timeTextView) {
|
void setBaseView(TextView messageTextView, TextView timeTextView, ImageView copyImageView) {
|
||||||
this.messageTextView = messageTextView;
|
this.messageTextView = messageTextView;
|
||||||
this.timeTextView = timeTextView;
|
this.timeTextView = timeTextView;
|
||||||
|
this.copyImageView = copyImageView;
|
||||||
|
|
||||||
messageTextView.setTextColor(Color.WHITE);
|
messageTextView.setTextColor(Color.WHITE);
|
||||||
timeTextView.setTextColor(mSecondaryTextColor);
|
timeTextView.setTextColor(mSecondaryTextColor);
|
||||||
|
|
||||||
|
copyImageView.setColorFilter(mSecondaryTextColor, android.graphics.PorterDuff.Mode.SRC_IN);
|
||||||
|
|
||||||
|
copyImageView.setOnClickListener(view -> {
|
||||||
|
Message message;
|
||||||
|
if (getBindingAdapterPosition() == 0) {
|
||||||
|
message = mMessage;
|
||||||
|
} else {
|
||||||
|
message = mMessage.getReplies().get(getBindingAdapterPosition() - 1);
|
||||||
|
}
|
||||||
|
if (message != null) {
|
||||||
|
ClipboardManager clipboard = (ClipboardManager) mViewPrivateMessagesActivity.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||||
|
if (clipboard != null) {
|
||||||
|
ClipData clip = ClipData.newPlainText("simple text", message.getBody());
|
||||||
|
clipboard.setPrimaryClip(clip);
|
||||||
|
Toast.makeText(mViewPrivateMessagesActivity, R.string.copy_success, Toast.LENGTH_SHORT).show();
|
||||||
|
} else {
|
||||||
|
Toast.makeText(mViewPrivateMessagesActivity, R.string.copy_failed, Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -265,14 +292,15 @@ public class PrivateMessagesDetailRecyclerViewAdapter extends RecyclerView.Adapt
|
|||||||
TextView messageTextView;
|
TextView messageTextView;
|
||||||
@BindView(R.id.time_text_view_item_private_message_sent)
|
@BindView(R.id.time_text_view_item_private_message_sent)
|
||||||
TextView timeTextView;
|
TextView timeTextView;
|
||||||
|
@BindView(R.id.copy_image_view_item_private_message_sent)
|
||||||
|
ImageView copyImageView;
|
||||||
|
|
||||||
SentMessageViewHolder(View itemView) {
|
SentMessageViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
ButterKnife.bind(this, itemView);
|
ButterKnife.bind(this, itemView);
|
||||||
setBaseView(messageTextView, timeTextView);
|
setBaseView(messageTextView, timeTextView, copyImageView);
|
||||||
|
|
||||||
messageTextView.setTextColor(mSentMessageTextColor);
|
messageTextView.setTextColor(mSentMessageTextColor);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -283,11 +311,13 @@ public class PrivateMessagesDetailRecyclerViewAdapter extends RecyclerView.Adapt
|
|||||||
TextView messageTextView;
|
TextView messageTextView;
|
||||||
@BindView(R.id.time_text_view_item_private_message_received)
|
@BindView(R.id.time_text_view_item_private_message_received)
|
||||||
TextView timeTextView;
|
TextView timeTextView;
|
||||||
|
@BindView(R.id.copy_image_view_item_private_message_received)
|
||||||
|
ImageView copyImageView;
|
||||||
|
|
||||||
ReceivedMessageViewHolder(View itemView) {
|
ReceivedMessageViewHolder(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
ButterKnife.bind(this, itemView);
|
ButterKnife.bind(this, itemView);
|
||||||
setBaseView(messageTextView, timeTextView);
|
setBaseView(messageTextView, timeTextView, copyImageView);
|
||||||
|
|
||||||
messageTextView.setTextColor(mReceivedMessageTextColor);
|
messageTextView.setTextColor(mReceivedMessageTextColor);
|
||||||
}
|
}
|
||||||
|
@ -15,8 +15,7 @@
|
|||||||
android:layout_height="36dp"
|
android:layout_height="36dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
app:layout_constraintEnd_toStartOf="@id/barrier3" />
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/message_text_view_item_private_message_received"
|
android:id="@+id/message_text_view_item_private_message_received"
|
||||||
@ -44,18 +43,24 @@
|
|||||||
android:textSize="?attr/font_default"
|
android:textSize="?attr/font_default"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toEndOf="@id/avatar_image_view_item_private_message_received"
|
app:layout_constraintStart_toEndOf="@id/avatar_image_view_item_private_message_received"
|
||||||
app:layout_constraintTop_toBottomOf="@id/message_text_view_item_private_message_received"
|
app:layout_constraintTop_toBottomOf="@id/message_text_view_item_private_message_received"
|
||||||
app:layout_constraintWidth_max="wrap"
|
app:layout_constraintWidth_max="wrap"
|
||||||
app:layout_constraintWidth_percent="0.7"
|
app:layout_constraintWidth_percent="0.7"
|
||||||
app:layout_constraintHorizontal_bias="0" />
|
app:layout_constraintHorizontal_bias="0" />
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Barrier
|
<ImageView
|
||||||
android:id="@+id/barrier3"
|
android:id="@+id/copy_image_view_item_private_message_received"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:barrierDirection="start"
|
android:padding="16dp"
|
||||||
app:constraint_referenced_ids="message_text_view_item_private_message_received, time_text_view_item_private_message_received" />
|
android:src="@drawable/ic_copy_24dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:background="?attr/actionBarItemBackground"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintStart_toEndOf="@id/time_text_view_item_private_message_received"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/message_text_view_item_private_message_received"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -40,4 +40,18 @@
|
|||||||
app:layout_constraintWidth_percent="0.7"
|
app:layout_constraintWidth_percent="0.7"
|
||||||
app:layout_constraintHorizontal_bias="1" />
|
app:layout_constraintHorizontal_bias="1" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/copy_image_view_item_private_message_sent"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:src="@drawable/ic_copy_24dp"
|
||||||
|
android:clickable="true"
|
||||||
|
android:focusable="true"
|
||||||
|
android:background="?attr/actionBarItemBackground"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintEnd_toStartOf="@id/time_text_view_item_private_message_sent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/message_text_view_item_private_message_sent"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
Reference in New Issue
Block a user