aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/twitter/Twitter.java11
1 files changed, 10 insertions, 1 deletions
diff --git a/main/src/cgeo/geocaching/twitter/Twitter.java b/main/src/cgeo/geocaching/twitter/Twitter.java
index 670165e..39f3f83 100644
--- a/main/src/cgeo/geocaching/twitter/Twitter.java
+++ b/main/src/cgeo/geocaching/twitter/Twitter.java
@@ -34,12 +34,13 @@ public final class Twitter {
postTweet(CgeoApplication.getInstance(), getStatusMessage(trackable), null);
}
- private static void postTweet(final CgeoApplication app, final String status, final Geopoint coords) {
+ private static void postTweet(final CgeoApplication app, final String statusIn, final Geopoint coords) {
if (app == null || !Settings.isUseTwitter() || !Settings.isTwitterLoginValid()) {
return;
}
try {
+ final String status = shortenToMaxSize(statusIn);
Parameters parameters = new Parameters("status", status);
if (coords != null) {
parameters.put(
@@ -64,6 +65,14 @@ public final class Twitter {
}
}
+ private static String shortenToMaxSize(final String status) {
+ String result = StringUtils.trim(status);
+ if (StringUtils.length(result) > MAX_TWEET_SIZE) {
+ return StringUtils.substring(result, 0, MAX_TWEET_SIZE - 1) + '…';
+ }
+ return result;
+ }
+
private static void appendHashTag(final StringBuilder status, final String tag) {
if (status.length() + HASH_PREFIX_WITH_BLANK.length() + tag.length() <= MAX_TWEET_SIZE) {
final String tagWithPrefix = HASH_PREFIX_WITH_BLANK + tag;