com.photon.phresco.nativeapp.eshop.activity.RegistrationActivity.java Source code

Java tutorial

Introduction

Here is the source code for com.photon.phresco.nativeapp.eshop.activity.RegistrationActivity.java

Source

/*
 * ###
 * PHR_AndroidNative
 * %%
 * Copyright (C) 1999 - 2012 Photon Infotech Inc.
 * %%
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ###
 */
/*
 * Classname: RegistrationActivity
 * Version information: 1.0
 * Date: Nov 24, 2011
 * Copyright notice:
 */
package com.photon.phresco.nativeapp.eshop.activity;

import java.io.IOException;

import org.json.JSONObject;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageButton;

import com.photon.phresco.nativeapp.R;
import com.photon.phresco.nativeapp.eshop.core.AsyncTaskHelper;
import com.photon.phresco.nativeapp.eshop.core.Constants;
import com.photon.phresco.nativeapp.eshop.dialog.CustomDialogActivity;
import com.photon.phresco.nativeapp.eshop.interfaces.IAsyncTaskListener;
import com.photon.phresco.nativeapp.eshop.logger.PhrescoLogger;
import com.photon.phresco.nativeapp.eshop.model.customer.Customer;
import com.photon.phresco.nativeapp.eshop.model.customer.Registration;

/**
 * Show the registration screen
 *
 * @author viral_b
 *
 */
public class RegistrationActivity extends PhrescoActivity {

    private static final String TAG = "RegistrationActivity ***** ";
    private EditText firstName, lastName, emailId, password, registerConfirmPassword;
    private ImageButton cancelButton, registerButton, backButton;
    private Registration registrationObj = null;

    private String prevActivity = "previousActivity";
    private JSONObject registerationJSONResponse = null;
    private Exception ioException = null;
    private Customer customerObj = new Customer();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        try {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.register);

            initEnvironment();

