Advertisement
Guest User

Untitled

a guest
Sep 5th, 2017
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.51 KB | None | 0 0
  1. package com.delaroystudios.sqlitelogin.activities;
  2.  
  3. import android.os.Bundle;
  4. import android.support.v7.app.AppCompatActivity;
  5. import android.widget.TextView;
  6.  
  7. import com.delaroystudios.sqlitelogin.R;
  8.  
  9.  
  10. public class UsersActivity extends AppCompatActivity {
  11.  
  12. private TextView textViewName;
  13.  
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState){
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.activity_users);
  18.  
  19. textViewName = (TextView) findViewById(R.id.text1);
  20. String nameFromIntent = getIntent().getStringExtra("NAME");
  21. textViewName.setText("Welcome " + nameFromIntent);
  22. }
  23. }
  24.  
  25. LoginActivity.java
  26. package com.delaroystudios.sqlitelogin.activities;
  27.  
  28. import android.content.Intent;
  29. import android.support.design.widget.Snackbar;
  30. import android.support.design.widget.TextInputEditText;
  31. import android.support.design.widget.TextInputLayout;
  32. import android.support.v4.widget.NestedScrollView;
  33. import android.support.v7.app.AppCompatActivity;
  34. import android.os.Bundle;
  35. import android.support.v7.widget.AppCompatButton;
  36. import android.support.v7.widget.AppCompatTextView;
  37. import android.view.View;
  38.  
  39. import com.delaroystudios.sqlitelogin.R;
  40. import com.delaroystudios.sqlitelogin.helper.InputValidation;
  41. import com.delaroystudios.sqlitelogin.sql.DatabaseHelper;
  42.  
  43. public class LoginActivity extends AppCompatActivity implements View.OnClickListener {
  44.  
  45. private final AppCompatActivity activity = LoginActivity.this;
  46.  
  47. private NestedScrollView nestedScrollView;
  48.  
  49. private TextInputLayout textInputLayoutEmail;
  50. private TextInputLayout textInputLayoutPassword;
  51.  
  52. private TextInputEditText textInputEditTextEmail;
  53. private TextInputEditText textInputEditTextPassword;
  54.  
  55. private AppCompatButton appCompatButtonLogin;
  56.  
  57. private AppCompatTextView textViewLinkRegister;
  58.  
  59. private InputValidation inputValidation;
  60. private DatabaseHelper databaseHelper;
  61.  
  62. @Override
  63. protected void onCreate(Bundle savedInstanceState) {
  64. super.onCreate(savedInstanceState);
  65. setContentView(R.layout.activity_login);
  66. getSupportActionBar().hide();
  67.  
  68. initViews();
  69. initListeners();
  70. initObjects();
  71. }
  72. private void initViews(){
  73. nestedScrollView = (NestedScrollView) findViewById(R.id.nestedScrollView);
  74.  
  75. textInputLayoutEmail = (TextInputLayout) findViewById(R.id.textInputLayoutEmail);
  76. textInputLayoutPassword = (TextInputLayout) findViewById(R.id.textInputLayoutPassword);
  77.  
  78. textInputEditTextEmail = (TextInputEditText) findViewById(R.id.textInputEditTextEmail);
  79. textInputEditTextPassword = (TextInputEditText) findViewById(R.id.textInputEditTextPassword);
  80.  
  81. appCompatButtonLogin = (AppCompatButton) findViewById(R.id.appCompatButtonLogin);
  82.  
  83. textViewLinkRegister = (AppCompatTextView) findViewById(R.id.textViewLinkRegister);
  84. }
  85.  
  86. private void initListeners(){
  87. appCompatButtonLogin.setOnClickListener(this);
  88. textViewLinkRegister.setOnClickListener(this);
  89. }
  90.  
  91. private void initObjects(){
  92. databaseHelper = new DatabaseHelper(activity);
  93. inputValidation = new InputValidation(activity);
  94. }
  95.  
  96. @Override
  97. public void onClick(View v){
  98. switch (v.getId()){
  99. case R.id.appCompatButtonLogin:
  100. verifyFromSQLite();
  101. break;
  102. case R.id.textViewLinkRegister:
  103. Intent intentRegister = new Intent(getApplicationContext(), RegisterActivity.class);
  104. startActivity(intentRegister);
  105. break;
  106. }
  107. }
  108.  
  109. private void verifyFromSQLite(){
  110. if (!inputValidation.isInputEditTextFilled(textInputEditTextEmail, textInputLayoutEmail, getString(R.string.error_message_email))) {
  111. return;
  112. }
  113. if (!inputValidation.isInputEditTextEmail(textInputEditTextEmail, textInputLayoutEmail, getString(R.string.error_message_email))) {
  114. return;
  115. }
  116. if (!inputValidation.isInputEditTextFilled(textInputEditTextPassword, textInputLayoutPassword, getString(R.string.error_message_email))) {
  117. return;
  118. }
  119.  
  120. if (databaseHelper.checkUser(textInputEditTextEmail.getText().toString().trim()
  121. , textInputEditTextPassword.getText().toString().trim())) {
  122. Intent accountsIntent = new Intent(activity, UsersActivity.class);
  123. accountsIntent.putExtra("EMAIL", textInputEditTextEmail.getText().toString().trim());
  124. emptyInputEditText();
  125. startActivity(accountsIntent);
  126. }
  127.  
  128. else {
  129. Snackbar.make(nestedScrollView, getString(R.string.error_valid_email_password), Snackbar.LENGTH_LONG).show();
  130. }
  131. }
  132.  
  133. private void emptyInputEditText(){
  134. textInputEditTextEmail.setText(null);
  135. textInputEditTextPassword.setText(null);
  136. }
  137. }
  138.  
  139. RegisterActivity.java
  140. package com.delaroystudios.sqlitelogin.activities;
  141.  
  142. import android.os.Bundle;
  143. import android.support.design.widget.Snackbar;
  144. import android.support.design.widget.TextInputEditText;
  145. import android.support.design.widget.TextInputLayout;
  146. import android.support.v4.widget.NestedScrollView;
  147. import android.support.v7.app.AppCompatActivity;
  148. import android.support.v7.widget.AppCompatButton;
  149. import android.support.v7.widget.AppCompatTextView;
  150. import android.view.View;
  151.  
  152. import com.delaroystudios.sqlitelogin.R;
  153. import com.delaroystudios.sqlitelogin.helper.InputValidation;
  154. import com.delaroystudios.sqlitelogin.model.User;
  155. import com.delaroystudios.sqlitelogin.sql.DatabaseHelper;
  156.  
  157.  
  158. public class RegisterActivity extends AppCompatActivity implements View.OnClickListener {
  159.  
  160. private final AppCompatActivity activity = RegisterActivity.this;
  161.  
  162. private NestedScrollView nestedScrollView;
  163.  
  164. private TextInputLayout textInputLayoutName;
  165. private TextInputLayout textInputLayoutEmail;
  166. private TextInputLayout textInputLayoutPassword;
  167. private TextInputLayout textInputLayoutConfirmPassword;
  168.  
  169. private TextInputEditText textInputEditTextName;
  170. private TextInputEditText textInputEditTextEmail;
  171. private TextInputEditText textInputEditTextPassword;
  172. private TextInputEditText textInputEditTextConfirmPassword;
  173.  
  174. private AppCompatButton appCompatButtonRegister;
  175. private AppCompatTextView appCompatTextViewLoginLink;
  176.  
  177. private InputValidation inputValidation;
  178. private DatabaseHelper databaseHelper;
  179. private User user;
  180.  
  181. @Override
  182. protected void onCreate(Bundle savedInstanceState){
  183. super.onCreate(savedInstanceState);
  184. setContentView(R.layout.activity_register);
  185. getSupportActionBar().hide();
  186.  
  187. initViews();
  188. initListeners();
  189. initObjects();
  190. }
  191.  
  192. private void initViews(){
  193. nestedScrollView = (NestedScrollView) findViewById(R.id.nestedScrollView);
  194.  
  195. textInputLayoutName = (TextInputLayout) findViewById(R.id.textInputLayoutName);
  196. textInputLayoutEmail = (TextInputLayout) findViewById(R.id.textInputLayoutEmail);
  197. textInputLayoutPassword = (TextInputLayout) findViewById(R.id.textInputLayoutPassword);
  198. textInputLayoutConfirmPassword = (TextInputLayout) findViewById(R.id.textInputLayoutConfirmPassword);
  199.  
  200. textInputEditTextName = (TextInputEditText) findViewById(R.id.textInputEditTextName);
  201. textInputEditTextEmail = (TextInputEditText) findViewById(R.id.textInputEditTextEmail);
  202. textInputEditTextPassword = (TextInputEditText) findViewById(R.id.textInputEditTextPassword);
  203. textInputEditTextConfirmPassword = (TextInputEditText) findViewById(R.id.textInputEditTextConfirmPassword);
  204.  
  205. appCompatButtonRegister = (AppCompatButton) findViewById(R.id.appCompatButtonRegister);
  206.  
  207. appCompatTextViewLoginLink = (AppCompatTextView) findViewById(R.id.appCompatTextViewLoginLink);
  208. }
  209.  
  210. private void initListeners(){
  211. appCompatButtonRegister.setOnClickListener(this);
  212. appCompatTextViewLoginLink.setOnClickListener(this);
  213. }
  214.  
  215. private void initObjects(){
  216. inputValidation = new InputValidation(activity);
  217. databaseHelper = new DatabaseHelper(activity);
  218. user = new User();
  219. }
  220.  
  221. @Override
  222. public void onClick(View v){
  223. switch (v.getId()){
  224. case R.id.appCompatButtonRegister:
  225. postDataToSQLite();
  226. break;
  227. case R.id.appCompatTextViewLoginLink:
  228. finish();
  229. break;
  230. }
  231. }
  232.  
  233. private void postDataToSQLite(){
  234. if (!inputValidation.isInputEditTextFilled(textInputEditTextName, textInputLayoutName, getString(R.string.error_message_name))) {
  235. return;
  236. }
  237. if (!inputValidation.isInputEditTextFilled(textInputEditTextEmail, textInputLayoutEmail, getString(R.string.error_message_email))) {
  238. return;
  239. }
  240. if (!inputValidation.isInputEditTextEmail(textInputEditTextEmail, textInputLayoutEmail, getString(R.string.error_message_email))) {
  241. return;
  242. }
  243. if (!inputValidation.isInputEditTextFilled(textInputEditTextPassword, textInputLayoutPassword, getString(R.string.error_message_password))) {
  244. return;
  245. }
  246. if (!inputValidation.isInputEditTextMatches(textInputEditTextPassword, textInputEditTextConfirmPassword,
  247. textInputLayoutConfirmPassword, getString(R.string.error_password_match))) {
  248. return;
  249. }
  250.  
  251. if (!databaseHelper.checkUser(textInputEditTextEmail.getText().toString().trim())) {
  252.  
  253. user.setName(textInputEditTextName.getText().toString().trim());
  254. user.setEmail(textInputEditTextEmail.getText().toString().trim());
  255. user.setPassword(textInputEditTextPassword.getText().toString().trim());
  256.  
  257. databaseHelper.addUser(user);
  258.  
  259. // Snack Bar to show success message that record saved successfully
  260. Snackbar.make(nestedScrollView, getString(R.string.success_message), Snackbar.LENGTH_LONG).show();
  261. emptyInputEditText();
  262.  
  263.  
  264. } else {
  265. // Snack Bar to show error message that record already exists
  266. Snackbar.make(nestedScrollView, getString(R.string.error_email_exists), Snackbar.LENGTH_LONG).show();
  267. }
  268.  
  269.  
  270. }
  271.  
  272. private void emptyInputEditText(){
  273. textInputEditTextName.setText(null);
  274. textInputEditTextEmail.setText(null);
  275. textInputEditTextPassword.setText(null);
  276. textInputEditTextConfirmPassword.setText(null);
  277. }
  278.  
  279. }
  280.  
  281. InputValidation.java
  282. package com.delaroystudios.sqlitelogin.helper;
  283.  
  284. import android.app.Activity;
  285. import android.content.Context;
  286. import android.support.design.widget.TextInputEditText;
  287. import android.support.design.widget.TextInputLayout;
  288. import android.util.Patterns;
  289. import android.view.View;
  290. import android.view.WindowManager;
  291. import android.view.inputmethod.InputMethodManager;
  292.  
  293.  
  294. public class InputValidation {
  295.  
  296. private Context context;
  297.  
  298. public InputValidation(Context context){
  299. this.context = context;
  300. }
  301.  
  302. public boolean isInputEditTextFilled(TextInputEditText textInputEditText, TextInputLayout textInputLayout, String message){
  303. String value = textInputEditText.getText().toString().trim();
  304. if (value.isEmpty()){
  305. textInputLayout.setError(message);
  306. hideKeyboardFrom(textInputEditText);
  307. return false;
  308. } else {
  309. textInputLayout.setErrorEnabled(false);
  310. }
  311. return true;
  312. }
  313.  
  314. public boolean isInputEditTextEmail(TextInputEditText textInputEditText, TextInputLayout textInputLayout, String message){
  315. String value = textInputEditText.getText().toString().trim();
  316. if (value.isEmpty() || !Patterns.EMAIL_ADDRESS.matcher(value).matches()){
  317. textInputLayout.setError(message);
  318. hideKeyboardFrom(textInputEditText);
  319. return false;
  320.  
  321. }else {
  322. textInputLayout.setErrorEnabled(false);
  323. }
  324. return true;
  325. }
  326.  
  327. public boolean isInputEditTextMatches(TextInputEditText textInputEditText1, TextInputEditText textInputEditText2, TextInputLayout textInputLayout, String message ){
  328. String value1 = textInputEditText1.getText().toString().trim();
  329. String value2 = textInputEditText2.getText().toString().trim();
  330. if (!value1.contentEquals(value2)){
  331. textInputLayout.setError(message);
  332. hideKeyboardFrom(textInputEditText2);
  333. return false;
  334. }else {
  335. textInputLayout.setErrorEnabled(false);
  336. }
  337. return true;
  338. }
  339.  
  340. private void hideKeyboardFrom(View view){
  341. InputMethodManager imm = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
  342. imm.hideSoftInputFromWindow(view.getWindowToken(), WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
  343. }
  344. }
  345.  
  346. User.java
  347. package com.delaroystudios.sqlitelogin.model;
  348.  
  349.  
  350. public class User {
  351.  
  352. private int id;
  353. private String name;
  354. private String email;
  355. private String password;
  356.  
  357. public int getId(){
  358. return id;
  359. }
  360.  
  361. public void setId(int id){
  362. this.id = id;
  363. }
  364.  
  365. public String getName(){
  366. return name;
  367. }
  368.  
  369. public void setName(String name){
  370. this.name = name;
  371. }
  372.  
  373. public String getEmail(){
  374. return email;
  375. }
  376.  
  377. public void setEmail(String email){
  378. this.email = email;
  379. }
  380.  
  381. public String getPassword(){
  382. return password;
  383. }
  384.  
  385. public void setPassword(String password){
  386. this.password = password;
  387. }
  388. }
  389.  
  390. Databasehelper.java
  391. package com.delaroystudios.sqlitelogin.sql;
  392.  
  393. import android.content.ContentValues;
  394. import android.content.Context;
  395. import android.database.Cursor;
  396. import android.database.sqlite.SQLiteDatabase;
  397. import android.database.sqlite.SQLiteOpenHelper;
  398.  
  399. import com.delaroystudios.sqlitelogin.model.User;
  400.  
  401.  
  402. public class DatabaseHelper extends SQLiteOpenHelper{
  403.  
  404. private static final int DATABASE_VERSION = 1;
  405.  
  406. private static final String DATABASE_NAME = "UserManager.db";
  407.  
  408. private static final String TABLE_USER = "user";
  409.  
  410. private static final String COLUMN_USER_ID = "user_id";
  411. private static final String COLUMN_USER_NAME = "user_name";
  412. private static final String COLUMN_USER_EMAIL = "user_email";
  413. private static final String COLUMN_USER_PASSWORD = "user_password";
  414.  
  415. private String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USER + "("
  416. + COLUMN_USER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_USER_NAME + " TEXT,"
  417. + COLUMN_USER_EMAIL + " TEXT," + COLUMN_USER_PASSWORD + " TEXT" + ")";
  418.  
  419. private String DROP_USER_TABLE = "DROP TABLE IF EXISTS " + TABLE_USER;
  420.  
  421. public DatabaseHelper(Context context){
  422. super(context, DATABASE_NAME, null, DATABASE_VERSION);
  423. }
  424.  
  425. @Override
  426. public void onCreate(SQLiteDatabase db){
  427. db.execSQL(CREATE_USER_TABLE);
  428. }
  429.  
  430. @Override
  431. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
  432. db.execSQL(DROP_USER_TABLE);
  433. onCreate(db);
  434. }
  435.  
  436. public void addUser(User user){
  437. SQLiteDatabase db = this.getWritableDatabase();
  438. ContentValues values = new ContentValues();
  439. values.put(COLUMN_USER_NAME, user.getName());
  440. values.put(COLUMN_USER_EMAIL, user.getEmail());
  441. values.put(COLUMN_USER_PASSWORD, user.getPassword());
  442.  
  443. db.insert(TABLE_USER, null, values);
  444. db.close();
  445. }
  446.  
  447. public boolean checkUser(String email){
  448. String[] columns = {
  449. COLUMN_USER_ID
  450. };
  451. SQLiteDatabase db = this.getWritableDatabase();
  452. String selection = COLUMN_USER_EMAIL + " = ?";
  453. String[] selectionArgs = { email };
  454.  
  455. Cursor cursor = db.query(TABLE_USER,
  456. columns,
  457. selection,
  458. selectionArgs,
  459. null,
  460. null,
  461. null);
  462. int cursorCount = cursor.getCount();
  463. cursor.close();
  464. db.close();
  465.  
  466. if (cursorCount > 0){
  467. return true;
  468. }
  469. return false;
  470. }
  471.  
  472. public boolean checkUser(String email, String password){
  473. String[] columns = {
  474. COLUMN_USER_ID
  475. };
  476. SQLiteDatabase db = this.getWritableDatabase();
  477. String selection = COLUMN_USER_EMAIL + " = ?" + " AND " + COLUMN_USER_PASSWORD + " =?";
  478. String[] selectionArgs = { email, password };
  479.  
  480. Cursor cursor = db.query(TABLE_USER,
  481. columns,
  482. selection,
  483. selectionArgs,
  484. null,
  485. null,
  486. null);
  487. int cursorCount = cursor.getCount();
  488. cursor.close();
  489. db.close();
  490.  
  491. if (cursorCount > 0){
  492. return true;
  493. }
  494. return false;
  495. }
  496. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement