aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/twitter/Twitter.java
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2011-12-04 08:09:00 +0100
committerBananeweizen <bananeweizen@gmx.de>2011-12-04 08:09:00 +0100
commite5f89f9a9a94f2c38abd249a7b000f2a4c408582 (patch)
treefc6937139fe71db2ed35d3812721fe0e56eb8e6d /main/src/cgeo/geocaching/twitter/Twitter.java
parent8a89f929f181289e7b62b8ae7ad27801c8fd9d31 (diff)
downloadcgeo-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.java54
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;
+ }
+}