Advertisement
tborg

RegisterActivity.java

Apr 21st, 2015
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.80 KB | None | 0 0
  1. package com.example.thomas.taken;
  2.  
  3. import android.app.Activity;
  4. import android.app.ProgressDialog;
  5. import android.content.Intent;
  6. import android.os.Bundle;
  7. import android.util.Log;
  8. import android.view.View;
  9. import android.widget.Button;
  10. import android.widget.EditText;
  11. import android.widget.Toast;
  12.  
  13. import com.android.volley.Request.Method;
  14. import com.android.volley.Response;
  15. import com.android.volley.VolleyError;
  16. import com.android.volley.toolbox.StringRequest;
  17. import com.example.thomas.taken.app.AppConfig;
  18. import com.example.thomas.taken.app.AppController;
  19. import com.example.thomas.taken.helper.SQLiteHandler;
  20. import com.example.thomas.taken.helper.SessionManager;
  21.  
  22. import org.json.JSONException;
  23. import org.json.JSONObject;
  24.  
  25. import java.util.HashMap;
  26. import java.util.Map;
  27.  
  28.  
  29. public class RegisterActivity extends Activity{
  30.     private static final String TAG = RegisterActivity.class.getSimpleName();
  31.     private Button btnRegister;
  32.     private Button btnLinkToLogin;
  33.     private EditText inputFullName;
  34.     private EditText inputEmail;
  35.     private EditText inputPassword;
  36.     private ProgressDialog pDialog;
  37.     private SessionManager session;
  38.     private SQLiteHandler db;
  39.  
  40.     @Override
  41.     public void onCreate(Bundle savedInstanceState) {
  42.         super.onCreate(savedInstanceState);
  43.         setContentView(R.layout.activity_register);
  44.  
  45.         inputFullName = (EditText) findViewById(R.id.name);
  46.         inputEmail = (EditText) findViewById(R.id.email);
  47.         inputPassword = (EditText) findViewById(R.id.password);
  48.         btnRegister = (Button) findViewById(R.id.btnRegister);
  49.         btnLinkToLogin = (Button) findViewById(R.id.btnLinkToLoginScreen);
  50.  
  51.         // Progress dialog
  52.         pDialog = new ProgressDialog(this);
  53.         pDialog.setCancelable(false);
  54.  
  55.         // Session manager
  56.         session = new SessionManager(getApplicationContext());
  57.  
  58.         // SQLite database handler
  59.         db = new SQLiteHandler(getApplicationContext());
  60.  
  61.         // Check if user is already logged in or not
  62.         if (session.isLoggedIn()) {
  63.             // User is already logged in. Take him to main activity
  64.             Intent intent = new Intent(RegisterActivity.this,
  65.                     MainActivity.class);
  66.             startActivity(intent);
  67.             finish();
  68.         }
  69.  
  70.         // Register Button Click event
  71.         btnRegister.setOnClickListener(new View.OnClickListener() {
  72.             public void onClick(View view) {
  73.                 String name = inputFullName.getText().toString();
  74.                 String email = inputEmail.getText().toString();
  75.                 String password = inputPassword.getText().toString();
  76.  
  77.                 if (!name.isEmpty() && !email.isEmpty() && !password.isEmpty()) {
  78.                     registerUser(name, email, password);
  79.                 } else {
  80.                     Toast.makeText(getApplicationContext(),
  81.                             "Please enter your details!", Toast.LENGTH_LONG)
  82.                             .show();
  83.                 }
  84.             }
  85.         });
  86.  
  87.         // Link to Login Screen
  88.         btnLinkToLogin.setOnClickListener(new View.OnClickListener() {
  89.  
  90.             public void onClick(View view) {
  91.                 Intent i = new Intent(getApplicationContext(),
  92.                         LoginActivity.class);
  93.                 startActivity(i);
  94.                 finish();
  95.             }
  96.         });
  97.  
  98.     }
  99.  
  100.     /**
  101.      * Function to store user in MySQL database will post params(tag, name,
  102.      * email, password) to register url
  103.      * */
  104.     private void registerUser(final String name, final String email,
  105.                               final String password) {
  106.         // Tag used to cancel the request
  107.         String tag_string_req = "req_register";
  108.  
  109.         pDialog.setMessage("Registering ...");
  110.         showDialog();
  111.  
  112.         StringRequest strReq = new StringRequest(Method.POST,
  113.                 AppConfig.URL_REGISTER, new Response.Listener<String>() {
  114.  
  115.             @Override
  116.             public void onResponse(String response) {
  117.                 Log.d(TAG, "Register Response: " + response.toString());
  118.                 hideDialog();
  119.  
  120.                 try {
  121.                     JSONObject jObj = new JSONObject(response);
  122.                     boolean error = jObj.getBoolean("error");
  123.                     if (!error) {
  124.                         // User successfully stored in MySQL
  125.                         // Now store the user in sqlite
  126.                         String uid = jObj.getString("uid");
  127.  
  128.                         JSONObject user = jObj.getJSONObject("user");
  129.  
  130.                         String name = user.getString("name");
  131.                         String email = user.getString("email");
  132.                         String created_at = user
  133.                                 .getString("created_at");
  134.  
  135.                         // Inserting row in users table
  136.                         db.addUser(name, email, uid, created_at);
  137.  
  138.                         // Launch login activity
  139.                         Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
  140.                         startActivity(intent);
  141.                         finish();
  142.                     } else {
  143.  
  144.                         // Error occurred in registration. Get the error
  145.                         // message
  146.                         String errorMsg = jObj.getString("error_msg");
  147.                         Toast.makeText(getApplicationContext(),
  148.                                 errorMsg, Toast.LENGTH_LONG).show();
  149.                     }
  150.                 } catch (JSONException e) {
  151.                     e.printStackTrace();
  152.                 }
  153.  
  154.             }
  155.         }, new Response.ErrorListener() {
  156.  
  157.             @Override
  158.             public void onErrorResponse(VolleyError error) {
  159.                 Log.e(TAG, "Registration Error: " + error.getMessage());
  160.                 Toast.makeText(getApplicationContext(),
  161.                         error.getMessage(), Toast.LENGTH_LONG).show();
  162.                 hideDialog();
  163.             }
  164.         }) {
  165.  
  166.             @Override
  167.             protected Map<String, String> getParams() {
  168.                 // Posting params to register url
  169.                 Map<String, String> params = new HashMap<String, String>();
  170.                 params.put("tag", "register");
  171.                 params.put("name", name);
  172.                 params.put("email", email);
  173.                 params.put("password", password);
  174.  
  175.                 return params;
  176.             }
  177.  
  178.         };
  179.  
  180.         // Adding request to request queue
  181.         AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
  182.     }
  183.  
  184.     private void showDialog() {
  185.         if (!pDialog.isShowing())
  186.             pDialog.show();
  187.     }
  188.  
  189.     private void hideDialog() {
  190.         if (pDialog.isShowing())
  191.             pDialog.dismiss();
  192.     }
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement