package com.nostra13.example.socialsharing;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import com.nostra13.example.socialsharing.Constants.Extra;
import com.nostra13.example.socialsharing.assist.TwitterEventObserver;
import com.nostra13.socialsharing.common.AuthListener;
import com.nostra13.socialsharing.twitter.TwitterFacade;
/**
* Activity for sharing information with Twitter
*
* @author Sergey Tarasevich
*/
public class TwitterActivity extends Activity {
private TextView messageView;
private TwitterFacade twitter;
private TwitterEventObserver twitterEventObserver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ac_twitter);
Bundle bundle = getIntent().getExtras();
final String message = bundle == null ? "" : bundle.getString(Extra.POST_MESSAGE);
messageView = (TextView) findViewById(R.id.message);
Button postButton = (Button) findViewById(R.id.button_post);
messageView.setText(message);
postButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (twitter.isAuthorized()) {
twitter.publishMessage(messageView.getText().toString());
finish();
} else {
// Start authentication dialog and publish message after successful authentication
twitter.authorize(new AuthListener() {
@Override
public void onAuthSucceed() {
twitter.publishMessage(messageView.getText().toString());
finish();
}
@Override
public void onAuthFail(String error) { // Do nothing
}
});
}
}
});
twitter = new TwitterFacade(this, Constants.TWITTER_CONSUMER_KEY, Constants.TWITTER_CONSUMER_SECRET);
twitterEventObserver = TwitterEventObserver.newInstance();
}
@Override
protected void onStart() {
super.onStart();
twitterEventObserver.registerListeners(this);
if (!twitter.isAuthorized()) {
twitter.authorize();
}
}
@Override
protected void onStop() {
super.onStop();
twitterEventObserver.unregisterListeners();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_facebook_twitter, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item_logout:
twitter.logout();
return true;
default:
return false;
}
}
}