Adding ability to quote and to copy issue comments. (#562)
Minor fix. Merge branch 'master' into reply-tools Merge remote-tracking branch 'opyale/reply-tools' into reply-tools Changing names. Merge branch 'master' into reply-tools Adding ability to cite and to copy issue comments. Co-authored-by: opyale <opyale@noreply.gitea.io> Co-authored-by: 6543 <6543@noreply.codeberg.org> Reviewed-on: https://codeberg.org/gitnex/GitNex/pulls/562 Reviewed-by: M M Arif <mmarif@noreply.codeberg.org>
This commit is contained in:
		@@ -64,7 +64,7 @@ public class ReplyToIssueActivity extends BaseActivity {
 | 
			
		||||
        addComment = findViewById(R.id.addComment);
 | 
			
		||||
        addComment.setShowSoftInputOnFocus(true);
 | 
			
		||||
 | 
			
		||||
        defaultMentionAdapter = new MentionArrayAdapter<>(this);
 | 
			
		||||
        defaultMentionAdapter = new MentionArrayAdapter<>(ctx);
 | 
			
		||||
        loadCollaboratorsList();
 | 
			
		||||
 | 
			
		||||
        addComment.setMentionAdapter(defaultMentionAdapter);
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,8 @@
 | 
			
		||||
package org.mian.gitnex.adapters;
 | 
			
		||||
 | 
			
		||||
import android.annotation.SuppressLint;
 | 
			
		||||
import android.content.ClipData;
 | 
			
		||||
import android.content.ClipboardManager;
 | 
			
		||||
import android.content.Context;
 | 
			
		||||
import android.content.Intent;
 | 
			
		||||
import android.graphics.drawable.Drawable;
 | 
			
		||||
@@ -104,6 +106,8 @@ public class IssueCommentsAdapter extends RecyclerView.Adapter<IssueCommentsAdap
 | 
			
		||||
 | 
			
		||||
				TextView commentMenuEdit = view.findViewById(R.id.commentMenuEdit);
 | 
			
		||||
				TextView commentShare = view.findViewById(R.id.issueCommentShare);
 | 
			
		||||
				TextView commentMenuQuote = view.findViewById(R.id.commentMenuQuote);
 | 
			
		||||
				TextView commentMenuCopy = view.findViewById(R.id.commentMenuCopy);
 | 
			
		||||
				TextView commentMenuDelete = view.findViewById(R.id.commentMenuDelete);
 | 
			
		||||
 | 
			
		||||
				if(!loginUid.contentEquals(commenterUsername.getText())) {
 | 
			
		||||
@@ -111,6 +115,10 @@ public class IssueCommentsAdapter extends RecyclerView.Adapter<IssueCommentsAdap
 | 
			
		||||
					commentMenuDelete.setVisibility(View.GONE);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if(issueComment.getText().toString().isEmpty()) {
 | 
			
		||||
					commentMenuCopy.setVisibility(View.GONE);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				BottomSheetDialog dialog = new BottomSheetDialog(ctx);
 | 
			
		||||
				dialog.setContentView(view);
 | 
			
		||||
				dialog.show();
 | 
			
		||||
@@ -143,6 +151,43 @@ public class IssueCommentsAdapter extends RecyclerView.Adapter<IssueCommentsAdap
 | 
			
		||||
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
				commentMenuQuote.setOnClickListener(v1 -> {
 | 
			
		||||
 | 
			
		||||
					StringBuilder stringBuilder = new StringBuilder();
 | 
			
		||||
					stringBuilder.append("@").append(commenterUsername.getText().toString()).append("\n\n");
 | 
			
		||||
 | 
			
		||||
					String[] lines = commendBodyRaw.getText().toString().split("\\R");
 | 
			
		||||
 | 
			
		||||
					for(String line : lines) {
 | 
			
		||||
 | 
			
		||||
						stringBuilder.append(">").append(line).append("\n");
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					stringBuilder.append("\n");
 | 
			
		||||
 | 
			
		||||
					Intent intent = new Intent(ctx, ReplyToIssueActivity.class);
 | 
			
		||||
					intent.putExtra("commentBody", stringBuilder.toString());
 | 
			
		||||
					intent.putExtra("cursorToEnd", true);
 | 
			
		||||
					intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 | 
			
		||||
 | 
			
		||||
					dialog.dismiss();
 | 
			
		||||
					ctx.startActivity(intent);
 | 
			
		||||
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
				commentMenuCopy.setOnClickListener(view1 -> {
 | 
			
		||||
 | 
			
		||||
					ClipboardManager clipboard = (ClipboardManager) Objects.requireNonNull(ctx).getSystemService(Context.CLIPBOARD_SERVICE);
 | 
			
		||||
					assert clipboard != null;
 | 
			
		||||
 | 
			
		||||
					ClipData clip = ClipData.newPlainText("Comment on issue #" + issueNumber.getText().toString(), issueComment.getText().toString());
 | 
			
		||||
					clipboard.setPrimaryClip(clip);
 | 
			
		||||
 | 
			
		||||
					dialog.dismiss();
 | 
			
		||||
					Toasty.info(ctx, ctx.getString(R.string.copyIssueCommentToastMsg));
 | 
			
		||||
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
				commentMenuDelete.setOnClickListener(deleteComment -> {
 | 
			
		||||
 | 
			
		||||
					deleteIssueComment(ctx, Integer.parseInt(commendId.getText().toString()), getAdapterPosition());
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,30 @@
 | 
			
		||||
                android:textSize="16sp"
 | 
			
		||||
                android:padding="12dp" />
 | 
			
		||||
 | 
			
		||||
            <TextView
 | 
			
		||||
                android:id="@+id/commentMenuQuote"
 | 
			
		||||
                android:layout_width="match_parent"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                android:layout_gravity="center_vertical"
 | 
			
		||||
                android:text="@string/menuQuoteText"
 | 
			
		||||
                android:drawableStart="@drawable/ic_comment"
 | 
			
		||||
                android:drawablePadding="24dp"
 | 
			
		||||
                android:textColor="?attr/primaryTextColor"
 | 
			
		||||
                android:textSize="16sp"
 | 
			
		||||
                android:padding="12dp" />
 | 
			
		||||
 | 
			
		||||
            <TextView
 | 
			
		||||
                android:id="@+id/commentMenuCopy"
 | 
			
		||||
                android:layout_width="match_parent"
 | 
			
		||||
                android:layout_height="wrap_content"
 | 
			
		||||
                android:layout_gravity="center_vertical"
 | 
			
		||||
                android:text="@string/menuCopyText"
 | 
			
		||||
                android:drawableStart="@drawable/ic_content_copy"
 | 
			
		||||
                android:drawablePadding="24dp"
 | 
			
		||||
                android:textColor="?attr/primaryTextColor"
 | 
			
		||||
                android:textSize="16sp"
 | 
			
		||||
                android:padding="12dp" />
 | 
			
		||||
 | 
			
		||||
            <TextView
 | 
			
		||||
                android:id="@+id/issueCommentShare"
 | 
			
		||||
                android:layout_width="match_parent"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<RelativeLayout
 | 
			
		||||
    xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 | 
			
		||||
    android:layout_width="match_parent"
 | 
			
		||||
    android:layout_height="wrap_content"
 | 
			
		||||
    android:orientation="vertical"
 | 
			
		||||
@@ -24,7 +23,7 @@
 | 
			
		||||
        android:id="@+id/commendBodyRaw"
 | 
			
		||||
        android:layout_width="wrap_content"
 | 
			
		||||
        android:layout_height="wrap_content"
 | 
			
		||||
        android:visibility="gone"/>
 | 
			
		||||
        android:visibility="gone" />
 | 
			
		||||
 | 
			
		||||
    <TextView
 | 
			
		||||
        android:id="@+id/commenterUsername"
 | 
			
		||||
 
 | 
			
		||||
@@ -517,6 +517,7 @@
 | 
			
		||||
 | 
			
		||||
    <string name="copyIssueUrl">Copy Issue URL</string>
 | 
			
		||||
    <string name="copyIssueUrlToastMsg">URL copied to clipboard</string>
 | 
			
		||||
    <string name="copyIssueCommentToastMsg">Copied comment to clipboard</string>
 | 
			
		||||
 | 
			
		||||
    <string name="milestoneCompletion">%1$d\uFF05 completed</string>
 | 
			
		||||
 | 
			
		||||
@@ -539,6 +540,8 @@
 | 
			
		||||
    <string name="menuContentDesc">Menu</string>
 | 
			
		||||
    <string name="menuEditText">Edit</string>
 | 
			
		||||
    <string name="menuDeleteText">Delete</string>
 | 
			
		||||
    <string name="menuCopyText">Copy</string>
 | 
			
		||||
    <string name="menuQuoteText">Quote and Reply</string>
 | 
			
		||||
    <string name="colorfulBulletSpan" translatable="false">\u0020\u0020\u0020\u25CF\u0020\u0020\u0020</string>
 | 
			
		||||
    <string name="modifiedText">edited</string>
 | 
			
		||||
    <string name="saveButton">Save</string>
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user