package com.sjriley.zappit;
import com.sjriley.zappit.models.LoginModel;
import com.sjriley.zappit.vo.LoginResponse;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.ConnectivityManager;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.provider.ContactsContract.CommonDataKinds.Email;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class LoginActivity extends Activity {
private static final String TAG = LoginActivity.class.getSimpleName();
private EditText username;
private EditText password;
private Button loginButton;
private LocationManager locationManager;
LoginResponse response;
private BroadcastReceiver logoutReceiver;
private ProgressDialog progressDialog;
private boolean dialogRunning;
private final Handler httpHandler = new Handler();
final Runnable loginReturned = new Runnable() {
public void run() {
loginComplete();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
username= (EditText)findViewById(R.id.username);
password = (EditText)findViewById(R.id.password);
loginButton = (Button)findViewById(R.id.loginButton);
loginButton.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
loginClick();
}
});
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.sjriley.zappit.ACTION_LOGOUT");
logoutReceiver = new BroadcastReceiver (){
@Override
public void onReceive(Context context, Intent intent) {
Log.d("LoginActivity","Logout in progress");
finish();
}
};
registerReceiver(logoutReceiver, intentFilter);
}
@Override
protected void onResume()
{
super.onResume();
SharedPreferences prefs = getSharedPreferences(PreferencesActivity.DEFAULT_PREFERECES, 0);
String userId = prefs.getString(PreferencesActivity.USER_ID, "");
Log.d(TAG, "LOGIN RESUME userId:" + userId);
}
@Override
protected void onDestroy()
{
super.onDestroy();
unregisterReceiver(logoutReceiver);
}
private void loginClick(){
if(isConnected()){
Thread t = new Thread() {
public void run() {
runLogin();
}
};
t.start();
progressDialog = ProgressDialog.show(this, "Please wait..", "Logging in", true,
false);
dialogRunning = true;
}
else {
Toast toast = Toast.makeText(this, "Please connect to the internet before logging in", Toast.LENGTH_LONG);
toast.show();
}
}
private void runLogin() {
LoginModel model = new LoginModel(this);
response = model.login("Ku87Dew4", username.getText().toString(), password.getText().toString());
//response = model.login("Ku87Dew4", "magnarlimited@gmail.com", "glyn");
httpHandler.post(loginReturned);
}
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
}
private void loginComplete() {
//LoginResponse response = model.login("Ku87Dew4", username.getText().toString(), password.getText().toString());
progressDialog.dismiss();
dialogRunning = false;
if(response.getStatus() == 0) {
Toast toast = Toast.makeText(this, response.getMessage(), Toast.LENGTH_LONG);
toast.show();
}
else {
Log.d(TAG, "UserId: " + response.getUserId());
SharedPreferences prefs = getSharedPreferences(PreferencesActivity.DEFAULT_PREFERECES, 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(PreferencesActivity.USER_ID, response.getUserId());
editor.putString(PreferencesActivity.USER_NAME, response.getUsername());
editor.putString(PreferencesActivity.EMAIL, username.getText().toString());
editor.commit();
Intent intent = new Intent(this, CaptureActivity.class);
//intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
// Show the default page on a clean install, and the what's new page on an upgrade.
startActivity(intent);
}
}
private boolean isConnected(){
boolean connected = false;
ConnectivityManager cm = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnectedOrConnecting()) {
connected = true;
}
return connected;
}
}