Guest User

Untitled

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