added share link

This commit is contained in:
Mariotaku Lee 2016-06-14 09:13:53 +08:00
parent f70c7d4f19
commit b994ba8410
3 changed files with 24 additions and 6 deletions

View File

@ -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;
}

View File

@ -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>

View File

@ -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>