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