diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2011-12-04 08:09:00 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2011-12-04 08:09:00 +0100 |
| commit | e5f89f9a9a94f2c38abd249a7b000f2a4c408582 (patch) | |
| tree | fc6937139fe71db2ed35d3812721fe0e56eb8e6d /main/src/cgeo/geocaching/twitter/Twitter.java | |
| parent | 8a89f929f181289e7b62b8ae7ad27801c8fd9d31 (diff) | |
| download | cgeo-e5f89f9a9a94f2c38abd249a7b000f2a4c408582.zip cgeo-e5f89f9a9a94f2c38abd249a7b000f2a4c408582.tar.gz cgeo-e5f89f9a9a94f2c38abd249a7b000f2a4c408582.tar.bz2 | |
refactoring: move twitter stuff into separate package
Diffstat (limited to 'main/src/cgeo/geocaching/twitter/Twitter.java')
| -rw-r--r-- | main/src/cgeo/geocaching/twitter/Twitter.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/twitter/Twitter.java b/main/src/cgeo/geocaching/twitter/Twitter.java new file mode 100644 index 0000000..2f653f5 --- /dev/null +++ b/main/src/cgeo/geocaching/twitter/Twitter.java @@ -0,0 +1,54 @@ +package cgeo.geocaching.twitter; + +import cgeo.geocaching.Parameters; +import cgeo.geocaching.Settings; +import cgeo.geocaching.cgBase; +import cgeo.geocaching.cgeoapplication; +import cgeo.geocaching.geopoint.Geopoint; +import cgeo.geocaching.geopoint.GeopointFormatter.Format; +import cgeo.geocaching.network.OAuth; + +import org.apache.http.HttpResponse; + +import android.util.Log; + +public final class Twitter { + public static final int MAX_TWEET_SIZE = 140; + + public static void postTweet(final cgeoapplication app, final String status, final Geopoint coords) { + if (app == null) { + return; + } + if (!Settings.isTwitterLoginValid()) { + return; + } + + try { + Parameters parameters = new Parameters("status", status); + if (coords != null) { + parameters.put( + "lat", coords.format(Format.LAT_DECDEGREE_RAW), + "long", coords.format(Format.LON_DECDEGREE_RAW), + "display_coordinates", "true"); + } + + OAuth.signOAuth("api.twitter.com", "/1/statuses/update.json", "POST", false, parameters, Settings.getTokenPublic(), Settings.getTokenSecret()); + final HttpResponse httpResponse = cgBase.postRequest("http://api.twitter.com/1/statuses/update.json", parameters); + if (httpResponse != null && httpResponse.getStatusLine().getStatusCode() == 200) { + Log.i(Settings.tag, "Tweet posted"); + } else { + Log.e(Settings.tag, "Tweet could not be posted"); + } + } catch (Exception e) { + Log.e(Settings.tag, "cgBase.postTweet: " + e.toString()); + } + } + + public static String appendHashTag(final String status, final String tag) { + String result = status; + if (result.length() + 2 + tag.length() <= 140) { + result += " #" + tag; + } + return result; + } +} |
