Guest User

Untitled

a guest
Oct 15th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.78 KB | None | 0 0
  1. public class DbHelper extends SQLiteOpenHelper{
  2.  
  3. // private static final String TAG = DbHelper.class.getSimpleName();
  4. //declaration of database version
  5. private static final int DATABASE_VERSION = 1;
  6. //declare databsse
  7. private static final String DATABASE_NAME = "salesPortal.db";
  8. //declare table name
  9. private static final String TABLE_NAME = "tbl_user";
  10. //declareing table columns
  11. private static final String COLUMN_USER_ID ="user_id";
  12. private static final String COLUMN_NAME_NAME = "user_name";
  13. private static final String COLUMN_NAME_PASSWORD = "user_password";
  14. private static final String COLUMN_NAME_EMAIL = "user_email";
  15.  
  16. //===========login==================================
  17. //creating database tables
  18. private String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_NAME + "("
  19. + COLUMN_USER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_NAME_NAME + " TEXT,"
  20. + COLUMN_NAME_PASSWORD + " TEXT," + COLUMN_NAME_EMAIL + " TEXT" + ")";
  21. //if availabele drop the schema
  22. private String DROP_USER_TABLE = "DROP TABLE IF EXISTS " +TABLE_NAME;
  23. private Users users;
  24.  
  25. /**
  26. *Constructor
  27. *
  28. *@param context
  29. */
  30. public DbHelper(Context context){
  31.  
  32. super(context, DATABASE_NAME, null, DATABASE_VERSION);
  33. }
  34.  
  35. @Override
  36. public void onCreate(SQLiteDatabase sqLiteDatabase) {
  37. //create tb execution method
  38. sqLiteDatabase.execSQL(CREATE_USER_TABLE);
  39. sqLiteDatabase.execSQL(CREATE_MILEAGE_TABLE);
  40. sqLiteDatabase.execSQL(CREATE_SHOPSLIST_TABLE);
  41. sqLiteDatabase.execSQL(CREATE_STOCK_TABLE);
  42. Log.e("DATABASE OPERATION","table created successfully");
  43. }
  44.  
  45. @Override
  46. public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
  47. //drop table if availablr execution method
  48. sqLiteDatabase.execSQL(DROP_USER_TABLE);
  49. sqLiteDatabase.execSQL(DROP_MILEAGE_TABLE);
  50. sqLiteDatabase.execSQL(DROP_SALES_TABLE);
  51. String DROP_STOCK_TABLE = "DROP TABLE IF EXISTS " +tbName ;
  52. //drop table if available exercuion method
  53. sqLiteDatabase.execSQL(DROP_STOCK_TABLE);
  54. //calling on creating method
  55. onCreate(sqLiteDatabase);
  56.  
  57. }
  58. /**
  59. * creating user records
  60. *
  61. * @param newUser
  62. */
  63. public void addUser(Users newUser){
  64. SQLiteDatabase db = this.getWritableDatabase();
  65. ContentValues values = new ContentValues();
  66. values.put(COLUMN_NAME_NAME,newUser.getName());
  67. values.put(COLUMN_NAME_PASSWORD,newUser.getPassword());
  68. values.put(COLUMN_NAME_EMAIL,newUser.getEmail());
  69. db.insert(TABLE_NAME,null,values);
  70. db.close();
  71.  
  72. }
  73.  
  74. /**
  75. * fletch as alist user records
  76. *
  77. * @return list
  78. */
  79. public List<Users> getUsers() {
  80. // array of columns to fetch
  81. String[] columns = {
  82. COLUMN_USER_ID,
  83. COLUMN_NAME_EMAIL,
  84. COLUMN_NAME_NAME,
  85. COLUMN_NAME_PASSWORD
  86. };
  87. // sorting orders
  88. String sortOrder =
  89. COLUMN_NAME_NAME + " ASC";
  90. List<Users> userList = new ArrayList<Users>();
  91.  
  92. SQLiteDatabase db = this.getReadableDatabase();
  93.  
  94. // query the user table
  95. /**
  96. * Here query function is used to fetch records from user table this function works like we use sql query.
  97. * SQL query equivalent to this query function is
  98. * SELECT user_id,user_name,user_email,user_password FROM user ORDER BY user_name;
  99. */
  100. Cursor cursor = db.query(TABLE_NAME, //Table to query
  101. columns, //columns to return
  102. null, //columns for the WHERE clause
  103. null, //The values for the WHERE clause
  104. null, //group the rows
  105. null, //filter by row groups
  106. sortOrder); //The sort order
  107.  
  108.  
  109. // Traversing through all rows and adding to list
  110. if (cursor.moveToFirst()) {
  111. do {
  112. Users user = new Users();
  113. user.setUserId(Integer.parseInt(cursor.getString(cursor.getColumnIndex(COLUMN_USER_ID))));
  114. user.setName(cursor.getString(cursor.getColumnIndex(COLUMN_NAME_NAME)));
  115. user.setEmail(cursor.getString(cursor.getColumnIndex(COLUMN_NAME_EMAIL)));
  116. user.setPassword(cursor.getString(cursor.getColumnIndex(COLUMN_NAME_PASSWORD)));
  117. // Adding user record to list
  118. userList.add(user);
  119. } while (cursor.moveToNext());
  120. }
  121. cursor.close();
  122. db.close();
  123.  
  124. // return user list
  125. return userList;
  126. }
  127. /**
  128. * This method to update user record
  129. *
  130. * @param users
  131. */
  132. public void updateUser(Users users){
  133. SQLiteDatabase db = this.getWritableDatabase();
  134. ContentValues values = new ContentValues();
  135. values.put(COLUMN_NAME_NAME,users.getName());
  136. values.put(COLUMN_NAME_PASSWORD,users.getPassword());
  137. values.put(COLUMN_NAME_EMAIL,users.getEmail());
  138. db.update(TABLE_NAME,values,COLUMN_USER_ID + "=?"
  139. ,new String[]{String.valueOf(users.getUserId())});
  140. db.close();
  141. }
  142. /**
  143. * This method is to delete user record
  144. *
  145. * @param user
  146. */
  147. public boolean deleteUser(Users user){
  148. SQLiteDatabase db = this.getWritableDatabase();
  149. db.delete(TABLE_NAME,COLUMN_USER_ID + "=?",
  150. new String[]{String.valueOf(user.getUserId())});
  151. db.close();
  152. return true;
  153. }
  154.  
  155. /**
  156. * This method to check user exist or not
  157. *
  158. * @param email
  159. * @param password
  160. * @return true/false
  161. */
  162.  
  163. public Users checkUser(String email,String password){
  164. Users users =null;
  165. try {
  166. SQLiteDatabase db = getReadableDatabase();
  167. Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME + " WHERE user_email = ? AND user_password = ?" ,new String[]{email,password} );
  168. if (cursor.moveToFirst()){
  169. users = new Users();
  170. users.setUserId(cursor.getInt(0));
  171. users.setName(cursor.getString(1));
  172. users.setPassword(cursor.getString(2));
  173. users.setEmail(cursor.getString(3));
  174. }
  175. }catch (Exception e){
  176. users=null;
  177. }
  178. return users;
  179.  
  180. }
  181.  
  182. public boolean checkUser(String email) {
  183.  
  184. // array of columns to fetch
  185. String[] columns = {
  186. COLUMN_USER_ID
  187. };
  188. SQLiteDatabase db = this.getReadableDatabase();
  189.  
  190. // selection criteria
  191. String selection = COLUMN_NAME_EMAIL + " = ?";
  192.  
  193. // selection argument
  194. String[] selectionArgs = {email};
  195.  
  196. // query user table with condition
  197. /**
  198. *
  199. */
  200.  
  201. Cursor cursor = db.query(TABLE_NAME,columns,selection, selectionArgs,null,null,null);
  202. int cursorCount = cursor.getCount();
  203. cursor.close();
  204. db.close();
  205.  
  206. if (cursorCount > 0) {
  207. return true;
  208. }
  209.  
  210. return false;
  211. }
  212.  
  213. public boolean checkWithOldPassword(String OldPassword) {
  214.  
  215. // array of columns to fetch
  216. String[] columns = {
  217. COLUMN_USER_ID
  218. };
  219. SQLiteDatabase db = this.getReadableDatabase();
  220.  
  221. // selection criteria
  222. String selection = COLUMN_NAME_PASSWORD + " = ?";
  223.  
  224. // selection argument
  225. String[] selectionArgs = {OldPassword};
  226.  
  227. // query user table with condition
  228. /**
  229. *
  230. */
  231.  
  232. Cursor cursor = db.query(TABLE_NAME,columns,selection, selectionArgs,null,null,null);
  233. int cursorCount = cursor.getCount();
  234. cursor.close();
  235. db.close();
  236.  
  237. if (cursorCount > 0) {
  238. return true;
  239. }
  240.  
  241. return false;
  242. }
  243.  
  244. public class LoginActivity extends AppCompatActivity implements
  245. View.OnClickListener{
  246. private final AppCompatActivity activity = LoginActivity.this;
  247. private RelativeLayout relativeLayout;
  248.  
  249.  
  250. private TextInputLayout textInputLayoutEmail;
  251. private TextInputLayout textInputLayoutPassword;
  252.  
  253. private TextInputEditText textInputEditTextEmail;
  254. private TextInputEditText textInputEditTextPassword;
  255.  
  256. private AppCompatButton appCompatButtonLogin;
  257. private AppCompatTextView textViewLinkRegister;
  258.  
  259. private Validation validations;
  260. private DbHelper dbHelper;
  261. private Users users;
  262.  
  263.  
  264.  
  265. @Override
  266. protected void onCreate(Bundle savedInstanceState) {
  267. super.onCreate(savedInstanceState);
  268. setContentView(R.layout.activity_login);
  269.  
  270.  
  271.  
  272. initViews();
  273. initListeners();
  274. initObjects();
  275.  
  276.  
  277. }
  278. //intializing all objects that are used on application login
  279. private void initObjects() {
  280. dbHelper = new DbHelper(activity);
  281. validations = new Validation(activity);
  282. users = new Users();
  283.  
  284. }
  285. //intializing all listerners
  286. private void initListeners() {
  287. appCompatButtonLogin.setOnClickListener(this);
  288. textViewLinkRegister.setOnClickListener(this);
  289. }
  290.  
  291. //intializing all views on login
  292. private void initViews() {
  293. relativeLayout = findViewById(R.id.relativeLayout);
  294.  
  295. textInputLayoutEmail = findViewById(R.id.textInputLayoutEmail);
  296. textInputLayoutPassword = findViewById(R.id.textInputLayoutPassword);
  297.  
  298. textInputEditTextPassword = findViewById(R.id.textInputEditTextPassword);
  299. textInputEditTextEmail = findViewById(R.id.textInputEditTextEmail);
  300.  
  301. appCompatButtonLogin = findViewById(R.id.appCompatButtonLogin);
  302. textViewLinkRegister = findViewById(R.id.textViewLinkRegister);
  303.  
  304.  
  305. }
  306.  
  307. /**
  308. * implemetation of listerners of all views
  309. *
  310. * @param view
  311. */
  312. @Override
  313. public void onClick(View view) {
  314. switch (view.getId()){
  315. case R.id.appCompatButtonLogin : verifyFromSQLite();
  316. break;
  317. case R.id.textViewLinkRegister :Intent intentReg = new Intent(getApplicationContext(),RegisterActivity.class);
  318. startActivity(intentReg);
  319. break;
  320. }
  321. }
  322.  
  323. /**
  324. * verify all input textfields and verify credentials
  325. */
  326. public Boolean verifyFromSQLite() {
  327. if(!validations.isInputEditTextFilled(textInputEditTextEmail,textInputLayoutEmail,getString(R.string.error_message_email))){
  328. return false;
  329. }
  330. if(!validations.isTextEmailEmpty(textInputEditTextEmail,textInputLayoutEmail,getString(R.string.error_message_email))){
  331. return false;
  332. }
  333. if ((!validations.isInputEditTextFilled(textInputEditTextPassword,textInputLayoutPassword,getString(R.string.error_message_password)))){
  334. return false;
  335. }
  336. Users users = dbHelper.checkUser(textInputEditTextEmail.getText().toString().trim(),textInputEditTextPassword.getText().toString().trim());
  337. // if (dbHelper.checkUser(textInputEditTextEmail.getText().toString().trim()
  338. //, textInputEditTextPassword.getText().toString().trim())) {
  339. if(users ==null){
  340. //snack bar to show success message that record is wrong
  341. Snackbar.make(relativeLayout,getString(R.string.error_valid_email_password),Snackbar.LENGTH_LONG).show();
  342. }
  343. else{
  344. Intent accintent = new Intent(activity,MainMenuActivity.class);
  345. accintent.putExtra("EMAIL",textInputEditTextEmail.getText().toString().trim());
  346. emptyInputTextFields();
  347. startActivity(accintent);
  348. finish();
  349. return true;
  350.  
  351.  
  352. }
  353. return true;
  354. }
  355.  
  356.  
  357. private void emptyInputTextFields() {
  358. textInputEditTextEmail.setText(null);
  359. textInputEditTextPassword.setText(null);
  360.  
  361. }
  362.  
  363. public class UserProfileActivity extends AppCompatActivity implements View.OnClickListener {
  364. private final AppCompatActivity activity = UserProfileActivity.this;
  365. private RelativeLayout relativeLayout;
  366. private TextInputLayout textInputLayoutNameP;
  367. private TextInputLayout textInputLayoutOldPass;
  368. private TextInputLayout textInputLayoutNewPasswordP;
  369. private TextInputLayout textInputLayoutConfirmPassword;
  370.  
  371. private TextInputEditText textInputEditTextNameP;
  372. private TextInputEditText textInputEditTextOldPass;
  373. private TextInputEditText textInputEditTextNewPasswordP;
  374. private TextInputEditText textInputEditTextConfirmNewPassword;
  375.  
  376. private Validation validation;
  377. private DbHelper dbHelper;
  378. private Users users;
  379.  
  380. private AppCompatButton appCompatButtonUPDATE,appCompatButtonDELETE;
  381.  
  382. @Override
  383. protected void onCreate(Bundle savedInstanceState) {
  384. super.onCreate(savedInstanceState);
  385. setContentView(R.layout.activity_user_profile);
  386.  
  387. initViews();
  388. initListeners();
  389. initObjects();
  390. loadData();
  391.  
  392. }
  393.  
  394. private void initViews() {
  395. relativeLayout = findViewById(R.id.relativeLayout);
  396. textInputLayoutNameP = findViewById(R.id.textInputLayoutNameP);
  397. textInputLayoutOldPass = findViewById(R.id.textInputLayoutOldPass);
  398. textInputLayoutNewPasswordP = findViewById(R.id.textInputLayoutNewPasswordP);
  399. textInputLayoutConfirmPassword = findViewById(R.id.textInputLayoutConfirmPassword);
  400.  
  401. textInputEditTextNameP = findViewById(R.id.textInputEditTextNameP);
  402. textInputEditTextNewPasswordP = findViewById(R.id.textInputEditTextNewPasswordP);
  403. textInputEditTextOldPass = findViewById(R.id.textInputEditTextOldPass);
  404. textInputEditTextConfirmNewPassword = findViewById(R.id.textInputEditTextConfirmPassword);
  405.  
  406. appCompatButtonDELETE = findViewById(R.id.appCompatButtonDELETE);
  407. appCompatButtonUPDATE = findViewById(R.id.appCompatButtonUPDATE);
  408. }
  409.  
  410. private void initListeners() {
  411. appCompatButtonDELETE.setOnClickListener(this);
  412. appCompatButtonUPDATE.setOnClickListener(this);
  413. }
  414.  
  415. private void initObjects() {
  416. dbHelper = new DbHelper(activity);
  417. validation = new Validation(activity);
  418. users = new Users();
  419. }
  420.  
  421. @Override
  422. public void onClick(View v) {
  423. switch (v.getId()){
  424. case R.id.appCompatButtonUPDATE : updateMethod();
  425. break;
  426. case R.id.appCompatButtonDELETE : deleteMethod();
  427. //Intent intent =new Intent(getApplicationContext(),LoginActivity.class);
  428. //startActivity(intent);
  429. // break;
  430. }
  431.  
  432.  
  433. }
  434.  
  435.  
  436.  
  437. private void loadData(){
  438. Intent intent = getIntent();
  439. users = (Users) intent.getSerializableExtra("user");
  440. textInputEditTextNameP.setText(users.getName());
  441.  
  442. }
  443.  
  444. private boolean updateMethod(){
  445. if(!validation.isInputEditTextFilled(textInputEditTextNameP,textInputLayoutNameP,getString(R.string.error_message_email))){
  446. return false;
  447. }
  448. if(!validation.isTextFiledsMatches(textInputEditTextNewPasswordP,textInputEditTextConfirmNewPassword,textInputLayoutConfirmPassword,getString(R.string.error_password_match))){
  449. return false;
  450. }
  451. if(dbHelper.checkWithOldPassword(textInputEditTextOldPass.getText().toString().trim())){
  452.  
  453. users.setName(textInputEditTextNameP.getText().toString().trim());
  454. //users.setEmail(textInputEditTextEmail.getText().toString().trim());
  455. users.setPassword(textInputEditTextNewPasswordP.getText().toString().trim());
  456. dbHelper.updateUser(users);
  457. Snackbar.make(relativeLayout, getString(R.string.profile_update), Snackbar.LENGTH_LONG).show();
  458. return true;
  459. }
  460. else
  461. {
  462. Snackbar.make(relativeLayout, getString(R.string.error_oldPassword), Snackbar.LENGTH_LONG).show();
  463. return false;
  464. }
  465. }
  466.  
  467. private void deleteMethod() {
  468. dbHelper.deleteUser(users);
  469. Snackbar.make(relativeLayout,"USER DELETED", Snackbar.LENGTH_LONG).show();
  470. }
  471.  
  472. public class Users implements Serializable {
  473. private static int userId;
  474. private static String name;
  475. private static String password;
  476. private static String email;
Add Comment
Please, Sign In to add comment