package com.example.twitterclient.activities;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.activeandroid.Model;
import com.codepath.oauth.OAuthLoginActivity;
import com.example.twitterclient.R;
import com.example.twitterclient.apps.TwitterApp;
import com.example.twitterclient.handlers.AsyncUserVerificationHandler;
import com.example.twitterclient.models.User;
import com.example.twitterclient.net.TwitterClient;
public class LoginActivity extends OAuthLoginActivity<TwitterClient> implements
AsyncUserVerificationHandler.CanReceiveUser {
private Button btnLogin;
private SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_login);
btnLogin = (Button) findViewById(R.id.btnLogin);
prefs = getSharedPreferences(getString(R.string.prefs_file), MODE_PRIVATE);
super.onCreate(savedInstanceState);
}
public void login(View v) {
btnLogin.setEnabled(false);
this.getClient().connect();
}
@Override
public void onLoginSuccess() {
btnLogin.setText(getString(R.string.verifying_account));
User user = TwitterApp.getCurrentUser();
if (user != null) {
receiveUser(user);
return;
}
Long userId = prefs.getLong("id", 0);
if (userId > 0) {
user = Model.load(User.class, userId);
if (user != null) {
receiveUser(user);
return;
}
}
AsyncUserVerificationHandler handler = new AsyncUserVerificationHandler(this);
TwitterApp.getClient().verifyCredentials(handler);
}
@Override
public void receiveUser(User user) {
TwitterApp.setUser(user);
prefs.edit().putLong("id", user.getId()).commit();
Intent intent = new Intent(this, TimelineActivity.class);
startActivity(intent);
}
@Override
public void onError(Throwable error) {
Toast.makeText(this, "Error: " + error.getMessage(), Toast.LENGTH_LONG).show();
Log.e("FIXME", "TimelineType Error", error);
}
@Override
public void onLoginFailure(Exception e) {
onError(e);
}
}