Created
December 20, 2017 11:18
-
-
Save praful-dhabekar/9b657ebcdfb3242475af1b51c483e274 to your computer and use it in GitHub Desktop.
RegisterActivity.java file from Android Login and Registration with PHP, MySQL and SQLite (https://www.androidhive.info)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.praf.apidemo; | |
import android.app.Activity; | |
import android.app.ProgressDialog; | |
import android.content.Intent; | |
import android.support.v7.app.AppCompatActivity; | |
import android.os.Bundle; | |
import android.util.Log; | |
import android.view.View; | |
import android.widget.Button; | |
import android.widget.EditText; | |
import android.widget.Toast; | |
import com.android.volley.Request; | |
import com.android.volley.RequestQueue; | |
import com.android.volley.Response; | |
import com.android.volley.VolleyError; | |
import com.android.volley.toolbox.StringRequest; | |
import com.android.volley.toolbox.Volley; | |
import com.example.praf.apidemo.app.AppConfig; | |
import com.example.praf.apidemo.app.AppController; | |
import com.example.praf.apidemo.helper.CustomRequest; | |
import com.example.praf.apidemo.helper.SQLiteHandler; | |
import com.example.praf.apidemo.helper.SessionManager; | |
import org.json.JSONException; | |
import org.json.JSONObject; | |
import java.util.HashMap; | |
import java.util.Map; | |
public class RegisterActivity extends Activity { | |
private static final String TAG = RegisterActivity.class.getSimpleName(); | |
private Button btnRegister; | |
private Button btnLinkToLogin; | |
private EditText inputFullName; | |
private EditText inputEmail; | |
private EditText inputPassword; | |
private ProgressDialog pDialog; | |
private SessionManager session; | |
private SQLiteHandler db; | |
@Override | |
public void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_register); | |
inputFullName = (EditText) findViewById(R.id.name); | |
inputEmail = (EditText) findViewById(R.id.email); | |
inputPassword = (EditText) findViewById(R.id.password); | |
btnRegister = (Button) findViewById(R.id.btnRegister); | |
btnLinkToLogin = (Button) findViewById(R.id.btnLinkToLoginScreen); | |
// Progress dialog | |
pDialog = new ProgressDialog(this); | |
pDialog.setCancelable(false); | |
// Session manager | |
session = new SessionManager(getApplicationContext()); | |
// SQLite database handler | |
db = new SQLiteHandler(getApplicationContext()); | |
// Check if user is already logged in or not | |
if (session.isLoggedIn()) { | |
// User is already logged in. Take him to main activity | |
Intent intent = new Intent(RegisterActivity.this, | |
MainActivity.class); | |
startActivity(intent); | |
finish(); | |
} | |
// Register Button Click event | |
btnRegister.setOnClickListener(new View.OnClickListener() { | |
public void onClick(View view) { | |
String name = inputFullName.getText().toString().trim(); | |
String email = inputEmail.getText().toString().trim(); | |
String password = inputPassword.getText().toString().trim(); | |
if (!name.isEmpty() && !email.isEmpty() && !password.isEmpty()) { | |
registerUser(name, email, password); | |
} else { | |
Toast.makeText(getApplicationContext(), | |
"Please enter your details!", Toast.LENGTH_LONG) | |
.show(); | |
} | |
} | |
}); | |
// Link to Login Screen | |
btnLinkToLogin.setOnClickListener(new View.OnClickListener() { | |
public void onClick(View view) { | |
Intent i = new Intent(getApplicationContext(), | |
LoginActivity.class); | |
startActivity(i); | |
finish(); | |
} | |
}); | |
} | |
/** | |
* Function to store user in MySQL database will post params(tag, name, | |
* email, password) to register url | |
* */ | |
private void registerUser(final String name, final String email, | |
final String password) { | |
// Tag used to cancel the request | |
String tag_string_req = "req_register"; | |
pDialog.setMessage("Registering ..."); | |
showDialog(); | |
StringRequest strReq = new StringRequest(Request.Method.POST, | |
AppConfig.URL_REGISTER, new Response.Listener<String>() { | |
@Override | |
public void onResponse(String response) { | |
Log.d(TAG, "Register Response: " + response.toString()); | |
hideDialog(); | |
try { | |
JSONObject jObj = new JSONObject(response); | |
boolean error = jObj.getBoolean("error"); | |
if (!error) { | |
// User successfully stored in MySQL | |
// Now store the user in sqlite | |
String uid = jObj.getString("uid"); | |
JSONObject user = jObj.getJSONObject("user"); | |
String name = user.getString("name"); | |
String email = user.getString("email"); | |
String created_at = user | |
.getString("created_at"); | |
// Inserting row in users table | |
db.addUser(name, email, uid, created_at); | |
Toast.makeText(getApplicationContext(), "User successfully registered. Try login now!", Toast.LENGTH_LONG).show(); | |
// Launch login activity | |
Intent intent = new Intent( | |
RegisterActivity.this, | |
LoginActivity.class); | |
startActivity(intent); | |
finish(); | |
} else { | |
// Error occurred in registration. Get the error | |
// message | |
String errorMsg = jObj.getString("error_msg"); | |
Toast.makeText(getApplicationContext(), | |
errorMsg, Toast.LENGTH_LONG).show(); | |
} | |
} catch (JSONException e) { | |
e.printStackTrace(); | |
} | |
} | |
}, new Response.ErrorListener() { | |
@Override | |
public void onErrorResponse(VolleyError error) { | |
Log.e(TAG, "Registration Error: " + error.getMessage()); | |
Toast.makeText(getApplicationContext(), | |
error.getMessage(), Toast.LENGTH_LONG).show(); | |
hideDialog(); | |
} | |
}) { | |
@Override | |
protected Map<String, String> getParams() { | |
// Posting params to register url | |
Map<String, String> params = new HashMap<String, String>(); | |
params.put("name", name); | |
params.put("email", email); | |
params.put("password", password); | |
return params; | |
} | |
}; | |
// Adding request to request queue | |
AppController.getInstance().addToRequestQueue(strReq, tag_string_req); | |
} | |
private void showDialog() { | |
if (!pDialog.isShowing()) | |
pDialog.show(); | |
} | |
private void hideDialog() { | |
if (pDialog.isShowing()) | |
pDialog.dismiss(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment