1
0
mirror of https://github.com/TwidereProject/Twidere-Android synced 2025-02-05 11:07:36 +01:00

improved sharing on lollipop

This commit is contained in:
Mariotaku Lee 2016-04-05 10:05:28 +08:00
parent f800baf30e
commit 1bdd081838
2 changed files with 20 additions and 4 deletions

View File

@ -486,6 +486,9 @@ public final class MediaViewerActivity extends BaseActivity implements Constants
intent.setDataAndType(fileUri, mimeType);
intent.putExtra(Intent.EXTRA_STREAM, fileUri);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
intent.addFlags(Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
}
activity.processShareIntent(intent);
startActivityForResult(Intent.createChooser(intent, activity.getString(R.string.share)),
REQUEST_SHARE_MEDIA);

View File

@ -81,8 +81,7 @@ public class ActivityTitleSummaryMessage {
R.string.activity_about_me_like_multi, sources, nameFirst);
}
}
final Spanned summary = generateStatusTextSummary(context, activity.target_statuses,
nameFirst);
final CharSequence summary = generateTextOnlySummary(context, activity.target_statuses);
return new ActivityTitleSummaryMessage(typeIcon, color, title, summary);
}
case Activity.Action.RETWEET: {
@ -96,8 +95,8 @@ public class ActivityTitleSummaryMessage {
title = getTitleStringAboutMe(resources, manager, R.string.activity_about_me_retweet,
R.string.activity_about_me_retweet_multi, sources, nameFirst);
}
final Spanned summary = generateStatusTextSummary(context,
activity.target_object_statuses, nameFirst);
final CharSequence summary = generateTextOnlySummary(context,
activity.target_object_statuses);
return new ActivityTitleSummaryMessage(typeIcon, color, title, summary);
}
case Activity.Action.FAVORITED_RETWEET: {
@ -281,6 +280,20 @@ public class ActivityTitleSummaryMessage {
return summaryBuilder;
}
public static CharSequence generateTextOnlySummary(Context context, ParcelableStatus[] statuses) {
if (statuses == null) return null;
final StringBuilder summaryBuilder = new StringBuilder();
boolean first = true;
for (ParcelableStatus status : statuses) {
if (!first) {
summaryBuilder.append('\n');
}
summaryBuilder.append(status.text_unescaped.replace('\n', ' '));
first = false;
}
return summaryBuilder;
}
private static Spanned getTitleStringAboutMe(Resources resources, UserColorNameManager manager,
int stringRes, int stringResMulti,
ParcelableUser[] sources, boolean nameFirst) {