diff --git a/TravelPost/.classpath b/TravelPost/.classpath index 765e3f7..db42afc 100644 --- a/TravelPost/.classpath +++ b/TravelPost/.classpath @@ -3,8 +3,6 @@ - - - + diff --git a/TravelPost/.project b/TravelPost/.project index 09a8d0b..ee1f480 100644 --- a/TravelPost/.project +++ b/TravelPost/.project @@ -30,11 +30,4 @@ com.android.ide.eclipse.adt.AndroidNature org.eclipse.jdt.core.javanature - - - FacebookLib_src - 2 - _android_FacebookLib_9c84f9bf/src - - diff --git a/TravelPost/AndroidManifest.xml b/TravelPost/AndroidManifest.xml index 3a0da7e..0acc92f 100644 --- a/TravelPost/AndroidManifest.xml +++ b/TravelPost/AndroidManifest.xml @@ -31,7 +31,7 @@ - + diff --git a/TravelPost/default.properties b/TravelPost/default.properties index 9e9f836..558b85b 100644 --- a/TravelPost/default.properties +++ b/TravelPost/default.properties @@ -9,4 +9,4 @@ # Project target. target=Google Inc.:Google APIs:9 -android.library.reference.1=../FacebookLib/ +proguard.config=proguard.cfg diff --git a/TravelPost/gen/com/TwentyCodes/android/TravelPost/R.java b/TravelPost/gen/com/TwentyCodes/android/TravelPost/R.java index 70840b7..761f699 100644 --- a/TravelPost/gen/com/TwentyCodes/android/TravelPost/R.java +++ b/TravelPost/gen/com/TwentyCodes/android/TravelPost/R.java @@ -11,8 +11,7 @@ public final class R { public static final class attr { } public static final class drawable { - public static final int facebook_icon=0x7f020000; - public static final int icon=0x7f020001; + public static final int icon=0x7f020000; } public static final class id { public static final int authCode=0x7f060002; @@ -21,9 +20,8 @@ public final class R { public static final int widgetbutton=0x7f060000; } public static final class layout { - public static final int main=0x7f030000; - public static final int travelpostwidget=0x7f030001; - public static final int webauth=0x7f030002; + public static final int travelpostwidget=0x7f030000; + public static final int webauth=0x7f030001; } public static final class string { public static final int app_name=0x7f050001; diff --git a/TravelPost/gen/com/facebook/android/R.java b/TravelPost/gen/com/facebook/android/R.java deleted file mode 100644 index 1f5e654..0000000 --- a/TravelPost/gen/com/facebook/android/R.java +++ /dev/null @@ -1,36 +0,0 @@ -/* AUTO-GENERATED FILE. DO NOT MODIFY. - * - * This class was automatically generated by the - * aapt tool from the resource data it found. It - * should not be modified by hand. - */ - -package com.facebook.android; - -public final class R { - public static final class attr { - } - public static final class drawable { - public static final int facebook_icon=0x7f020000; - public static final int icon=0x7f020001; - } - public static final class id { - public static final int authCode=0x7f060002; - public static final int authOkButton=0x7f060001; - public static final int authWebView=0x7f060003; - public static final int widgetbutton=0x7f060000; - } - public static final class layout { - public static final int main=0x7f030000; - public static final int travelpostwidget=0x7f030001; - public static final int webauth=0x7f030002; - } - public static final class string { - public static final int app_name=0x7f050001; - public static final int hello=0x7f050000; - } - public static final class xml { - public static final int settings=0x7f040000; - public static final int travelpostwidgetinfo=0x7f040001; - } -} diff --git a/TravelPost/libs/jtwitter.jar b/TravelPost/libs/jtwitter.jar deleted file mode 100644 index 7f35149..0000000 Binary files a/TravelPost/libs/jtwitter.jar and /dev/null differ diff --git a/TravelPost/libs/signpost-core-1.2.1.1.jar b/TravelPost/libs/signpost-core-1.2.1.1.jar deleted file mode 100644 index 59e7537..0000000 Binary files a/TravelPost/libs/signpost-core-1.2.1.1.jar and /dev/null differ diff --git a/TravelPost/libs/twitter4j-core-2.1.11.jar b/TravelPost/libs/twitter4j-core-2.1.11.jar new file mode 100644 index 0000000..b0fb214 Binary files /dev/null and b/TravelPost/libs/twitter4j-core-2.1.11.jar differ diff --git a/TravelPost/src/com/TwentyCodes/android/TravelPost/LocationReceiver.java b/TravelPost/src/com/TwentyCodes/android/TravelPost/LocationReceiver.java index e1088d2..378520a 100644 --- a/TravelPost/src/com/TwentyCodes/android/TravelPost/LocationReceiver.java +++ b/TravelPost/src/com/TwentyCodes/android/TravelPost/LocationReceiver.java @@ -6,13 +6,14 @@ */ package com.TwentyCodes.android.TravelPost; +import twitter4j.TwitterException; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; import android.location.Location; import android.os.PowerManager; import android.os.PowerManager.WakeLock; +import android.widget.Toast; /** * The broadcast receiver that works with LocationService.java @@ -44,8 +45,12 @@ public class LocationReceiver extends BroadcastReceiver{ */ private void onLocationUpdate(Location location) { //TODO something with the location i.e. report location to social services like twitter, ect... - SharedPreferences shared_prefs = mContext.getSharedPreferences(TravelPost.SETTINGS, Context.MODE_PRIVATE); - TravelPost.tweet(shared_prefs.getString(TravelPost.TWITTER_AUTH_CODE, ""), "yellow_jk", location.toString()); + try { + TravelPost.tweet(location.toString()); + } catch (TwitterException e) { + Toast.makeText(mContext, e.getMessage(), Toast.LENGTH_LONG); + e.printStackTrace(); + } removeWakeLock(); diff --git a/TravelPost/src/com/TwentyCodes/android/TravelPost/TravelPost.java b/TravelPost/src/com/TwentyCodes/android/TravelPost/TravelPost.java index 0a847ab..5b75066 100644 --- a/TravelPost/src/com/TwentyCodes/android/TravelPost/TravelPost.java +++ b/TravelPost/src/com/TwentyCodes/android/TravelPost/TravelPost.java @@ -6,8 +6,12 @@ */ package com.TwentyCodes.android.TravelPost; -import winterwell.jtwitter.OAuthSignpostClient; -import winterwell.jtwitter.Twitter; +import twitter4j.Twitter; +import twitter4j.TwitterException; +import twitter4j.TwitterFactory; +import twitter4j.conf.ConfigurationBuilder; +import twitter4j.http.AccessToken; +import twitter4j.http.RequestToken; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; @@ -15,6 +19,8 @@ import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceActivity; +import android.util.Log; +import android.widget.Toast; /** * Main activity for the Travel Post widget. @@ -24,13 +30,15 @@ import android.preference.PreferenceActivity; public class TravelPost extends PreferenceActivity implements OnPreferenceClickListener { private PostMortemReportExceptionHandler mExceptionReport = new PostMortemReportExceptionHandler(this); + private RequestToken requestToken; private static SharedPreferences shared_prefs; public static final String SETTINGS = "settings"; private static final int TWITTER_AUTH_REQUEST_CODE = 0; - public static final String TWITTER_AUTH_CODE = "twitter"; - private static final String TC_TEST_OAUTH_KEY = "SSO8Vpy2Ecmc3BjvtwoRw"; - private static final String TC_TEST_OAUTH_SECRET = "aa6t6N0wlenvbWzU7fZbrhgzmEmUl5s7zGRbbKoU"; - + public static final String TWITTER_AUTH_TOKEN = "twitter_token"; + public static final String TWITTER_AUTH_SECRET = "twitter_secret"; + private static final String TC_TEST_OAUTH_KEY = "kmmcF8rjO4Aj9W4g8ao8ow"; + private static final String TC_TEST_OAUTH_SECRET = "5pgeFWHd7dkde284ed7NsRuIVsyeOvioXR0tVxp9K8"; + private static final String TAG = "TravelPost"; /** * called when the activity is first created @@ -45,9 +53,7 @@ public class TravelPost extends PreferenceActivity implements OnPreferenceClickL mExceptionReport.run(); Thread.setDefaultUncaughtExceptionHandler(mExceptionReport); - // set shared_prefs name - getPreferenceManager().setSharedPreferencesName(SETTINGS); - shared_prefs = getPreferenceManager().getSharedPreferences(); + shared_prefs = getSharedPreferences(SETTINGS, 0); // load preferences xml this.addPreferencesFromResource(R.xml.settings); @@ -56,9 +62,16 @@ public class TravelPost extends PreferenceActivity implements OnPreferenceClickL } @Override - public boolean onPreferenceClick(Preference preference) { - OAuthSignpostClient client = new OAuthSignpostClient(TC_TEST_OAUTH_KEY, TC_TEST_OAUTH_SECRET, "oob"); - this.startActivityForResult(new Intent(this, WebAuth.class).putExtra(WebAuth.AUTH_URL, client.authorizeUrl().toString()), TWITTER_AUTH_REQUEST_CODE); + public boolean onPreferenceClick(Preference preference) { + Twitter twitter = new TwitterFactory().getInstance(); + twitter.setOAuthConsumer(TC_TEST_OAUTH_KEY, TC_TEST_OAUTH_SECRET); + try { + requestToken = twitter.getOAuthRequestToken(); + this.startActivityForResult(new Intent(this, WebAuth.class).putExtra(WebAuth.AUTH_URL, requestToken.getAuthorizationURL()), TWITTER_AUTH_REQUEST_CODE); + } catch (TwitterException e) { + Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG); + e.printStackTrace(); + } return false; } @@ -70,29 +83,47 @@ public class TravelPost extends PreferenceActivity implements OnPreferenceClickL */ @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { + Log.v(TAG, "onActivityResult()"); + Log.d(TAG, "Request code:"+ requestCode); + if(data != null) + Log.d(TAG, data.getStringExtra(WebAuth.AUTH_CODE)); + else + Log.e(TAG, "WebAuth result was null!!!"); if(resultCode == Activity.RESULT_OK) switch(requestCode){ case TWITTER_AUTH_REQUEST_CODE: - shared_prefs.edit().putString(TWITTER_AUTH_CODE, data.getStringExtra(WebAuth.AUTH_CODE)).commit(); - - //FOR TESTING -// OAuthSignpostClient client = new OAuthSignpostClient(TC_TEST_OAUTH_KEY, TC_TEST_OAUTH_SECRET, "oob"); -// client.setAuthorizationCode(data.getStringExtra(WebAuth.AUTH_CODE)); -// Twitter twitter = new Twitter("yellow_jk", client); -// // Optional: store the authorisation token details -// Object accessToken = client.getAccessToken(); -// -// // use the API! -// twitter.setStatus("test"); + try { + AccessToken accessToken = null; + Twitter twitter = new TwitterFactory().getInstance(); + accessToken = twitter.getOAuthAccessToken(requestToken, data.getStringExtra(WebAuth.AUTH_CODE)); + Log.d(TAG, accessToken.getToken()); + Log.d(TAG, accessToken.getTokenSecret()); + shared_prefs.edit().putString(TWITTER_AUTH_TOKEN, accessToken.getToken()).commit(); + shared_prefs.edit().putString(TWITTER_AUTH_SECRET, accessToken.getTokenSecret()).commit(); + + } catch (TwitterException e) { + Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG); + e.printStackTrace(); + } break; } } - public static void tweet(String authCode, String userName, String msg){ - OAuthSignpostClient client = new OAuthSignpostClient(TC_TEST_OAUTH_KEY, TC_TEST_OAUTH_SECRET, "oob"); - Twitter jtwit = new Twitter(userName, client); - client.setAuthorizationCode(authCode); - jtwit.setStatus(msg); + /** + * posts a tweet to twitter + * @param msg + * @throws TwitterException + * @author ricky barrette + */ + public static void tweet(String msg) throws TwitterException{ + ConfigurationBuilder cb = new ConfigurationBuilder(); + cb.setDebugEnabled(true); + cb.setOAuthConsumerKey(TWITTER_AUTH_TOKEN).setOAuthConsumerSecret(TWITTER_AUTH_SECRET); + cb.setOAuthAccessToken(shared_prefs.getString(TWITTER_AUTH_TOKEN, "")); + cb.setOAuthAccessTokenSecret(shared_prefs.getString(TWITTER_AUTH_SECRET, "")); + TwitterFactory tf = new TwitterFactory(cb.build()); + Twitter twitter = tf.getInstance(); + twitter.updateStatus(msg); } - + } \ No newline at end of file diff --git a/TravelPost/src/com/TwentyCodes/android/TravelPost/WebAuth.java b/TravelPost/src/com/TwentyCodes/android/TravelPost/WebAuth.java index 8997609..626b9ca 100644 --- a/TravelPost/src/com/TwentyCodes/android/TravelPost/WebAuth.java +++ b/TravelPost/src/com/TwentyCodes/android/TravelPost/WebAuth.java @@ -50,7 +50,7 @@ public class WebAuth extends Activity implements OnClickListener { */ @Override public void onClick(View v) { - this.setResult(RESULT_OK, new Intent().putExtra(AUTH_CODE, mAuthCode.getText().toString())); - this.finish(); + setResult(RESULT_OK, new Intent().putExtra(AUTH_CODE, mAuthCode.getText().toString())); + finish(); } } \ No newline at end of file