Skip to content

Commit

Permalink
TwitterAPI class to encapsulate background access
Browse files Browse the repository at this point in the history
TwitterPoster class to run in background
  • Loading branch information
edeleastar committed May 4, 2014
1 parent 7bc6b7b commit b5d3d14
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 23 deletions.
20 changes: 20 additions & 0 deletions src/com/marakana/utils/TwitterAPI.xtend
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.marakana.utils

import winterwell.jtwitter.Twitter

class TwitterAPI
{
var Twitter twitter

new ()
{
this.twitter = new Twitter("student", "password")
twitter.setAPIRootUrl("http://yamba.marakana.com/api")
}

def String updateStatus (String status)
{
val result = twitter.updateStatus(status)
result.text
}
}
33 changes: 10 additions & 23 deletions src/com/marakana/yambax/StatusActivity.xtend
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,25 @@ import android.app.Activity
import android.os.Bundle
import android.widget.EditText
import android.widget.Button
import android.view.View.OnClickListener
import android.view.View
import winterwell.jtwitter.Twitter
import android.util.Log
import android.os.StrictMode
import com.marakana.utils.TwitterAPI

class StatusActivity extends Activity implements OnClickListener
class StatusActivity extends Activity
{
val TAG = "StatusActivity"
var EditText editText
var Button updateButton
var twitter = new Twitter("student", "password")
val twitter = new TwitterAPI

override onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_status)

val policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
val editText = findViewById(R.id.editText) as EditText
val updateButton = findViewById(R.id.buttonUpdate) as Button

editText = findViewById(R.id.editText) as EditText
updateButton = findViewById(R.id.buttonUpdate) as Button

updateButton.setOnClickListener(this)

twitter.setAPIRootUrl("http://yamba.marakana.com/api")
}

override onClick(View arg0)
{
twitter.setStatus(editText.getText.toString)
Log.d(TAG, "onClicked")
updateButton.setOnClickListener = [
val twitterPoster = new TwitterPoster(twitter, this)
twitterPoster.execute(editText.getText().toString())
Log.d("YAMBA", "onClicked")
]
}
}
39 changes: 39 additions & 0 deletions src/com/marakana/yambax/TwitterPoster.xtend
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.marakana.yambax

import android.os.AsyncTask
import android.util.Log
import winterwell.jtwitter.TwitterException
import android.widget.Toast
import android.app.Activity
import com.marakana.utils.TwitterAPI

class TwitterPoster extends AsyncTask<String, Integer, String>
{
var TwitterAPI twitter
var Activity activity

new(TwitterAPI twitter, Activity activity)
{
this.twitter = twitter
this.activity = activity
}

override doInBackground(String... it)
{
try
{
var status = twitter.updateStatus(get(0))
status
}
catch (TwitterException e)
{
Log.e("YAMBA", e.toString());
"Failed to post";
}
}

override onPostExecute(String result)
{
Toast.makeText(activity, result, Toast.LENGTH_LONG).show();
}
}

0 comments on commit b5d3d14

Please sign in to comment.