Skip to content
This repository was archived by the owner on Oct 28, 2024. It is now read-only.

Commit b25a237

Browse files
committed
add long-click to "quote"
1 parent ccb0b59 commit b25a237

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

mastodon/src/main/java/org/joinmastodon/android/ExternalShareActivity.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ private void openComposeFragment(String accountID){
5252

5353
Intent intent=getIntent();
5454
StringBuilder builder=new StringBuilder();
55-
if (intent.hasExtra(Intent.EXTRA_SUBJECT)) builder.append(intent.getStringExtra(Intent.EXTRA_SUBJECT)).append("\n\n");
55+
String subject = "";
56+
if (intent.hasExtra(Intent.EXTRA_SUBJECT)) builder.append(subject = intent.getStringExtra(Intent.EXTRA_SUBJECT)).append("\n\n");
5657
if (intent.hasExtra(Intent.EXTRA_TEXT)) builder.append(intent.getStringExtra(Intent.EXTRA_TEXT)).append("\n");
5758
String text=builder.toString();
5859
List<Uri> mediaUris;
@@ -80,6 +81,8 @@ private void openComposeFragment(String accountID){
8081
args.putString("account", accountID);
8182
if(!TextUtils.isEmpty(text))
8283
args.putString("prefilledText", text);
84+
if(!subject.isBlank())
85+
args.putInt("selectionEnd", subject.length());
8386
if(mediaUris!=null && !mediaUris.isEmpty())
8487
args.putParcelableArrayList("mediaAttachments", toArrayList(mediaUris));
8588
Fragment fragment=new ComposeFragment();

mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java

+5
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,11 @@ public void afterTextChanged(Editable s){
602602
ignoreSelectionChanges=false;
603603
initialText=prefilledText;
604604
}
605+
if (getArguments().containsKey("selectionStart") || getArguments().containsKey("selectionEnd")) {
606+
int selectionStart=getArguments().getInt("selectionStart", 0);
607+
int selectionEnd=getArguments().getInt("selectionEnd", selectionStart);
608+
mainEditText.setSelection(selectionStart, selectionEnd);
609+
}
605610
ArrayList<Uri> mediaUris=getArguments().getParcelableArrayList("mediaAttachments");
606611
if(mediaUris!=null && !mediaUris.isEmpty()){
607612
for(Uri uri:mediaUris){

mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java

+11
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ public Holder(Activity activity, ViewGroup parent){
9595
reply.setAccessibilityDelegate(buttonAccessibilityDelegate);
9696
boost.setOnTouchListener(this::onButtonTouch);
9797
boost.setOnClickListener(this::onBoostClick);
98+
boost.setOnLongClickListener(this::onBoostLongClick);
9899
boost.setAccessibilityDelegate(buttonAccessibilityDelegate);
99100
favorite.setOnTouchListener(this::onButtonTouch);
100101
favorite.setOnClickListener(this::onFavoriteClick);
@@ -166,6 +167,16 @@ private void onBoostClick(View v){
166167
});
167168
}
168169

170+
private boolean onBoostLongClick(View v){
171+
v.startAnimation(opacityIn);
172+
Bundle args=new Bundle();
173+
args.putString("account", item.accountID);
174+
args.putString("prefilledText", "\n\n" + item.status.url);
175+
args.putInt("selectionStart", 0);
176+
Nav.go(item.parentFragment.getActivity(), ComposeFragment.class, args);
177+
return true;
178+
}
179+
169180
private void onFavoriteClick(View v){
170181
favorite.setSelected(!item.status.favourited);
171182
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setFavorited(item.status, !item.status.favourited, r->{

0 commit comments

Comments
 (0)