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; } }