added share link
This commit is contained in:
parent
f70c7d4f19
commit
b994ba8410
|
@ -20,7 +20,7 @@
|
|||
package org.mariotaku.twidere.util;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.content.Intent;
|
||||
import android.text.SpannableString;
|
||||
import android.text.style.URLSpan;
|
||||
import android.view.ActionMode;
|
||||
|
@ -55,16 +55,16 @@ public class StatusActionModeCallback implements ActionMode.Callback {
|
|||
final int start = textView.getSelectionStart(), end = textView.getSelectionEnd();
|
||||
final SpannableString string = SpannableString.valueOf(textView.getText());
|
||||
final URLSpan[] spans = string.getSpans(start, end, URLSpan.class);
|
||||
final boolean avail = spans.length == 1 && URLUtil.isValidUrl(spans[0].getURL());
|
||||
MenuUtils.setMenuItemAvailability(menu, android.R.id.copyUrl, avail);
|
||||
MenuUtils.setMenuItemShowAsActionFlags(menu, android.R.id.copyUrl, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
|
||||
final boolean selectingLink = spans.length == 1 && URLUtil.isValidUrl(spans[0].getURL());
|
||||
MenuUtils.setMenuItemAvailability(menu, R.id.copy_url, selectingLink);
|
||||
MenuUtils.setMenuItemAvailability(menu, R.id.share_url, selectingLink);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case android.R.id.copyUrl: {
|
||||
case R.id.copy_url: {
|
||||
final int start = textView.getSelectionStart(), end = textView.getSelectionEnd();
|
||||
final SpannableString string = SpannableString.valueOf(textView.getText());
|
||||
final URLSpan[] spans = string.getSpans(start, end, URLSpan.class);
|
||||
|
@ -73,6 +73,18 @@ public class StatusActionModeCallback implements ActionMode.Callback {
|
|||
mode.finish();
|
||||
return true;
|
||||
}
|
||||
case R.id.share_url: {
|
||||
final int start = textView.getSelectionStart(), end = textView.getSelectionEnd();
|
||||
final SpannableString string = SpannableString.valueOf(textView.getText());
|
||||
final URLSpan[] spans = string.getSpans(start, end, URLSpan.class);
|
||||
if (spans.length != 1) return true;
|
||||
Intent shareIntent = new Intent(Intent.ACTION_SEND);
|
||||
shareIntent.setType("text/plain");
|
||||
shareIntent.putExtra(Intent.EXTRA_TEXT, spans[0].getURL());
|
||||
context.startActivity(Intent.createChooser(shareIntent, context.getString(R.string.share_link)));
|
||||
mode.finish();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -3,9 +3,14 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item
|
||||
android:id="@android:id/copyUrl"
|
||||
android:id="@+id/copy_url"
|
||||
android:icon="@drawable/ic_action_web"
|
||||
android:title="@string/copy_link"
|
||||
app:showAsAction="always"/>
|
||||
<item
|
||||
android:id="@+id/share_url"
|
||||
android:icon="@drawable/ic_action_share"
|
||||
android:title="@string/share_link"
|
||||
app:showAsAction="always"/>
|
||||
|
||||
</menu>
|
|
@ -806,4 +806,5 @@
|
|||
<string name="edit_description">Edit description</string>
|
||||
<string name="no_status_content_text">No content</string>
|
||||
<string name="status_not_available_text">Tweet not available</string>
|
||||
<string name="share_link">Share link</string>
|
||||
</resources>
|
Loading…
Reference in New Issue