package com.smartjobboard;
import android.text.InputType;
import com.smartjobboard.R;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

public class LoginActivity extends MenuWrapperActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);

        setupUI(findViewById(R.id.parent));

        EditText textUsername = (EditText)findViewById(R.id.username);
        textUsername.setHint("username".equals(getResources().getString(R.string.auth_via)) ? R.string.hint_username : R.string.hint_email);
    }

    public void login(View view) {
        EditText username = (EditText)findViewById(R.id.username);
        EditText password = (EditText)findViewById(R.id.password);

        new LoginTask(this).execute(username.getText().toString(), password.getText().toString());
    }
}

class LoginTask extends ApiTask<String, Void, User> {

    LoginTask(Context context) {
        super(context, R.string.dialog_signing_in);
    }

    protected User doInBackground(String... credentials) {
        try {
            API api = AppSession.getApi(context);
            User user = api.login(credentials[0], credentials[1]);
            user.resumes = api.getUserResumes(user.sid);
            user.applications = api.getUserApplications(user.sid);
            user.jobAlerts = api.getJobAlerts(user.sid);
            AppSession.listingFieldValues = api.getListingFieldValues();
            return user;
        } catch (SJBException e) {
            error = e.getMessage();
            return null;
        }
    }

    protected void onPostExecute(User user) {
        if (user != null) {
            AppSession.currentUser = user;

            Intent intent = new Intent(context, SearchActivity.class);
            context.startActivity(intent);
        } else if("INVALID_USERNAME_OR_PASSWORD".equals(error)) {
            error = context.getResources().getString(R.string.error_invalid_username_or_password);
            showError();
        } else if("FORBIDDEN_FOR_EMPLOYER".equals(error)) {
            error = context.getResources().getString(R.string.error_forbidden_for_employer);
            showError();
        }

        super.onPostExecute(user);
    }
}
