package com.uw.ictd.respeak;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.telephony.TelephonyManager;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class LoginActivity extends Activity {
private Button mLogInButton;
private EditText mPhoneNumberField;
private String mPhoneNumber;
private static boolean mFirstTimeUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
mLogInButton = (Button) findViewById(R.id.logInButton);
mPhoneNumberField = (EditText) findViewById(R.id.phoneNumberField);
// Hides keyboard until user selects edit text (phone number field)
this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
// Restore preferences
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
mPhoneNumber = settings.getString(SettingsFragment.KEY_PREF_PHONE_NUMBER, null);
// If the phone number isn't already saved in preferences, this is a
// first-time user
if (mPhoneNumber == null) {
mPhoneNumber = getPhoneNumber();
mFirstTimeUser = true;
}
mPhoneNumberField.setText(mPhoneNumber, TextView.BufferType.EDITABLE);
mLogInButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i;
// Set the appropriate activity to be launched
if (mFirstTimeUser) {
i = new Intent(LoginActivity.this, TrainingActivity.class);
} else {
i = new Intent(LoginActivity.this, ListenActivity.class);
}
// Allow user to set the number
mPhoneNumber = mPhoneNumberField.getText().toString();
// Check that the user put in a valid phone number
if (checkPhoneNumber(mPhoneNumber)) {
startActivity(i);
}
}
});
}
@Override
protected void onStop() {
super.onStop();
// Save the phone number last entered by the user
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = settings.edit();
editor.putString(SettingsFragment.KEY_PREF_PHONE_NUMBER, mPhoneNumber);
editor.commit();
// If this was a first time user, save their phone number
if (mFirstTimeUser) {
mFirstTimeUser = false;
}
}
// Check that the phone number is actually a valid number
private boolean checkPhoneNumber(String phoneNumber) {
if (phoneNumber.length() < 10) {
Toast toast = Toast.makeText(this,
R.string.invalid_phone_number_toast, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.show();
return false;
}
return true;
}
// Automatically detect the phone number
private String getPhoneNumber() {
TelephonyManager tMgr = (TelephonyManager) getApplicationContext()
.getSystemService(Context.TELEPHONY_SERVICE);
return tMgr.getLine1Number();
}
}