            cancelButton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    try {
                        startHomeActivity();
                    } catch (Exception ex) {
                        PhrescoLogger.info(TAG + " - cancelButton  - Exception : " + ex.toString());
                        PhrescoLogger.warning(ex);
                    }
                }
            });

            registerButton.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    try {
                        PhrescoLogger.info(TAG + " Register Button Clicked....");
                        if (isValid()) {
                            submitRegistrationDetails();
                        }

                    } catch (Exception ex) {
                        PhrescoLogger.info(TAG + " - registerButton  - Exception : " + ex.toString());
                        PhrescoLogger.warning(ex);
                    }
                }
            });

            backButton.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    try {
                        startHomeActivity();
                    } catch (Exception ex) {
                        PhrescoLogger.info(TAG + " - backButton  - Exception : " + ex.toString());
                        PhrescoLogger.warning(ex);
                    }
                }
            });
        } catch (Exception ex) {
            PhrescoLogger.info(TAG + " - onCreate  - Exception : " + ex.toString());
            PhrescoLogger.warning(ex);
        }
    }

    /**
     * start home activity
     */
    private void startHomeActivity() {
        try {
            Intent homeActivity = new Intent(getApplicationContext(), HomeActivity.class);
            homeActivity.putExtra("currentActivity", "home");
            startActivity(homeActivity);
            finish();
        } catch (Exception ex) {
            PhrescoLogger.info(TAG + " - startHomeActivity  - Exception : " + ex.toString());
            PhrescoLogger.warning(ex);
        }
    }

    /**
     * Initialize all the controls for current screen
     */
    private void initEnvironment() {
        try {
            cancelButton = (ImageButton) findViewById(R.id.cencel_btn);
            registerButton = (ImageButton) findViewById(R.id.register_btn);
            backButton = (ImageButton) findViewById(R.id.back_btn);

            firstName = (EditText) findViewById(R.id.txt_fistName);
            lastName = (EditText) findViewById(R.id.txt_lastName);
            emailId = (EditText) findViewById(R.id.txt_email);
            password = (EditText) findViewById(R.id.txt_password);
            registerConfirmPassword = (EditText) findViewById(R.id.txt_confirm_password);
        } catch (Exception ex) {
            PhrescoLogger.info(TAG + " - initEnvironment  - Exception : " + ex.toString());
            PhrescoLogger.warning(ex);
        }
    }

    /**
     * submit the registration details to server
     */
    private void submitRegistrationDetails() {
        try {
            AsyncTaskHelper asyncTask = new AsyncTaskHelper(RegistrationActivity.this);
            asyncTask.showProgressbar(true);
            asyncTask.setMessage(getString(R.string.registration_auth));
            asyncTask.setAsyncTaskListener(new IAsyncTaskListener() {

                @Override
                public void processOnStart() {
                    PhrescoLogger.info(TAG + " submitRegistration Details - processOnStart() ");
                    postRegistrationRequestToServer();
                }

                @Override
                public void processOnComplete() {
                    PhrescoLogger.info(TAG + " submitRegistrationDetails - processOnComplete() ");
                    getRegistrationResponseFromServer();

                }
            });
            asyncTask.execute();
        } catch (Exception ex) {
            PhrescoLogger.info(TAG + " submit Registration Details - Exception " + ex.toString());
            PhrescoLogger.warning(ex);

        }
    }

    /**
     * Wrapper method to post the registration details to server for
     * authentication
     */
    private void postRegistrationRequestToServer() {
        try {
            postRegistrationDetails();
        } catch (IOException ioe) {
            ioException = ioe;
            PhrescoLogger.warning(ioe);
        } catch (Exception ex) {
            PhrescoLogger.info(TAG + " postLoginRequestToServer - Exception " + ex.toString());
            PhrescoLogger.warning(ex);
        }
    }

    /**
     * Post the registration details to server for authentication
     *
     * @throws IOException
     */
    protected void postRegistrationDetails() throws IOException {
        registerationJSONResponse = customerObj.postCredentialDetails(firstName.getText().toString(),
                lastName.getText().toString(), emailId.getText().toString(), password.getText().toString());

        if (registerationJSONResponse != null) {
            Registration regObj = new Registration();
            registrationObj = regObj.getRegistrationGSONObject(registerationJSONResponse.toString());
        }
    }

    /**
     * Wrapper method to show the response message from server
     */
    private void getRegistrationResponseFromServer() {
        try {
            PhrescoLogger.info(TAG + "createOrderJSONObject() - Registration Details response : "
                    + registerationJSONResponse.toString());
            if (ioException == null) {
                showCustomDialogMessage();
            } else {
                showErrorDialogWithCancel();
            }

        } catch (Exception ex) {

            PhrescoLogger.info(TAG + " - getRegistrationResponseFromServer - Exception : " + ex.toString());
            PhrescoLogger.warning(ex);

        }
    }

    /**
     * Show the custom dialog with message
     */
    private void showCustomDialogMessage() {
        try {
            Intent customDialogActivity = new Intent(getApplicationContext(), CustomDialogActivity.class);
            customDialogActivity.putExtra(prevActivity, "RegistrationActivity");
            customDialogActivity.putExtra("obj", registrationObj);
            startActivityForResult(customDialogActivity, 1);
        } catch (Exception ex) {
            PhrescoLogger.info(TAG + " showCustomDialogMessage - Exception " + ex.toString());
            PhrescoLogger.warning(ex);
        }
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        try {
            if (resultCode == RESULT_OK && requestCode == 1) {
                Intent homeActivity = new Intent(getApplicationContext(), HomeActivity.class);
                homeActivity.putExtra("currentActivity", "home");
                if (data != null) {
                    Constants.setUserId(data.getExtras().getInt("userId"));
                } else {
                    Constants.setUserId(0);
                }
                startActivity(homeActivity);
                finish();
            }
        } catch (Exception ex) {
            PhrescoLogger.info(TAG + " - backButton  - Exception : " + ex.toString());
            PhrescoLogger.warning(ex);
        }
    }

    /*
     * This method is implemented for verification
     */
    private boolean isValid() {
        PhrescoLogger.info(TAG + " - Inside isValid(): ");
        boolean isValidFlag = true;
        try {
            if (customerObj.isEmpty(firstName.getText().toString())) {
                firstName.setError(getString(R.string.first_name_required));
                isValidFlag = false;
            } else if (customerObj.isEmpty(lastName.getText().toString())) {
                lastName.setError(getString(R.string.last_name));
                isValidFlag = false;
            } else if (customerObj.isEmpty(emailId.getText().toString())) {
                emailId.setError(getString(R.string.email_required));
                isValidFlag = false;
            } else if (customerObj.isEmpty(password.getText().toString())) {
                password.setError(getString(R.string.password_required));
                isValidFlag = false;
            } else if (!customerObj.isValidEmailId(emailId.getText().toString())) {
                emailId.setError(getString(R.string.invalid_email));
                isValidFlag = false;
            } else if (!customerObj.isConfirmPasswordCorrect(password.getText().toString(),
                    registerConfirmPassword.getText().toString())) {
                registerConfirmPassword.setError(getString(R.string.invalid_confirm_password));
                isValidFlag = false;
            }
        } catch (Exception ex) {
            isValidFlag = false;
            PhrescoLogger.info(TAG + " - isValid  - Exception : " + ex.toString());
            PhrescoLogger.warning(ex);
        }
        return isValidFlag;
    }

}