Advertisement
Guest User

Untitled

a guest
Mar 19th, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.33 KB | None | 0 0
  1. package com.androidtutorialpoint.androidlogin;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.support.v7.app.AppCompatActivity;
  5. import android.os.Bundle;
  6. import android.util.Log;
  7. import android.widget.Button;
  8. import android.widget.EditText;
  9. import android.content.Intent;
  10. import android.view.View;
  11. import android.widget.Toast;
  12. import com.android.volley.Request;
  13. import com.android.volley.Response;
  14. import com.android.volley.VolleyError;
  15. import com.android.volley.toolbox.StringRequest;
  16. import org.json.JSONException;
  17. import org.json.JSONObject;
  18. import java.util.HashMap;
  19. import java.util.Map;
  20.  
  21.  
  22. public class LoginActivity extends AppCompatActivity {
  23.  
  24. private static final String TAG = "LoginActivity";
  25. private static final String URL_FOR_LOGIN = "http://192.168.43.97/android_login_example/login.php";
  26. ProgressDialog progressDialog;
  27. private EditText loginInputEmail, loginInputPassword;
  28. private Button btnlogin;
  29. private Button btnLinkSignup;
  30.  
  31. @Override
  32. protected void onCreate(Bundle savedInstanceState) {
  33. super.onCreate(savedInstanceState);
  34. setContentView(R.layout.activity_login);
  35. loginInputEmail = (EditText) findViewById(R.id.login_input_email);
  36. loginInputPassword = (EditText) findViewById(R.id.login_input_password);
  37. btnlogin = (Button) findViewById(R.id.btn_login);
  38. btnLinkSignup = (Button) findViewById(R.id.btn_link_signup);
  39. // Progress dialog
  40. progressDialog = new ProgressDialog(this);
  41. progressDialog.setCancelable(false);
  42.  
  43. btnlogin.setOnClickListener(new View.OnClickListener() {
  44. @Override
  45. public void onClick(View view) {
  46. loginUser(loginInputEmail.getText().toString(),
  47. loginInputPassword.getText().toString());
  48. }
  49. });
  50.  
  51. btnLinkSignup.setOnClickListener(new View.OnClickListener() {
  52. @Override
  53. public void onClick(View view) {
  54. Intent i = new Intent(getApplicationContext(), RegisterActivity.class);
  55. startActivity(i);
  56. }
  57. });
  58. }
  59.  
  60. private void loginUser( final String email, final String password) {
  61. // Tag used to cancel the request
  62. String cancel_req_tag = "login";
  63. progressDialog.setMessage("Logging you in...");
  64. showDialog();
  65. StringRequest strReq = new StringRequest(Request.Method.POST,
  66. URL_FOR_LOGIN, new Response.Listener<String>() {
  67.  
  68. @Override
  69. public void onResponse(String response) {
  70. Log.d(TAG, "Register Response: " + response.toString());
  71. hideDialog();
  72. try {
  73. JSONObject jObj = new JSONObject(response);
  74. boolean error = jObj.getBoolean("error");
  75.  
  76. if (!error) {
  77. String user = jObj.getJSONObject("user").getString("name");
  78. // Launch User activity
  79. Intent intent = new Intent(
  80. LoginActivity.this,
  81. UserActivity.class);
  82. intent.putExtra("username", user);
  83. startActivity(intent);
  84. finish();
  85. } else {
  86.  
  87. String errorMsg = jObj.getString("error_msg");
  88. Toast.makeText(getApplicationContext(),
  89. errorMsg, Toast.LENGTH_LONG).show();
  90. }
  91. } catch (JSONException e) {
  92. e.printStackTrace();
  93. }
  94.  
  95. }
  96. }, new Response.ErrorListener() {
  97.  
  98. @Override
  99. public void onErrorResponse(VolleyError error) {
  100. Log.e(TAG, "Login Error: " + error.getMessage());
  101. Toast.makeText(getApplicationContext(),
  102. error.getMessage(), Toast.LENGTH_LONG).show();
  103. hideDialog();
  104. }
  105. }) {
  106.  
  107. @Override
  108. protected Map<String, String> getParams() {
  109. // Posting params to login url
  110. Map<String, String> params = new HashMap<String, String>();
  111. params.put("email", email);
  112. params.put("password", password);
  113. return params;
  114. }
  115.  
  116. };
  117. // Adding request to request queue
  118. AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(strReq,cancel_req_tag);
  119. }
  120.  
  121. private void showDialog() {
  122. if (!progressDialog.isShowing())
  123. progressDialog.show();
  124. }
  125. private void hideDialog() {
  126. if (progressDialog.isShowing())
  127. progressDialog.dismiss();
  128. }
  129.  
  130. }
  131.  
  132. package com.androidtutorialpoint.androidlogin;
  133.  
  134. import android.app.ProgressDialog;
  135. import android.content.Intent;
  136. import android.os.Bundle;
  137. import android.support.v7.app.AppCompatActivity;
  138. import android.util.Log;
  139. import android.view.View;
  140. import android.widget.Button;
  141. import android.widget.EditText;
  142. import android.widget.RadioGroup;
  143. import android.widget.Toast;
  144. import com.android.volley.Request;
  145. import com.android.volley.Response;
  146. import com.android.volley.VolleyError;
  147. import com.android.volley.toolbox.StringRequest;
  148. import org.json.JSONException;
  149. import org.json.JSONObject;
  150. import java.util.HashMap;
  151. import java.util.Map;
  152.  
  153.  
  154. public class RegisterActivity extends AppCompatActivity {
  155.  
  156. private static final String TAG = "RegisterActivity";
  157. private static final String URL_FOR_REGISTRATION = "http://192.168.43.97/android_login_example/register.php";
  158. ProgressDialog progressDialog;
  159.  
  160. private EditText signupInputName, signupInputEmail, signupInputPassword, signupInputAge;
  161. private Button btnSignUp;
  162. private Button btnLinkLogin;
  163. private RadioGroup genderRadioGroup;
  164.  
  165. @Override
  166. protected void onCreate(Bundle savedInstanceState) {
  167. super.onCreate(savedInstanceState);
  168. setContentView(R.layout.activity_register);
  169.  
  170. // Progress dialog
  171. progressDialog = new ProgressDialog(this);
  172. progressDialog.setCancelable(false);
  173.  
  174. signupInputName = (EditText) findViewById(R.id.signup_input_name);
  175. signupInputEmail = (EditText) findViewById(R.id.signup_input_email);
  176. signupInputPassword = (EditText) findViewById(R.id.signup_input_password);
  177. signupInputAge = (EditText) findViewById(R.id.signup_input_age);
  178.  
  179. btnSignUp = (Button) findViewById(R.id.btn_signup);
  180. btnLinkLogin = (Button) findViewById(R.id.btn_link_login);
  181.  
  182. genderRadioGroup = (RadioGroup) findViewById(R.id.gender_radio_group);
  183. btnSignUp.setOnClickListener(new View.OnClickListener() {
  184. @Override
  185. public void onClick(View view) {
  186. submitForm();
  187. }
  188. });
  189. btnLinkLogin.setOnClickListener(new View.OnClickListener() {
  190. @Override
  191. public void onClick(View view) {
  192.  
  193. Intent i = new Intent(getApplicationContext(),LoginActivity.class);
  194. startActivity(i);
  195. }
  196. });
  197. }
  198.  
  199. private void submitForm() {
  200.  
  201. int selectedId = genderRadioGroup.getCheckedRadioButtonId();
  202. String gender;
  203. if(selectedId == R.id.female_radio_btn)
  204. gender = "Female";
  205. else
  206. gender = "Male";
  207.  
  208. registerUser(signupInputName.getText().toString(),
  209. signupInputEmail.getText().toString(),
  210. signupInputPassword.getText().toString(),
  211. gender,
  212. signupInputAge.getText().toString());
  213. }
  214.  
  215. private void registerUser(final String name, final String email, final String password,
  216. final String gender, final String dob) {
  217. // Tag used to cancel the request
  218. String cancel_req_tag = "register";
  219.  
  220. progressDialog.setMessage("Adding you ...");
  221. showDialog();
  222.  
  223. StringRequest strReq = new StringRequest(Request.Method.POST,
  224. URL_FOR_REGISTRATION, new Response.Listener<String>() {
  225.  
  226. @Override
  227. public void onResponse(String response) {
  228. Log.d(TAG, "Register Response: " + response.toString());
  229. hideDialog();
  230.  
  231. try {
  232. JSONObject jObj = new JSONObject(response);
  233. boolean error = jObj.getBoolean("error");
  234.  
  235. if (!error) {
  236. String user = jObj.getJSONObject("user").getString("name");
  237. Toast.makeText(getApplicationContext(), "Hi " + user +", You are successfully Added!", Toast.LENGTH_SHORT).show();
  238.  
  239. // Launch login activity
  240. Intent intent = new Intent(
  241. RegisterActivity.this,
  242. LoginActivity.class);
  243. startActivity(intent);
  244. finish();
  245. } else {
  246.  
  247. String errorMsg = jObj.getString("error_msg");
  248. Toast.makeText(getApplicationContext(),
  249. errorMsg, Toast.LENGTH_LONG).show();
  250. }
  251. } catch (JSONException e) {
  252. e.printStackTrace();
  253. }
  254.  
  255. }
  256. }, new Response.ErrorListener() {
  257.  
  258. @Override
  259. public void onErrorResponse(VolleyError error) {
  260. Log.e(TAG, "Registration Error: " + error.getMessage());
  261. Toast.makeText(getApplicationContext(),
  262. error.getMessage(), Toast.LENGTH_LONG).show();
  263. hideDialog();
  264. }
  265. }) {
  266. @Override
  267. protected Map<String, String> getParams() {
  268. // Posting params to register url
  269. Map<String, String> params = new HashMap<String, String>();
  270. params.put("name", name);
  271. params.put("email", email);
  272. params.put("password", password);
  273. params.put("gender", gender);
  274. params.put("age", dob);
  275. return params;
  276. }
  277. };
  278. // Adding request to request queue
  279. AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(strReq, cancel_req_tag);
  280. }
  281.  
  282. private void showDialog() {
  283. if (!progressDialog.isShowing())
  284. progressDialog.show();
  285. }
  286.  
  287. private void hideDialog() {
  288. if (progressDialog.isShowing())
  289. progressDialog.dismiss();
  290. }
  291.  
  292. }
  293.  
  294. package com.androidtutorialpoint.androidlogin;
  295. import android.content.Intent;
  296. import android.os.Bundle;
  297. import android.support.v7.app.AppCompatActivity;
  298. import android.view.View;
  299. import android.widget.Button;
  300.  
  301.  
  302. import android.widget.TextView;
  303. public class UserActivity extends AppCompatActivity {
  304.  
  305. private static final String TAG = "UserActivity";
  306.  
  307. private TextView greetingTextView;
  308. private Button btnLogOut;
  309.  
  310.  
  311. @Override
  312. protected void onCreate(Bundle savedInstanceState) {
  313. super.onCreate(savedInstanceState);
  314. setContentView(R.layout.activity_user);
  315. Bundle bundle = getIntent().getExtras();
  316. String user = bundle.getString("username");
  317. greetingTextView = (TextView) findViewById(R.id.greeting_text_view);
  318. btnLogOut = (Button) findViewById(R.id.logout_button);
  319. greetingTextView.setText("Hello "+ user);
  320. // Progress dialog
  321. btnLogOut.setOnClickListener(new View.OnClickListener() {
  322. @Override
  323. public void onClick(View view) {
  324. Intent i = new Intent(getApplicationContext(), LoginActivity.class);
  325. startActivity(i);
  326. }
  327. });
  328. }
  329. }
  330.  
  331. package com.androidtutorialpoint.androidlogin;
  332.  
  333. import android.content.Context;
  334. import com.android.volley.Request;
  335. import com.android.volley.RequestQueue;
  336. import com.android.volley.toolbox.Volley;
  337.  
  338. public class AppSingleton {
  339. private static AppSingleton mAppSingletonInstance;
  340. private RequestQueue mRequestQueue;
  341. private static Context mContext;
  342.  
  343. private AppSingleton(Context context) {
  344. mContext = context;
  345. mRequestQueue = getRequestQueue();
  346. }
  347.  
  348. public static synchronized AppSingleton getInstance(Context context) {
  349. if (mAppSingletonInstance == null) {
  350. mAppSingletonInstance = new AppSingleton(context);
  351. }
  352. return mAppSingletonInstance;
  353. }
  354.  
  355. public RequestQueue getRequestQueue() {
  356. if (mRequestQueue == null) {
  357. // getApplicationContext() is key, it keeps you from leaking the
  358. // Activity or BroadcastReceiver if someone passes one in.
  359. mRequestQueue = Volley.newRequestQueue(mContext.getApplicationContext());
  360. }
  361. return mRequestQueue;
  362. }
  363.  
  364. public <T> void addToRequestQueue(Request<T> req,String tag) {
  365. req.setTag(tag);
  366. getRequestQueue().add(req);
  367. }
  368. }
  369.  
  370. <?xml version="1.0" encoding="utf-8"?>
  371. <LinearLayout
  372. xmlns:android="http://schemas.android.com/apk/res/android"
  373. android:background="@color/bg_login"
  374. android:gravity="center"
  375. android:orientation="vertical"
  376. android:layout_width="fill_parent"
  377. android:layout_height="wrap_content"
  378. android:scrollbars="vertical"
  379. android:fillViewport="true"
  380. android:paddingTop="50dp"
  381. android:paddingLeft="20dp"
  382. android:paddingRight="20dp" >
  383. <android.support.design.widget.TextInputLayout
  384. android:id="@+id/login_input_layout_email"
  385. android:layout_width="match_parent"
  386. android:layout_height="wrap_content">
  387.  
  388. <EditText
  389. android:id="@+id/login_input_email"
  390. android:textColor="#000000"
  391. android:layout_width="match_parent"
  392. android:layout_height="wrap_content"
  393. android:inputType="textEmailAddress"
  394. android:hint="@string/hint_email" />
  395. </android.support.design.widget.TextInputLayout>
  396. <android.support.design.widget.TextInputLayout
  397. android:id="@+id/login_input_layout_password"
  398. android:layout_width="match_parent"
  399. android:layout_height="wrap_content">
  400. <EditText
  401. android:id="@+id/login_input_password"
  402. android:textColor="#000000"
  403. android:layout_width="match_parent"
  404. android:layout_height="wrap_content"
  405. android:inputType="textPassword"
  406. android:hint="@string/hint_password" />
  407. </android.support.design.widget.TextInputLayout>
  408. <Button android:id="@+id/btn_login"
  409. android:layout_width="fill_parent"
  410. android:layout_height="wrap_content"
  411. android:text="@string/btn_login"
  412. android:background="@color/login_button_background"
  413. android:layout_marginTop="20dp"
  414. android:textColor="@android:color/white"/>
  415. <Button android:id="@+id/btn_link_signup"
  416. android:layout_width="fill_parent"
  417. android:layout_height="wrap_content"
  418. android:text="@string/btn_link_signup"
  419. android:background="@null"
  420. android:layout_marginTop="3dp"
  421. android:textColor="@android:color/black"/>
  422. </LinearLayout>
  423.  
  424. <?xml version="1.0" encoding="utf-8"?>
  425. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  426. android:layout_width="fill_parent"
  427. android:layout_height="fill_parent"
  428. android:gravity="center"
  429. android:orientation="vertical"
  430. android:padding="10dp" >
  431. <LinearLayout
  432. android:layout_width="match_parent"
  433. android:layout_height="wrap_content"
  434. android:layout_gravity="center"
  435. android:orientation="vertical"
  436. android:paddingLeft="20dp"
  437. android:paddingRight="20dp" >
  438. <android.support.design.widget.TextInputLayout
  439. android:id="@+id/signup_input_layout_name"
  440. android:layout_width="match_parent"
  441. android:layout_height="wrap_content"
  442. android:layout_centerHorizontal="true"
  443. android:layout_marginTop="10dp">
  444. <EditText
  445. android:id="@+id/signup_input_name"
  446. android:layout_width="match_parent"
  447. android:layout_height="wrap_content"
  448. android:ems="10"
  449. android:hint="Name"/>
  450. </android.support.design.widget.TextInputLayout>
  451. <android.support.design.widget.TextInputLayout
  452. android:id="@+id/signup_input_layout_email"
  453. android:layout_width="match_parent"
  454. android:layout_height="wrap_content"
  455. android:layout_centerHorizontal="true"
  456. android:layout_marginTop="10dp">
  457. <EditText
  458. android:id="@+id/signup_input_email"
  459. android:layout_width="match_parent"
  460. android:layout_height="wrap_content"
  461. android:ems="10"
  462. android:inputType="textEmailAddress"
  463. android:hint="Email" />
  464. </android.support.design.widget.TextInputLayout>
  465. <android.support.design.widget.TextInputLayout
  466. android:id="@+id/signup_input_layout_password"
  467. android:layout_width="match_parent"
  468. android:layout_height="wrap_content"
  469. android:layout_centerHorizontal="true"
  470. android:layout_marginTop="10dp">
  471. <EditText
  472. android:id="@+id/signup_input_password"
  473. android:layout_width="match_parent"
  474. android:layout_height="wrap_content"
  475. android:ems="10"
  476. android:inputType="textPassword"
  477. android:hint="@string/hint_password" />
  478. </android.support.design.widget.TextInputLayout>
  479. <android.support.design.widget.TextInputLayout
  480. android:id="@+id/signup_input_layout_age"
  481. android:layout_width="match_parent"
  482. android:layout_height="wrap_content"
  483. android:layout_centerHorizontal="true"
  484. android:layout_marginTop="10dp">
  485. <EditText
  486. android:id="@+id/signup_input_age"
  487. android:layout_width="match_parent"
  488. android:layout_height="wrap_content"
  489. android:ems="10"
  490. android:hint="@string/hint_dob"/>
  491. </android.support.design.widget.TextInputLayout>
  492. <RelativeLayout
  493. android:layout_width="match_parent"
  494. android:layout_height="wrap_content"
  495. android:paddingTop="20dp">
  496. <TextView
  497. android:id="@+id/gender_textview"
  498. android:paddingRight="15dp"
  499. android:layout_width="wrap_content"
  500. android:layout_height="wrap_content"
  501. android:text="@string/hint_gender"
  502. android:fontFeatureSettings="@string/hint_password"
  503. android:textSize="20dp"
  504. android:fontFamily="@string/hint_password"/>
  505. <RadioGroup
  506. android:id="@+id/gender_radio_group"
  507. android:layout_width="wrap_content"
  508. android:layout_height="wrap_content"
  509. android:layout_toRightOf="@+id/gender_textview"
  510. android:orientation="horizontal">
  511. <RadioButton
  512. android:id="@+id/male_radio_btn"
  513. android:layout_width="wrap_content"
  514. android:layout_height="wrap_content"
  515. android:text="@string/male"
  516. android:checked="true"
  517. />
  518. <RadioButton
  519. android:id="@+id/female_radio_btn"
  520. android:layout_width="wrap_content"
  521. android:layout_height="wrap_content"
  522. android:text = "@string/female"
  523. />
  524. </RadioGroup>
  525. </RelativeLayout>
  526. <Button android:id="@+id/btn_signup"
  527. android:layout_width="fill_parent"
  528. android:layout_height="wrap_content"
  529. android:text="@string/btn_sign_up"
  530. android:background="@color/login_button_background"
  531. android:layout_marginTop="40dp"
  532. android:textColor="@android:color/white"/>
  533. <Button android:id="@+id/btn_link_login"
  534. android:layout_width="fill_parent"
  535. android:layout_height="wrap_content"
  536. android:text="@string/btn_link_login"
  537. android:background="@null"
  538. android:layout_marginTop="3dp"
  539. android:textColor="@android:color/black"/>
  540. </LinearLayout>
  541. </LinearLayout>
  542.  
  543. <?xml version="1.0" encoding="utf-8"?>
  544. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  545. android:layout_width="fill_parent"
  546. android:layout_height="wrap_content"
  547. android:scrollbars="vertical"
  548. android:fillViewport="true"
  549. android:orientation="vertical"
  550. android:gravity="center"
  551. android:paddingLeft="20dp"
  552. android:paddingRight="20dp">
  553. <TextView
  554. android:layout_marginTop="50dp"
  555. android:id="@+id/greeting_text_view"
  556. android:textColor="#000000"
  557. android:layout_width="wrap_content"
  558. android:layout_height="wrap_content"
  559. android:textSize="40dp"
  560. android:text="Hello, User"
  561. android:textStyle="bold"
  562. />
  563. <Button
  564. android:layout_marginTop="50dp"
  565. android:id="@+id/logout_button"
  566. android:textColor="#000000"
  567. android:layout_width="wrap_content"
  568. android:layout_height="wrap_content"
  569. android:text="Sign Out!!"
  570. android:textStyle="bold"
  571. />
  572. </LinearLayout>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement