Skip to content

Commit

Permalink
Introduce ApplicationObject. Move Preferences and API object to this
Browse files Browse the repository at this point in the history
class
  • Loading branch information
edeleastar committed May 4, 2014
1 parent 6cc742a commit e65748e
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 23 deletions.
4 changes: 3 additions & 1 deletion AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
android:theme="@style/AppTheme"
android:name="com.marakana.yambax.YambaApplication">

<activity
android:name="com.marakana.yambax.StatusActivity"
android:label="@string/app_name" >
Expand Down
20 changes: 15 additions & 5 deletions src/com/marakana/utils/TwitterAPI.xtend
Original file line number Diff line number Diff line change
@@ -1,20 +1,30 @@
package com.marakana.utils

import winterwell.jtwitter.Twitter
import android.content.SharedPreferences

class TwitterAPI
{
var Twitter twitter

new ()

new (String username, String password, String root)
{
this.twitter = new Twitter(username, password)
twitter.setAPIRootUrl(root)
}

def changeAccount(SharedPreferences prefs)
{
this.twitter = new Twitter("student", "password")
twitter.setAPIRootUrl("http://yamba.marakana.com/api")
val username = prefs.getString("username", "student")
val password = prefs.getString("password", "password")
val root = prefs.getString("apiRoot", "http://yamba.marakana.com/api")
this.twitter = new Twitter(username, password)
twitter.setAPIRootUrl(root)
}

def String updateStatus (String status)
{
val result = twitter.updateStatus(status)
result.text
}
}
}
20 changes: 9 additions & 11 deletions src/com/marakana/yambax/StatusActivity.xtend
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,27 @@ import android.app.Activity
import android.os.Bundle
import android.widget.EditText
import android.widget.Button
import android.util.Log
import com.marakana.utils.TwitterAPI
import android.view.Menu
import android.view.MenuItem
import android.content.Intent
import android.view.View.OnClickListener

class StatusActivity extends Activity
{
val twitter = new TwitterAPI
var EditText editText
var Button updateButton

var update = [ new TwitterPoster(this).execute(editText.getText.toString) ] as OnClickListener

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

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

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

updateButton.setOnClickListener = [
val twitterPoster = new TwitterPoster(twitter, this)
twitterPoster.execute(editText.getText().toString())
Log.d("YAMBA", "onClicked")
]
updateButton.setOnClickListener = update
}

override onCreateOptionsMenu(Menu menu)
Expand Down
13 changes: 7 additions & 6 deletions src/com/marakana/yambax/TwitterPoster.xtend
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,16 @@ 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)
val TwitterAPI twitter
val Activity activity
new(Activity activity)
{
this.twitter = twitter
var app = activity.getApplication() as YambaApplication
this.twitter = app.twitter
this.activity = activity
}

Expand Down
27 changes: 27 additions & 0 deletions src/com/marakana/yambax/YambaApplication.xtend
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.marakana.yambax

import com.marakana.utils.TwitterAPI
import android.content.SharedPreferences
import android.content.SharedPreferences.OnSharedPreferenceChangeListener
import android.app.Application
import android.preference.PreferenceManager

class YambaApplication extends Application
{
@Property TwitterAPI twitter

var prefsChanged = [ SharedPreferences prefs, String s|
twitter.changeAccount(prefs) ] as OnSharedPreferenceChangeListener

override onCreate()
{
super.onCreate
twitter = new TwitterAPI("student", "password", "http://yamba.marakana.com/api")
PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener = prefsChanged
}

override onTerminate()
{
super.onTerminate
}
}

0 comments on commit e65748e

Please sign in to comment.