From aaec3e8f2a15382a6d78d02d840cc5c3234b3574 Mon Sep 17 00:00:00 2001 From: zday123 Date: Thu, 4 Oct 2018 14:53:38 -0400 Subject: [PATCH 01/17] Added Singleton Database.java. Still have RNJavaLink changes and RegisterPage.js changes to push, but idk if they are good commits. --- .../src/main/java/com/donatrix/Database.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 android/app/src/main/java/com/donatrix/Database.java diff --git a/android/app/src/main/java/com/donatrix/Database.java b/android/app/src/main/java/com/donatrix/Database.java new file mode 100644 index 0000000..296be96 --- /dev/null +++ b/android/app/src/main/java/com/donatrix/Database.java @@ -0,0 +1,21 @@ +//if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end + //parse("File Header.java") + + +public class Database { + private static Database ourInstance; + private ArrayList userList; + private ArrayList passList; + + public static Database getInstance() { + if (this.ourInstance != null) { + return ourInstance + } + return ourInstance = new Database(); + } + + private Database() { + userList = new ArrayList(); + passList = new ArrayList(); + } +} From 82ec1894848163f900b8a6eac3899d0cbc5518f1 Mon Sep 17 00:00:00 2001 From: zday123 Date: Wed, 10 Oct 2018 09:00:52 -0400 Subject: [PATCH 02/17] Getting Singleton to work. Added getters for Database.java and changed RNJavaLink and RegisterPage.js to hopefully work with the ArrayLists. --- .../src/main/java/com/donatrix/Database.java | 45 ++++++++++++++++++- .../main/java/com/donatrix/RNJavaLink.java | 14 ++++-- .../pages/registerPage/RegisterPage.js | 9 +++- 3 files changed, 61 insertions(+), 7 deletions(-) diff --git a/android/app/src/main/java/com/donatrix/Database.java b/android/app/src/main/java/com/donatrix/Database.java index 296be96..3eca891 100644 --- a/android/app/src/main/java/com/donatrix/Database.java +++ b/android/app/src/main/java/com/donatrix/Database.java @@ -1,15 +1,19 @@ //if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end //parse("File Header.java") +import java.util.ArrayList; + public class Database { private static Database ourInstance; private ArrayList userList; private ArrayList passList; + private ArrayList lockedList; + private ArrayList nameList; public static Database getInstance() { - if (this.ourInstance != null) { - return ourInstance + if (Database.ourInstance != null) { + return ourInstance; } return ourInstance = new Database(); } @@ -17,5 +21,42 @@ public static Database getInstance() { private Database() { userList = new ArrayList(); passList = new ArrayList(); + lockedList = new ArrayList(); + nameList = new ArrayList(); + } + + public ArrayList getUserList() { + return userList; + } + + public ArrayList getPassList() { + return passList; + } + + public ArrayList getLockedList() { + return lockedList; + } + + public ArrayList getNameList() { + return nameList; + } + + public void registerUser(String username, String password, String locked, String name) { + if (!(userList.contains(username)) && !(passList.contains(password))) { + userList.add(username); + passList.add(password); + lockedList.add(locked); + nameList.add(name); + } else { + throw new IllegalArgumentException("Username or password not correct"); + } + } + + public boolean checkRegisteredUser(String username, String password) { + if (userList.contains(username) && passList.contains(password) + && userList.indexOf(username) == passList.indexOf(password) && !(lockedList.get(userList.indexOf(username)).equals("1"))) { + return true; + } + return false; } } diff --git a/android/app/src/main/java/com/donatrix/RNJavaLink.java b/android/app/src/main/java/com/donatrix/RNJavaLink.java index 02214f0..591bebe 100644 --- a/android/app/src/main/java/com/donatrix/RNJavaLink.java +++ b/android/app/src/main/java/com/donatrix/RNJavaLink.java @@ -5,10 +5,11 @@ import com.facebook.react.bridge.ReactContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.Callback; +import com.facebook.react.bridge.Promise; import java.util.Map; import java.util.HashMap; +import com.donatrix.Database; public class RNJavaLink extends ReactContextBaseJavaModule { @@ -22,8 +23,13 @@ public String getName() { } @ReactMethod - public void registerUser(String email, String password, String locked, String name) { - MySQLCon conn = new MySQLCon(); - conn.registerUser(email, password, locked, name); + public void registerUser(String email, String password, String locked, String name, Promise promise) { + Database conn = Database.getInstance(); + try { + conn.registerUser(email, password, locked, name); + promise.resolve("SUCCESS"); + } catch (Exception e) { + promise.reject("E_LAYOUT_ERROR", e.getMessage()); + } } } diff --git a/src/main/js/components/pages/registerPage/RegisterPage.js b/src/main/js/components/pages/registerPage/RegisterPage.js index 394e047..c180d51 100644 --- a/src/main/js/components/pages/registerPage/RegisterPage.js +++ b/src/main/js/components/pages/registerPage/RegisterPage.js @@ -101,6 +101,13 @@ export default class RegisterPage extends Component { let password = this.state.passwordInput let confPassword = this.state.confirmPasswordInput - RNJavaLink.registerUser(email, password, "0", fname); + RNJavaLink.registerUser(email, password, "0", fname) + .then(response => { + alert(response); + }) + .catch(error => { + alert(error); + console.error(error); + }); } } From 6a3341fe5059e840e20616004dae72ede1b11d5e Mon Sep 17 00:00:00 2001 From: zday123 Date: Wed, 10 Oct 2018 11:36:43 -0400 Subject: [PATCH 03/17] Made package for Database.java com.donatrix. Should work with register. Gives success message. Need to fix login now! --- android/app/src/main/java/com/donatrix/Database.java | 1 + android/app/src/main/java/com/donatrix/RNJavaLink.java | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/android/app/src/main/java/com/donatrix/Database.java b/android/app/src/main/java/com/donatrix/Database.java index 3eca891..f3e0dc4 100644 --- a/android/app/src/main/java/com/donatrix/Database.java +++ b/android/app/src/main/java/com/donatrix/Database.java @@ -1,5 +1,6 @@ //if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end //parse("File Header.java") +package com.donatrix; import java.util.ArrayList; diff --git a/android/app/src/main/java/com/donatrix/RNJavaLink.java b/android/app/src/main/java/com/donatrix/RNJavaLink.java index 591bebe..887ff51 100644 --- a/android/app/src/main/java/com/donatrix/RNJavaLink.java +++ b/android/app/src/main/java/com/donatrix/RNJavaLink.java @@ -9,7 +9,6 @@ import java.util.Map; import java.util.HashMap; -import com.donatrix.Database; public class RNJavaLink extends ReactContextBaseJavaModule { @@ -24,9 +23,8 @@ public String getName() { @ReactMethod public void registerUser(String email, String password, String locked, String name, Promise promise) { - Database conn = Database.getInstance(); try { - conn.registerUser(email, password, locked, name); + Database.getInstance().registerUser(email, password, locked, name); promise.resolve("SUCCESS"); } catch (Exception e) { promise.reject("E_LAYOUT_ERROR", e.getMessage()); From 426ba1f8516b7c6a4afae6d371af65a288b88269 Mon Sep 17 00:00:00 2001 From: zday123 Date: Wed, 10 Oct 2018 19:22:19 -0400 Subject: [PATCH 04/17] Database.java and RNJavaLink.java changes. Registration works. Login need to edit. Login not pushing. --- android/app/src/main/java/com/donatrix/Database.java | 2 +- .../app/src/main/java/com/donatrix/RNJavaLink.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/java/com/donatrix/Database.java b/android/app/src/main/java/com/donatrix/Database.java index f3e0dc4..0c0a6dd 100644 --- a/android/app/src/main/java/com/donatrix/Database.java +++ b/android/app/src/main/java/com/donatrix/Database.java @@ -43,7 +43,7 @@ public ArrayList getNameList() { } public void registerUser(String username, String password, String locked, String name) { - if (!(userList.contains(username)) && !(passList.contains(password))) { + if (!(userList.contains(username))) { userList.add(username); passList.add(password); lockedList.add(locked); diff --git a/android/app/src/main/java/com/donatrix/RNJavaLink.java b/android/app/src/main/java/com/donatrix/RNJavaLink.java index 887ff51..7e127eb 100644 --- a/android/app/src/main/java/com/donatrix/RNJavaLink.java +++ b/android/app/src/main/java/com/donatrix/RNJavaLink.java @@ -30,4 +30,15 @@ public void registerUser(String email, String password, String locked, String na promise.reject("E_LAYOUT_ERROR", e.getMessage()); } } + + @ReactMethod + public boolean checkRegisteredUser(String email, String password, Promise promise) { + try { + promise.resolve("SUCCESS"); + return Database.getInstance().checkRegisteredUser(email, password); + } catch (Exception e) { + promise.reject("E_LAYOUT_ERROR", e.getMessage()); + return false; + } + } } From ce75aaebf532a2259f7b742d48653d7e7c30423a Mon Sep 17 00:00:00 2001 From: Ashvin Warrier Date: Wed, 10 Oct 2018 20:34:51 -0400 Subject: [PATCH 05/17] Linked frontend to Database with RNAndroidBridge --- .gitignore | 2 +- ...dle__com_facebook_fresco_drawee_1_10_0.xml | 12 - ...dle__com_facebook_fresco_fbcore_1_10_0.xml | 12 - ...dle__com_facebook_fresco_fresco_1_10_0.xml | 12 - ...m_facebook_fresco_imagepipeline_1_10_0.xml | 12 - ...ebook_fresco_imagepipeline_base_1_10_0.xml | 12 - ...ok_fresco_imagepipeline_okhttp3_1_10_0.xml | 12 - ...annotation_infer_annotation_0_11_2_jar.xml | 11 - ...__com_facebook_soloader_soloader_0_5_1.xml | 12 - ..._google_code_findbugs_jsr305_3_0_2_jar.xml | 11 - ...com_squareup_okhttp3_okhttp_3_10_0_jar.xml | 11 - ...khttp3_okhttp_urlconnection_3_10_0_jar.xml | 11 - ...dle__com_squareup_okio_okio_1_14_0_jar.xml | 11 - android/.idea/misc.xml | 2 +- android/.idea/workspace.xml | 541 ++++++++++-------- android/app/app.iml | 58 +- .../java/com/donatrix/MainApplication.java | 3 +- .../RNAndroidBridge.java} | 22 +- .../RNAndroidBridgePackage.java} | 12 +- .../java/com/donatrix/{ => dao}/Database.java | 2 +- .../main/java/com/donatrix/dao/UserDao.java | 11 + src/main/js/components/RNJavaLink.js | 10 - .../components/pages/loginPage/LoginPage.js | 1 + .../pages/registerPage/RegisterPage.js | 18 +- src/main/js/utils/AndroidBridge.js | 2 + 25 files changed, 384 insertions(+), 439 deletions(-) delete mode 100644 android/.idea/libraries/Gradle__com_facebook_fresco_drawee_1_10_0.xml delete mode 100644 android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_1_10_0.xml delete mode 100644 android/.idea/libraries/Gradle__com_facebook_fresco_fresco_1_10_0.xml delete mode 100644 android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_1_10_0.xml delete mode 100644 android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_1_10_0.xml delete mode 100644 android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_1_10_0.xml delete mode 100644 android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2_jar.xml delete mode 100644 android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_5_1.xml delete mode 100644 android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2_jar.xml delete mode 100644 android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml delete mode 100644 android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_10_0_jar.xml delete mode 100644 android/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml rename android/app/src/main/java/com/donatrix/{RNJavaLink.java => bridge/RNAndroidBridge.java} (53%) rename android/app/src/main/java/com/donatrix/{RNJavaLinkPackage.java => bridge/RNAndroidBridgePackage.java} (65%) rename android/app/src/main/java/com/donatrix/{ => dao}/Database.java (98%) create mode 100644 android/app/src/main/java/com/donatrix/dao/UserDao.java delete mode 100644 src/main/js/components/RNJavaLink.js create mode 100644 src/main/js/utils/AndroidBridge.js diff --git a/.gitignore b/.gitignore index 6003f0d..bfa486c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ node_modules/ **/.idea/ **/local.properties -android/app/build/ +**/build/ **/.gradle/ .DS_STORE .expo/ diff --git a/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_1_10_0.xml b/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_1_10_0.xml deleted file mode 100644 index f883e93..0000000 --- a/android/.idea/libraries/Gradle__com_facebook_fresco_drawee_1_10_0.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_1_10_0.xml b/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_1_10_0.xml deleted file mode 100644 index 63668f4..0000000 --- a/android/.idea/libraries/Gradle__com_facebook_fresco_fbcore_1_10_0.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_1_10_0.xml b/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_1_10_0.xml deleted file mode 100644 index 9a0bf7f..0000000 --- a/android/.idea/libraries/Gradle__com_facebook_fresco_fresco_1_10_0.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_1_10_0.xml b/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_1_10_0.xml deleted file mode 100644 index 20ca4af..0000000 --- a/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_1_10_0.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_1_10_0.xml b/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_1_10_0.xml deleted file mode 100644 index d9d1a3c..0000000 --- a/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_base_1_10_0.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_1_10_0.xml b/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_1_10_0.xml deleted file mode 100644 index 098f307..0000000 --- a/android/.idea/libraries/Gradle__com_facebook_fresco_imagepipeline_okhttp3_1_10_0.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2_jar.xml b/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2_jar.xml deleted file mode 100644 index 8e0b3e5..0000000 --- a/android/.idea/libraries/Gradle__com_facebook_infer_annotation_infer_annotation_0_11_2_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_5_1.xml b/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_5_1.xml deleted file mode 100644 index 0692f7b..0000000 --- a/android/.idea/libraries/Gradle__com_facebook_soloader_soloader_0_5_1.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2_jar.xml b/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2_jar.xml deleted file mode 100644 index f91d350..0000000 --- a/android/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_3_0_2_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml b/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml deleted file mode 100644 index 3bb1ed9..0000000 --- a/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_10_0_jar.xml b/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_10_0_jar.xml deleted file mode 100644 index b50fef1..0000000 --- a/android/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_urlconnection_3_10_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml b/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml deleted file mode 100644 index 9c3a836..0000000 --- a/android/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/misc.xml b/android/.idea/misc.xml index 99202cc..c0f68ed 100644 --- a/android/.idea/misc.xml +++ b/android/.idea/misc.xml @@ -25,7 +25,7 @@ - + diff --git a/android/.idea/workspace.xml b/android/.idea/workspace.xml index 08d24b4..620b5e2 100644 --- a/android/.idea/workspace.xml +++ b/android/.idea/workspace.xml @@ -1,9 +1,32 @@ + + + + + - - + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + - - - - - - - - - - - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1537653917091 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/main/js/components/pages/loginPage/LoginPage.js b/src/main/js/components/pages/loginPage/LoginPage.js index b27f1ff..c344df2 100644 --- a/src/main/js/components/pages/loginPage/LoginPage.js +++ b/src/main/js/components/pages/loginPage/LoginPage.js @@ -22,13 +22,10 @@ export default class LoginPage extends Component { this.state = { usernameInput: '', passwordInput: '', - } + }; this.onFieldUpdate = this.onFieldUpdate.bind(this); //needed with arrow op? this.onSubmit = this.onSubmit.bind(this); - - this.USERNAME = 'user'; - this.PASSWORD = 'pass'; } render() { @@ -82,11 +79,16 @@ export default class LoginPage extends Component { } onSubmit() { - if (this.state.usernameInput === this.USERNAME - && this.state.passwordInput === this.PASSWORD) { - this.props.navigation.navigate('Donatrix'); - } else { - this.setState({error: 'Invalid username or password'}); - } + RNAndroidBridge.checkRegisteredUser(this.state.usernameInput, this.state.passwordInput) + .then(response => { + if (response) { + this.props.navigation.navigate('Welcome'); + } else { + this.setState({error: 'Invalid username or password'}); + } + }) + .catch(err => { + alert(err); + }); } } From 3eb0f5211f601d5aab77176815744ed89431e0f7 Mon Sep 17 00:00:00 2001 From: Ashvin Warrier Date: Wed, 10 Oct 2018 21:34:27 -0400 Subject: [PATCH 07/17] Got login and registration working --- .../com/donatrix/bridge/RNAndroidBridge.java | 2 ++ .../main/java/com/donatrix/dao/Database.java | 34 +++++++++---------- .../main/java/com/donatrix/dao/UserDao.java | 5 +++ .../components/pages/loginPage/LoginPage.js | 4 +-- .../pages/registerPage/RegisterPage.js | 22 +++++++----- 5 files changed, 39 insertions(+), 28 deletions(-) diff --git a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java index 754960e..d903acc 100644 --- a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java +++ b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java @@ -1,5 +1,7 @@ package com.donatrix.bridge; +import android.util.Log; + import com.donatrix.dao.UserDao; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; diff --git a/android/app/src/main/java/com/donatrix/dao/Database.java b/android/app/src/main/java/com/donatrix/dao/Database.java index fd554e7..05dd325 100644 --- a/android/app/src/main/java/com/donatrix/dao/Database.java +++ b/android/app/src/main/java/com/donatrix/dao/Database.java @@ -2,15 +2,17 @@ //parse("File Header.java") package com.donatrix.dao; +import android.util.Log; + import java.util.ArrayList; public class Database { private static Database ourInstance; - private ArrayList userList; - private ArrayList passList; - private ArrayList lockedList; - private ArrayList nameList; + private ArrayList userList; + private ArrayList passList; + private ArrayList lockedList; + private ArrayList nameList; public static Database getInstance() { if (Database.ourInstance != null) { @@ -20,29 +22,30 @@ public static Database getInstance() { } private Database() { - userList = new ArrayList(); - passList = new ArrayList(); - lockedList = new ArrayList(); - nameList = new ArrayList(); + userList = new ArrayList<>(); + passList = new ArrayList<>(); + lockedList = new ArrayList<>(); + nameList = new ArrayList<>(); } - public ArrayList getUserList() { + public ArrayList getUserList() { return userList; } - public ArrayList getPassList() { + public ArrayList getPassList() { return passList; } - public ArrayList getLockedList() { + public ArrayList getLockedList() { return lockedList; } - public ArrayList getNameList() { + public ArrayList getNameList() { return nameList; } public void registerUser(String username, String password, String locked, String name) { + Log.d("ReactNative", "" + username + password + name); if (!(userList.contains(username))) { userList.add(username); passList.add(password); @@ -54,10 +57,7 @@ public void registerUser(String username, String password, String locked, String } public boolean checkRegisteredUser(String username, String password) { - if (userList.contains(username) && passList.contains(password) - && userList.indexOf(username) == passList.indexOf(password) && !(lockedList.get(userList.indexOf(username)).equals("1"))) { - return true; - } - return false; + return userList.contains(username) && passList.contains(password) + && userList.indexOf(username) == passList.indexOf(password) && !(lockedList.get(userList.indexOf(username)).equals("1")); } } diff --git a/android/app/src/main/java/com/donatrix/dao/UserDao.java b/android/app/src/main/java/com/donatrix/dao/UserDao.java index f331114..c775f8a 100644 --- a/android/app/src/main/java/com/donatrix/dao/UserDao.java +++ b/android/app/src/main/java/com/donatrix/dao/UserDao.java @@ -1,8 +1,13 @@ package com.donatrix.dao; +import android.util.Log; + public class UserDao { public static void registerUser(String email, String password, String locked, String name) throws IllegalArgumentException { Database.getInstance().registerUser(email, password, locked, name); + for (String user: Database.getInstance().getUserList()) { + Log.d("ReactNative", "" + user); + } } public static boolean checkRegisteredUser(String email, String password) { diff --git a/src/main/js/components/pages/loginPage/LoginPage.js b/src/main/js/components/pages/loginPage/LoginPage.js index c344df2..3cdee11 100644 --- a/src/main/js/components/pages/loginPage/LoginPage.js +++ b/src/main/js/components/pages/loginPage/LoginPage.js @@ -14,7 +14,7 @@ export default class LoginPage extends Component { static navigationOptions = { title: 'Register', - } + }; constructor(props) { super(props); @@ -82,7 +82,7 @@ export default class LoginPage extends Component { RNAndroidBridge.checkRegisteredUser(this.state.usernameInput, this.state.passwordInput) .then(response => { if (response) { - this.props.navigation.navigate('Welcome'); + this.props.navigation.navigate('Donatrix'); } else { this.setState({error: 'Invalid username or password'}); } diff --git a/src/main/js/components/pages/registerPage/RegisterPage.js b/src/main/js/components/pages/registerPage/RegisterPage.js index 5a570c2..79376d4 100644 --- a/src/main/js/components/pages/registerPage/RegisterPage.js +++ b/src/main/js/components/pages/registerPage/RegisterPage.js @@ -95,21 +95,25 @@ export default class RegisterPage extends Component { } onSubmit() { - const { - fname, - lname, - email, - password, - confPassword - } = this.state; + const fname = this.state.fnameInput; + const lname = this.state.lnameInput; + const email = this.state.emailInput; + const password = this.state.passwordInput; + const conf = this.state.confirmPasswordInput; + + alert(fname + lname + email + password); RNAndroidBridge.registerUser(email, password, "0", fname) .then(response => { - alert(response); + if (response === 'SUCCESS') { + alert("Registration successful"); + this.props.navigation.navigate('Login'); + } else { + alert(response); + } }) .catch(error => { alert(error); - console.error(error); }); } } From 8d0589e2f82303ae5c7815046cf54175b845ecb8 Mon Sep 17 00:00:00 2001 From: Ashvin Warrier Date: Wed, 10 Oct 2018 22:33:31 -0400 Subject: [PATCH 08/17] Converted locked field to a boolean --- .../com/donatrix/bridge/RNAndroidBridge.java | 2 +- .../main/java/com/donatrix/dao/Database.java | 8 ++-- .../main/java/com/donatrix/dao/UserDao.java | 2 +- .../components/pages/loginPage/LoginPage.js | 1 + .../pages/registerPage/RegisterPage.js | 48 +++++++------------ 5 files changed, 23 insertions(+), 38 deletions(-) diff --git a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java index d903acc..68acaab 100644 --- a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java +++ b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java @@ -20,7 +20,7 @@ public String getName() { } @ReactMethod - public void registerUser(String email, String password, String locked, String name, Promise promise) { + public void registerUser(String email, String password, boolean locked, String name, Promise promise) { try { UserDao.registerUser(email, password, locked, name); promise.resolve("SUCCESS"); diff --git a/android/app/src/main/java/com/donatrix/dao/Database.java b/android/app/src/main/java/com/donatrix/dao/Database.java index 05dd325..480f7ac 100644 --- a/android/app/src/main/java/com/donatrix/dao/Database.java +++ b/android/app/src/main/java/com/donatrix/dao/Database.java @@ -11,7 +11,7 @@ public class Database { private static Database ourInstance; private ArrayList userList; private ArrayList passList; - private ArrayList lockedList; + private ArrayList lockedList; private ArrayList nameList; public static Database getInstance() { @@ -36,7 +36,7 @@ public ArrayList getPassList() { return passList; } - public ArrayList getLockedList() { + public ArrayList getLockedList() { return lockedList; } @@ -44,7 +44,7 @@ public ArrayList getNameList() { return nameList; } - public void registerUser(String username, String password, String locked, String name) { + public void registerUser(String username, String password, boolean locked, String name) { Log.d("ReactNative", "" + username + password + name); if (!(userList.contains(username))) { userList.add(username); @@ -58,6 +58,6 @@ public void registerUser(String username, String password, String locked, String public boolean checkRegisteredUser(String username, String password) { return userList.contains(username) && passList.contains(password) - && userList.indexOf(username) == passList.indexOf(password) && !(lockedList.get(userList.indexOf(username)).equals("1")); + && userList.indexOf(username) == passList.indexOf(password) && !lockedList.get(userList.indexOf(username)); } } diff --git a/android/app/src/main/java/com/donatrix/dao/UserDao.java b/android/app/src/main/java/com/donatrix/dao/UserDao.java index c775f8a..195789a 100644 --- a/android/app/src/main/java/com/donatrix/dao/UserDao.java +++ b/android/app/src/main/java/com/donatrix/dao/UserDao.java @@ -3,7 +3,7 @@ import android.util.Log; public class UserDao { - public static void registerUser(String email, String password, String locked, String name) throws IllegalArgumentException { + public static void registerUser(String email, String password, boolean locked, String name) throws IllegalArgumentException { Database.getInstance().registerUser(email, password, locked, name); for (String user: Database.getInstance().getUserList()) { Log.d("ReactNative", "" + user); diff --git a/src/main/js/components/pages/loginPage/LoginPage.js b/src/main/js/components/pages/loginPage/LoginPage.js index 3cdee11..d3d9a4b 100644 --- a/src/main/js/components/pages/loginPage/LoginPage.js +++ b/src/main/js/components/pages/loginPage/LoginPage.js @@ -22,6 +22,7 @@ export default class LoginPage extends Component { this.state = { usernameInput: '', passwordInput: '', + error: 'Hello' }; this.onFieldUpdate = this.onFieldUpdate.bind(this); //needed with arrow op? diff --git a/src/main/js/components/pages/registerPage/RegisterPage.js b/src/main/js/components/pages/registerPage/RegisterPage.js index 79376d4..dfbbc09 100644 --- a/src/main/js/components/pages/registerPage/RegisterPage.js +++ b/src/main/js/components/pages/registerPage/RegisterPage.js @@ -19,11 +19,11 @@ export default class RegisterPage extends Component { super(props); this.state = { - fnameInput: '', - lnameInput: '', - emailInput: '', - passwordInput: '', - confirmPasswordInput: '', + fname: '', + lname: '', + email: '', + pass: '', + confPass: '', }; this.onFieldUpdate = this.onFieldUpdate.bind(this); //needed with arrow op? @@ -73,37 +73,21 @@ export default class RegisterPage extends Component { } onFieldUpdate(t, field) { - switch (field) { - case 'fname': - this.setState({fnameInput: t}); - break; - case 'lname': - this.setState({lnameInput: t}); - break; - case 'email': - this.setState({emailInput: t}); - break; - case 'pass': - this.setState({passwordInput: t}); - break; - case 'confPass': - this.setState({confirmPasswordInput: t}); - break; - default: - break; - } + const state = {}; + state[field] = t; + this.setState(state); } onSubmit() { - const fname = this.state.fnameInput; - const lname = this.state.lnameInput; - const email = this.state.emailInput; - const password = this.state.passwordInput; - const conf = this.state.confirmPasswordInput; + const { + fname, + lname, + email, + pass, + confPass + } = this.state; - alert(fname + lname + email + password); - - RNAndroidBridge.registerUser(email, password, "0", fname) + RNAndroidBridge.registerUser(email, pass, false, fname) .then(response => { if (response === 'SUCCESS') { alert("Registration successful"); From e49a90343287555b6ab60c509989359a9e57db6c Mon Sep 17 00:00:00 2001 From: Pawkwah Date: Thu, 11 Oct 2018 00:27:50 -0400 Subject: [PATCH 09/17] Added admin user class --- android/app/src/main/java/com/donatrix/Admin.java | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 android/app/src/main/java/com/donatrix/Admin.java diff --git a/android/app/src/main/java/com/donatrix/Admin.java b/android/app/src/main/java/com/donatrix/Admin.java new file mode 100644 index 0000000..c754108 --- /dev/null +++ b/android/app/src/main/java/com/donatrix/Admin.java @@ -0,0 +1,8 @@ +package com.donatrix; + +/** + * Created by parkerharris on 10/11/18. + */ + +public class Admin { +} From ad521611913d5346cf9f537faaf94ca9bad6c12a Mon Sep 17 00:00:00 2001 From: Ashvin Warrier Date: Thu, 11 Oct 2018 00:48:21 -0400 Subject: [PATCH 10/17] Added user type --- .../src/main/java/com/donatrix/MySQLCon.java | 0 .../com/donatrix/bridge/RNAndroidBridge.java | 9 ++++--- .../main/java/com/donatrix/dao/Database.java | 11 ++++++++- .../main/java/com/donatrix/dao/UserDao.java | 6 +++-- .../java/com/donatrix/{ => model}/User.java | 9 ++++++- .../java/com/donatrix/model/UserType.java | 18 ++++++++++++++ .../pages/registerPage/RegisterPage.js | 24 +++++++++++++------ src/main/js/utils/AndroidBridge.js | 2 +- src/main/js/utils/UserType.js | 7 ++++++ 9 files changed, 69 insertions(+), 17 deletions(-) delete mode 100644 android/app/src/main/java/com/donatrix/MySQLCon.java rename android/app/src/main/java/com/donatrix/{ => model}/User.java (77%) create mode 100644 android/app/src/main/java/com/donatrix/model/UserType.java create mode 100644 src/main/js/utils/UserType.js diff --git a/android/app/src/main/java/com/donatrix/MySQLCon.java b/android/app/src/main/java/com/donatrix/MySQLCon.java deleted file mode 100644 index e69de29..0000000 diff --git a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java index 68acaab..4553909 100644 --- a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java +++ b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java @@ -1,8 +1,7 @@ package com.donatrix.bridge; -import android.util.Log; - import com.donatrix.dao.UserDao; +import com.donatrix.model.UserType; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; @@ -20,10 +19,10 @@ public String getName() { } @ReactMethod - public void registerUser(String email, String password, boolean locked, String name, Promise promise) { + public void registerUser(String email, String password, boolean locked, String name, String type, Promise promise) { try { - UserDao.registerUser(email, password, locked, name); - promise.resolve("SUCCESS"); + UserDao.registerUser(email, password, locked, name, type); + promise.resolve("Welcome " + type.charAt(0) + type.substring(1).toLowerCase()); } catch (Exception e) { promise.reject("E_LAYOUT_ERROR", e.getMessage()); } diff --git a/android/app/src/main/java/com/donatrix/dao/Database.java b/android/app/src/main/java/com/donatrix/dao/Database.java index 480f7ac..e2bfc9f 100644 --- a/android/app/src/main/java/com/donatrix/dao/Database.java +++ b/android/app/src/main/java/com/donatrix/dao/Database.java @@ -4,6 +4,8 @@ import android.util.Log; +import com.donatrix.model.UserType; + import java.util.ArrayList; @@ -13,6 +15,7 @@ public class Database { private ArrayList passList; private ArrayList lockedList; private ArrayList nameList; + private ArrayList typeList; public static Database getInstance() { if (Database.ourInstance != null) { @@ -26,6 +29,7 @@ private Database() { passList = new ArrayList<>(); lockedList = new ArrayList<>(); nameList = new ArrayList<>(); + typeList = new ArrayList<>(); } public ArrayList getUserList() { @@ -44,13 +48,18 @@ public ArrayList getNameList() { return nameList; } - public void registerUser(String username, String password, boolean locked, String name) { + public ArrayList getTypeList() { + return typeList; + } + + public void registerUser(String username, String password, boolean locked, String name, UserType type) { Log.d("ReactNative", "" + username + password + name); if (!(userList.contains(username))) { userList.add(username); passList.add(password); lockedList.add(locked); nameList.add(name); + typeList.add(type); } else { throw new IllegalArgumentException("Username or password not correct"); } diff --git a/android/app/src/main/java/com/donatrix/dao/UserDao.java b/android/app/src/main/java/com/donatrix/dao/UserDao.java index 195789a..5715652 100644 --- a/android/app/src/main/java/com/donatrix/dao/UserDao.java +++ b/android/app/src/main/java/com/donatrix/dao/UserDao.java @@ -2,9 +2,11 @@ import android.util.Log; +import com.donatrix.model.UserType; + public class UserDao { - public static void registerUser(String email, String password, boolean locked, String name) throws IllegalArgumentException { - Database.getInstance().registerUser(email, password, locked, name); + public static void registerUser(String email, String password, boolean locked, String name, String type) throws IllegalArgumentException { + Database.getInstance().registerUser(email, password, locked, name, UserType.valueOf(type)); for (String user: Database.getInstance().getUserList()) { Log.d("ReactNative", "" + user); } diff --git a/android/app/src/main/java/com/donatrix/User.java b/android/app/src/main/java/com/donatrix/model/User.java similarity index 77% rename from android/app/src/main/java/com/donatrix/User.java rename to android/app/src/main/java/com/donatrix/model/User.java index b2828b4..3b9cd37 100644 --- a/android/app/src/main/java/com/donatrix/User.java +++ b/android/app/src/main/java/com/donatrix/model/User.java @@ -1,4 +1,4 @@ -package com.donatrix; +package com.donatrix.model; public class User { @@ -6,6 +6,7 @@ public class User { private String password; private String name; private boolean accountState; + private UserType userType; public void setEmail(String email) { this.email = email; @@ -31,4 +32,10 @@ public void setAccountState(boolean accountState) { public boolean getAccountState() { return this.accountState; } + public void setUserType(UserType userType) { + this.userType = userType; + } + public UserType getUserType() { + return userType; + } } diff --git a/android/app/src/main/java/com/donatrix/model/UserType.java b/android/app/src/main/java/com/donatrix/model/UserType.java new file mode 100644 index 0000000..48f9120 --- /dev/null +++ b/android/app/src/main/java/com/donatrix/model/UserType.java @@ -0,0 +1,18 @@ +package com.donatrix.model; + +public enum UserType { + ADMIN("ADMIN"), + LOCATION_EMPLOYEE("LOCATION_EMPLOYEE"), + MANAGER("MANAGER"), + USER("USER"); + + private String type; + + public String getType() { + return this.type; + } + + UserType(String type) { + this.type = type; + } +} diff --git a/src/main/js/components/pages/registerPage/RegisterPage.js b/src/main/js/components/pages/registerPage/RegisterPage.js index dfbbc09..b26a020 100644 --- a/src/main/js/components/pages/registerPage/RegisterPage.js +++ b/src/main/js/components/pages/registerPage/RegisterPage.js @@ -1,10 +1,11 @@ import React, {Component} from 'react'; -import {View} from 'react-native'; +import {View, Picker} from 'react-native'; import Text from '../../Text'; import Button from '../../Button'; import FormTextInput from '../../FormTextInput'; import {VIEW_STYLES, TEXT_STYLES} from '../../../styles'; import RNAndroidBridge from '../../../utils/AndroidBridge'; +import UserType from '../../../utils/UserType'; /** * Register Page prompts the user with fields to register a new account @@ -24,6 +25,7 @@ export default class RegisterPage extends Component { email: '', pass: '', confPass: '', + userType: 'USER', }; this.onFieldUpdate = this.onFieldUpdate.bind(this); //needed with arrow op? @@ -56,6 +58,15 @@ export default class RegisterPage extends Component { title="Confirm Password" onChangeText={(t) => this.onFieldUpdate(t, "confPass")} /> + this.setState({userType})}> + + + + + {/* buttons */} @@ -84,16 +95,15 @@ export default class RegisterPage extends Component { lname, email, pass, - confPass + confPass, + userType } = this.state; - RNAndroidBridge.registerUser(email, pass, false, fname) + RNAndroidBridge.registerUser(email, pass, false, `${fname} ${lname}`, userType) .then(response => { - if (response === 'SUCCESS') { - alert("Registration successful"); + alert(response); + if (response.includes('Welcome')) { this.props.navigation.navigate('Login'); - } else { - alert(response); } }) .catch(error => { diff --git a/src/main/js/utils/AndroidBridge.js b/src/main/js/utils/AndroidBridge.js index bb11278..1e973e7 100644 --- a/src/main/js/utils/AndroidBridge.js +++ b/src/main/js/utils/AndroidBridge.js @@ -1,2 +1,2 @@ import {NativeModules} from 'react-native'; -module.exports = NativeModules.RNAndroidBridge; +export default NativeModules.RNAndroidBridge; diff --git a/src/main/js/utils/UserType.js b/src/main/js/utils/UserType.js new file mode 100644 index 0000000..6e22c7c --- /dev/null +++ b/src/main/js/utils/UserType.js @@ -0,0 +1,7 @@ +const UserType = { + ADMIN: 'ADMIN', + LOCATION_EMPLOYEE: 'LOCATION_EMPLOYEE', + MANAGER: 'MANAGER', + USER: 'USER' +}; +export default UserType; From e111128c177c5b87c1d2a374e592b0b2d7ea0b3f Mon Sep 17 00:00:00 2001 From: Ashvin Warrier Date: Thu, 11 Oct 2018 04:36:45 -0400 Subject: [PATCH 11/17] Can't get file output to work --- android/app/src/main/AndroidManifest.xml | 2 + .../com/donatrix/bridge/RNAndroidBridge.java | 20 +++-- .../main/java/com/donatrix/dao/Database.java | 86 ++++++++++--------- .../main/java/com/donatrix/dao/UserDao.java | 13 ++- .../java/com/donatrix/dao/UserDaoService.java | 61 +++++++++++++ .../java/com/donatrix/{ => model}/Admin.java | 2 +- .../main/java/com/donatrix/model/User.java | 22 +++-- .../java/com/donatrix/model/UserType.java | 4 +- .../pages/registerPage/RegisterPage.js | 2 +- 9 files changed, 149 insertions(+), 63 deletions(-) create mode 100644 android/app/src/main/java/com/donatrix/dao/UserDaoService.java rename android/app/src/main/java/com/donatrix/{ => model}/Admin.java (72%) diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 52aa8b2..616eac8 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -21,6 +21,8 @@ + + diff --git a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java index 4553909..a124867 100644 --- a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java +++ b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java @@ -1,14 +1,17 @@ package com.donatrix.bridge; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + import com.donatrix.dao.UserDao; -import com.donatrix.model.UserType; +import com.donatrix.dao.UserDaoService; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; import com.facebook.react.bridge.Promise; public class RNAndroidBridge extends ReactContextBaseJavaModule { - public RNAndroidBridge(ReactApplicationContext reactContext) { super(reactContext); } @@ -19,9 +22,16 @@ public String getName() { } @ReactMethod - public void registerUser(String email, String password, boolean locked, String name, String type, Promise promise) { + public void registerUser(String email, String password, String name, boolean locked, String type, Promise promise) { try { - UserDao.registerUser(email, password, locked, name, type); +// Intent intent = new Intent(this.getCurrentActivity(), UserDaoService.class); +// intent.putExtra("EMAIL", email); +// intent.putExtra("PASS", password); +// intent.putExtra("NAME", name); +// intent.putExtra("LOCKED", locked); +// intent.putExtra("TYPE", type); +// this.getCurrentActivity().startService(intent); + UserDao.registerUser(email, password, name, locked, type, this.getCurrentActivity().getBaseContext()); promise.resolve("Welcome " + type.charAt(0) + type.substring(1).toLowerCase()); } catch (Exception e) { promise.reject("E_LAYOUT_ERROR", e.getMessage()); @@ -31,7 +41,7 @@ public void registerUser(String email, String password, boolean locked, String n @ReactMethod public void checkRegisteredUser(String email, String password, Promise promise) { try { - promise.resolve(UserDao.checkRegisteredUser(email, password)); + promise.resolve(UserDao.checkRegisteredUser(email, password, this.getCurrentActivity())); } catch (Exception e) { promise.reject("E_LAYOUT_ERROR", e.getMessage()); } diff --git a/android/app/src/main/java/com/donatrix/dao/Database.java b/android/app/src/main/java/com/donatrix/dao/Database.java index e2bfc9f..d491a6e 100644 --- a/android/app/src/main/java/com/donatrix/dao/Database.java +++ b/android/app/src/main/java/com/donatrix/dao/Database.java @@ -2,71 +2,75 @@ //parse("File Header.java") package com.donatrix.dao; +import android.content.Context; import android.util.Log; +import com.donatrix.model.User; import com.donatrix.model.UserType; -import java.util.ArrayList; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.HashMap; public class Database { private static Database ourInstance; - private ArrayList userList; - private ArrayList passList; - private ArrayList lockedList; - private ArrayList nameList; - private ArrayList typeList; + private Context context; + private HashMap databaseMap; - public static Database getInstance() { + public static Database getInstance(Context context) { if (Database.ourInstance != null) { return ourInstance; } - return ourInstance = new Database(); + return ourInstance = new Database(context); } - private Database() { - userList = new ArrayList<>(); - passList = new ArrayList<>(); - lockedList = new ArrayList<>(); - nameList = new ArrayList<>(); - typeList = new ArrayList<>(); + private Database(Context context) { + this.context = context; + load(); } - public ArrayList getUserList() { - return userList; - } - - public ArrayList getPassList() { - return passList; - } - - public ArrayList getLockedList() { - return lockedList; - } - - public ArrayList getNameList() { - return nameList; + private void save() { + try { + FileOutputStream fos = this.context.openFileOutput("database.ser", Context.MODE_PRIVATE); + ObjectOutputStream os = new ObjectOutputStream(fos); + os.writeObject(this.databaseMap); + os.close(); + fos.close(); + } catch (Exception e) { + Log.d("Donatrix", e.getMessage()); + } } - public ArrayList getTypeList() { - return typeList; + private void load() { + try { + FileInputStream fis = this.context.openFileInput("database.ser"); + ObjectInputStream is = new ObjectInputStream(fis); + this.databaseMap = (HashMap) is.readObject(); + if (this.databaseMap == null) { + Log.d("Donatrix", "Null"); + this.databaseMap = new HashMap<>(); + } + is.close(); + fis.close(); + } catch (Exception e) { + Log.d("Donatrix", e.getMessage()); + } } - public void registerUser(String username, String password, boolean locked, String name, UserType type) { - Log.d("ReactNative", "" + username + password + name); - if (!(userList.contains(username))) { - userList.add(username); - passList.add(password); - lockedList.add(locked); - nameList.add(name); - typeList.add(type); + public void registerUser(String username, String password, String name, boolean locked, UserType type) { + if (!(this.databaseMap.containsKey(username))) { + this.databaseMap.put(username, new User(username, password, name, locked, type)); + save(); } else { - throw new IllegalArgumentException("Username or password not correct"); + throw new IllegalArgumentException("Username already taken"); } } public boolean checkRegisteredUser(String username, String password) { - return userList.contains(username) && passList.contains(password) - && userList.indexOf(username) == passList.indexOf(password) && !lockedList.get(userList.indexOf(username)); + User user = this.databaseMap.get(username); + return user.getPassword().equals(password) && !user.getLocked(); } } diff --git a/android/app/src/main/java/com/donatrix/dao/UserDao.java b/android/app/src/main/java/com/donatrix/dao/UserDao.java index 5715652..a371527 100644 --- a/android/app/src/main/java/com/donatrix/dao/UserDao.java +++ b/android/app/src/main/java/com/donatrix/dao/UserDao.java @@ -1,18 +1,15 @@ package com.donatrix.dao; -import android.util.Log; +import android.content.Context; import com.donatrix.model.UserType; public class UserDao { - public static void registerUser(String email, String password, boolean locked, String name, String type) throws IllegalArgumentException { - Database.getInstance().registerUser(email, password, locked, name, UserType.valueOf(type)); - for (String user: Database.getInstance().getUserList()) { - Log.d("ReactNative", "" + user); - } + public static void registerUser(String email, String password, String name, boolean locked, String type, Context context) throws IllegalArgumentException { + Database.getInstance(context).registerUser(email, password, name, locked, UserType.valueOf(type)); } - public static boolean checkRegisteredUser(String email, String password) { - return Database.getInstance().checkRegisteredUser(email, password); + public static boolean checkRegisteredUser(String email, String password, Context context) { + return Database.getInstance(context).checkRegisteredUser(email, password); } } diff --git a/android/app/src/main/java/com/donatrix/dao/UserDaoService.java b/android/app/src/main/java/com/donatrix/dao/UserDaoService.java new file mode 100644 index 0000000..58dca2d --- /dev/null +++ b/android/app/src/main/java/com/donatrix/dao/UserDaoService.java @@ -0,0 +1,61 @@ +package com.donatrix.dao; + +import android.app.IntentService; +import android.app.Service; +import android.content.Context; +import android.content.Intent; +import android.os.IBinder; +import android.support.annotation.Nullable; + +import com.donatrix.MainApplication; +import com.donatrix.model.UserType; +import com.facebook.react.ReactInstanceManager; +import com.facebook.react.ReactNativeHost; + +public class UserDaoService extends IntentService { + private Context context; + + public UserDaoService() { + super("UserDaoService"); + } + + private void registerUser(String email, String password, String name, boolean locked, String type) throws IllegalArgumentException { + Database.getInstance(this.context).registerUser(email, password, name, locked, UserType.valueOf(type)); + } + + private boolean checkRegisteredUser(String email, String password) { + return Database.getInstance(this.context).checkRegisteredUser(email, password); + } + + @Override + protected void onHandleIntent(@Nullable Intent intent) { + MainApplication application = (MainApplication) this.getApplication(); + ReactNativeHost reactNativeHost = application.getReactNativeHost(); + ReactInstanceManager reactInstanceManager = reactNativeHost.getReactInstanceManager(); + this.context = reactInstanceManager.getCurrentReactContext(); + + Intent response = new Intent("RESPONSE"); + + switch(intent.getStringExtra("METHOD")) { + case "Register": + String email = intent.getStringExtra("EMAIL"); + String password = intent.getStringExtra("PASS"); + String name = intent.getStringExtra("NAME"); + boolean locked = intent.getBooleanExtra("LOCKED", false); + String type = intent.getStringExtra("TYPE"); + try { + this.registerUser(email, password, name, locked, type); + response.putExtra("RESPONSE", "SUCCESS"); + } catch (Exception e) { + response.putExtra("RESPONSE", e.getMessage()); + } + break; + case "Login": + email = intent.getStringExtra("EMAIL"); + password = intent.getStringExtra("PASS"); + response.putExtra("RESPONSE", this.checkRegisteredUser(email, password)); + break; + } + sendBroadcast(response); + } +} diff --git a/android/app/src/main/java/com/donatrix/Admin.java b/android/app/src/main/java/com/donatrix/model/Admin.java similarity index 72% rename from android/app/src/main/java/com/donatrix/Admin.java rename to android/app/src/main/java/com/donatrix/model/Admin.java index c754108..b09b243 100644 --- a/android/app/src/main/java/com/donatrix/Admin.java +++ b/android/app/src/main/java/com/donatrix/model/Admin.java @@ -1,4 +1,4 @@ -package com.donatrix; +package com.donatrix.model; /** * Created by parkerharris on 10/11/18. diff --git a/android/app/src/main/java/com/donatrix/model/User.java b/android/app/src/main/java/com/donatrix/model/User.java index 3b9cd37..3e60e43 100644 --- a/android/app/src/main/java/com/donatrix/model/User.java +++ b/android/app/src/main/java/com/donatrix/model/User.java @@ -1,13 +1,23 @@ package com.donatrix.model; -public class User { +import java.io.Serializable; + +public class User implements Serializable { private String email; private String password; private String name; - private boolean accountState; + private boolean locked; private UserType userType; + public User(String email, String password, String name, boolean locked, UserType userType) { + this.email = email; + this.password = password; + this.name = name; + this.locked = locked; + this.userType = userType; + } + public void setEmail(String email) { this.email = email; } @@ -26,11 +36,11 @@ public void setName(String name) { public String getName() { return this.name; } - public void setAccountState(boolean accountState) { - this.accountState = accountState; + public void setLocked(boolean locked) { + this.locked = locked; } - public boolean getAccountState() { - return this.accountState; + public boolean getLocked() { + return this.locked; } public void setUserType(UserType userType) { this.userType = userType; diff --git a/android/app/src/main/java/com/donatrix/model/UserType.java b/android/app/src/main/java/com/donatrix/model/UserType.java index 48f9120..7685a53 100644 --- a/android/app/src/main/java/com/donatrix/model/UserType.java +++ b/android/app/src/main/java/com/donatrix/model/UserType.java @@ -1,6 +1,8 @@ package com.donatrix.model; -public enum UserType { +import java.io.Serializable; + +public enum UserType implements Serializable { ADMIN("ADMIN"), LOCATION_EMPLOYEE("LOCATION_EMPLOYEE"), MANAGER("MANAGER"), diff --git a/src/main/js/components/pages/registerPage/RegisterPage.js b/src/main/js/components/pages/registerPage/RegisterPage.js index b26a020..2290db9 100644 --- a/src/main/js/components/pages/registerPage/RegisterPage.js +++ b/src/main/js/components/pages/registerPage/RegisterPage.js @@ -99,7 +99,7 @@ export default class RegisterPage extends Component { userType } = this.state; - RNAndroidBridge.registerUser(email, pass, false, `${fname} ${lname}`, userType) + RNAndroidBridge.registerUser(email, pass, `${fname} ${lname}`, false, userType) .then(response => { alert(response); if (response.includes('Welcome')) { From 1aba35727091b23c0649f70ad4238f7d4d95c8e4 Mon Sep 17 00:00:00 2001 From: Ashvin Warrier Date: Thu, 11 Oct 2018 05:41:14 -0400 Subject: [PATCH 12/17] Persistence and serialization now working --- android/app/src/main/AndroidManifest.xml | 2 - .../com/donatrix/bridge/RNAndroidBridge.java | 16 +---- .../main/java/com/donatrix/dao/Database.java | 7 +-- .../java/com/donatrix/dao/UserDaoService.java | 61 ------------------- .../components/pages/loginPage/LoginPage.js | 4 +- .../pages/registerPage/RegisterPage.js | 11 ++-- 6 files changed, 12 insertions(+), 89 deletions(-) delete mode 100644 android/app/src/main/java/com/donatrix/dao/UserDaoService.java diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 616eac8..52aa8b2 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -21,8 +21,6 @@ - - diff --git a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java index a124867..b6284a6 100644 --- a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java +++ b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java @@ -1,11 +1,6 @@ package com.donatrix.bridge; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; - import com.donatrix.dao.UserDao; -import com.donatrix.dao.UserDaoService; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; @@ -24,15 +19,8 @@ public String getName() { @ReactMethod public void registerUser(String email, String password, String name, boolean locked, String type, Promise promise) { try { -// Intent intent = new Intent(this.getCurrentActivity(), UserDaoService.class); -// intent.putExtra("EMAIL", email); -// intent.putExtra("PASS", password); -// intent.putExtra("NAME", name); -// intent.putExtra("LOCKED", locked); -// intent.putExtra("TYPE", type); -// this.getCurrentActivity().startService(intent); - UserDao.registerUser(email, password, name, locked, type, this.getCurrentActivity().getBaseContext()); - promise.resolve("Welcome " + type.charAt(0) + type.substring(1).toLowerCase()); + UserDao.registerUser(email, password, name, locked, type, this.getCurrentActivity()); + promise.resolve("SUCCESS"); } catch (Exception e) { promise.reject("E_LAYOUT_ERROR", e.getMessage()); } diff --git a/android/app/src/main/java/com/donatrix/dao/Database.java b/android/app/src/main/java/com/donatrix/dao/Database.java index d491a6e..ffbb6f3 100644 --- a/android/app/src/main/java/com/donatrix/dao/Database.java +++ b/android/app/src/main/java/com/donatrix/dao/Database.java @@ -49,14 +49,11 @@ private void load() { FileInputStream fis = this.context.openFileInput("database.ser"); ObjectInputStream is = new ObjectInputStream(fis); this.databaseMap = (HashMap) is.readObject(); - if (this.databaseMap == null) { - Log.d("Donatrix", "Null"); - this.databaseMap = new HashMap<>(); - } is.close(); fis.close(); } catch (Exception e) { Log.d("Donatrix", e.getMessage()); + this.databaseMap = new HashMap<>(); } } @@ -71,6 +68,6 @@ public void registerUser(String username, String password, String name, boolean public boolean checkRegisteredUser(String username, String password) { User user = this.databaseMap.get(username); - return user.getPassword().equals(password) && !user.getLocked(); + return user != null && user.getPassword().equals(password) && !user.getLocked(); } } diff --git a/android/app/src/main/java/com/donatrix/dao/UserDaoService.java b/android/app/src/main/java/com/donatrix/dao/UserDaoService.java deleted file mode 100644 index 58dca2d..0000000 --- a/android/app/src/main/java/com/donatrix/dao/UserDaoService.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.donatrix.dao; - -import android.app.IntentService; -import android.app.Service; -import android.content.Context; -import android.content.Intent; -import android.os.IBinder; -import android.support.annotation.Nullable; - -import com.donatrix.MainApplication; -import com.donatrix.model.UserType; -import com.facebook.react.ReactInstanceManager; -import com.facebook.react.ReactNativeHost; - -public class UserDaoService extends IntentService { - private Context context; - - public UserDaoService() { - super("UserDaoService"); - } - - private void registerUser(String email, String password, String name, boolean locked, String type) throws IllegalArgumentException { - Database.getInstance(this.context).registerUser(email, password, name, locked, UserType.valueOf(type)); - } - - private boolean checkRegisteredUser(String email, String password) { - return Database.getInstance(this.context).checkRegisteredUser(email, password); - } - - @Override - protected void onHandleIntent(@Nullable Intent intent) { - MainApplication application = (MainApplication) this.getApplication(); - ReactNativeHost reactNativeHost = application.getReactNativeHost(); - ReactInstanceManager reactInstanceManager = reactNativeHost.getReactInstanceManager(); - this.context = reactInstanceManager.getCurrentReactContext(); - - Intent response = new Intent("RESPONSE"); - - switch(intent.getStringExtra("METHOD")) { - case "Register": - String email = intent.getStringExtra("EMAIL"); - String password = intent.getStringExtra("PASS"); - String name = intent.getStringExtra("NAME"); - boolean locked = intent.getBooleanExtra("LOCKED", false); - String type = intent.getStringExtra("TYPE"); - try { - this.registerUser(email, password, name, locked, type); - response.putExtra("RESPONSE", "SUCCESS"); - } catch (Exception e) { - response.putExtra("RESPONSE", e.getMessage()); - } - break; - case "Login": - email = intent.getStringExtra("EMAIL"); - password = intent.getStringExtra("PASS"); - response.putExtra("RESPONSE", this.checkRegisteredUser(email, password)); - break; - } - sendBroadcast(response); - } -} diff --git a/src/main/js/components/pages/loginPage/LoginPage.js b/src/main/js/components/pages/loginPage/LoginPage.js index d3d9a4b..c3ed1d3 100644 --- a/src/main/js/components/pages/loginPage/LoginPage.js +++ b/src/main/js/components/pages/loginPage/LoginPage.js @@ -22,7 +22,7 @@ export default class LoginPage extends Component { this.state = { usernameInput: '', passwordInput: '', - error: 'Hello' + error: '' }; this.onFieldUpdate = this.onFieldUpdate.bind(this); //needed with arrow op? @@ -61,7 +61,7 @@ export default class LoginPage extends Component { {/* Error Message */} - {this.state.error} + ); } diff --git a/src/main/js/components/pages/registerPage/RegisterPage.js b/src/main/js/components/pages/registerPage/RegisterPage.js index 2290db9..9003fd9 100644 --- a/src/main/js/components/pages/registerPage/RegisterPage.js +++ b/src/main/js/components/pages/registerPage/RegisterPage.js @@ -1,5 +1,5 @@ import React, {Component} from 'react'; -import {View, Picker} from 'react-native'; +import {View, Picker, Alert} from 'react-native'; import Text from '../../Text'; import Button from '../../Button'; import FormTextInput from '../../FormTextInput'; @@ -101,13 +101,14 @@ export default class RegisterPage extends Component { RNAndroidBridge.registerUser(email, pass, `${fname} ${lname}`, false, userType) .then(response => { - alert(response); - if (response.includes('Welcome')) { - this.props.navigation.navigate('Login'); + if (response === 'SUCCESS') { + Alert.alert("Success", "Registration Successful", [{text: 'Login', onPress: () => {this.props.navigation.navigate('Login');}}]); + } else { + Alert.alert("Error", response); } }) .catch(error => { - alert(error); + Alert.alert("Error", error); }); } } From ac285ecc880b2e463616fe1c929e2d653b884d32 Mon Sep 17 00:00:00 2001 From: Pawkwah Date: Thu, 11 Oct 2018 13:19:21 -0400 Subject: [PATCH 13/17] Fixed admin --- ...le__android_arch_core_common_1_1_0_jar.xml | 11 --- ...radle__android_arch_core_runtime_1_1_0.xml | 12 --- ...ndroid_arch_lifecycle_common_1_1_0_jar.xml | 11 --- ...oid_arch_lifecycle_livedata_core_1_1_0.xml | 12 --- ...__android_arch_lifecycle_runtime_1_1_0.xml | 12 --- ...android_arch_lifecycle_viewmodel_1_1_0.xml | 12 --- ...upport_animated_vector_drawable_27_1_1.xml | 12 --- ...om_android_support_appcompat_v7_27_1_1.xml | 12 --- ...support_support_annotations_27_1_1_jar.xml | 11 --- ..._android_support_support_compat_27_1_1.xml | 12 --- ...android_support_support_core_ui_27_1_1.xml | 12 --- ...roid_support_support_core_utils_27_1_1.xml | 12 --- ...ndroid_support_support_fragment_27_1_1.xml | 12 --- ...support_support_vector_drawable_27_1_1.xml | 12 --- ..._com_parse_bolts_bolts_tasks_1_4_0_jar.xml | 11 --- ...radle__javax_inject_javax_inject_1_jar.xml | 11 --- ...Gradle__org_webkit_android_jsc_r174650.xml | 10 -- android/.idea/misc.xml | 2 +- android/android.iml | 18 ++++ android/app/app.iml | 98 ++++++++----------- .../app/src/main/java/com/donatrix/Admin.java | 29 ++++++ 21 files changed, 91 insertions(+), 253 deletions(-) delete mode 100644 android/.idea/libraries/Gradle__android_arch_core_common_1_1_0_jar.xml delete mode 100644 android/.idea/libraries/Gradle__android_arch_core_runtime_1_1_0.xml delete mode 100644 android/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_0_jar.xml delete mode 100644 android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_0.xml delete mode 100644 android/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_0.xml delete mode 100644 android/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_0.xml delete mode 100644 android/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_27_1_1.xml delete mode 100644 android/.idea/libraries/Gradle__com_android_support_appcompat_v7_27_1_1.xml delete mode 100644 android/.idea/libraries/Gradle__com_android_support_support_annotations_27_1_1_jar.xml delete mode 100644 android/.idea/libraries/Gradle__com_android_support_support_compat_27_1_1.xml delete mode 100644 android/.idea/libraries/Gradle__com_android_support_support_core_ui_27_1_1.xml delete mode 100644 android/.idea/libraries/Gradle__com_android_support_support_core_utils_27_1_1.xml delete mode 100644 android/.idea/libraries/Gradle__com_android_support_support_fragment_27_1_1.xml delete mode 100644 android/.idea/libraries/Gradle__com_android_support_support_vector_drawable_27_1_1.xml delete mode 100644 android/.idea/libraries/Gradle__com_parse_bolts_bolts_tasks_1_4_0_jar.xml delete mode 100644 android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml delete mode 100644 android/.idea/libraries/Gradle__org_webkit_android_jsc_r174650.xml create mode 100644 android/android.iml diff --git a/android/.idea/libraries/Gradle__android_arch_core_common_1_1_0_jar.xml b/android/.idea/libraries/Gradle__android_arch_core_common_1_1_0_jar.xml deleted file mode 100644 index 9869803..0000000 --- a/android/.idea/libraries/Gradle__android_arch_core_common_1_1_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__android_arch_core_runtime_1_1_0.xml b/android/.idea/libraries/Gradle__android_arch_core_runtime_1_1_0.xml deleted file mode 100644 index 2da5e49..0000000 --- a/android/.idea/libraries/Gradle__android_arch_core_runtime_1_1_0.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_0_jar.xml b/android/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_0_jar.xml deleted file mode 100644 index 29c0049..0000000 --- a/android/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_0.xml b/android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_0.xml deleted file mode 100644 index 5bd32bf..0000000 --- a/android/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_0.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_0.xml b/android/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_0.xml deleted file mode 100644 index 199f171..0000000 --- a/android/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_0.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_0.xml b/android/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_0.xml deleted file mode 100644 index 9d14f4b..0000000 --- a/android/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_0.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_27_1_1.xml b/android/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_27_1_1.xml deleted file mode 100644 index c45355d..0000000 --- a/android/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_27_1_1.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_android_support_appcompat_v7_27_1_1.xml b/android/.idea/libraries/Gradle__com_android_support_appcompat_v7_27_1_1.xml deleted file mode 100644 index bb507d3..0000000 --- a/android/.idea/libraries/Gradle__com_android_support_appcompat_v7_27_1_1.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_android_support_support_annotations_27_1_1_jar.xml b/android/.idea/libraries/Gradle__com_android_support_support_annotations_27_1_1_jar.xml deleted file mode 100644 index 1517ad9..0000000 --- a/android/.idea/libraries/Gradle__com_android_support_support_annotations_27_1_1_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_android_support_support_compat_27_1_1.xml b/android/.idea/libraries/Gradle__com_android_support_support_compat_27_1_1.xml deleted file mode 100644 index e555fee..0000000 --- a/android/.idea/libraries/Gradle__com_android_support_support_compat_27_1_1.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_android_support_support_core_ui_27_1_1.xml b/android/.idea/libraries/Gradle__com_android_support_support_core_ui_27_1_1.xml deleted file mode 100644 index 787407e..0000000 --- a/android/.idea/libraries/Gradle__com_android_support_support_core_ui_27_1_1.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_android_support_support_core_utils_27_1_1.xml b/android/.idea/libraries/Gradle__com_android_support_support_core_utils_27_1_1.xml deleted file mode 100644 index a1c2168..0000000 --- a/android/.idea/libraries/Gradle__com_android_support_support_core_utils_27_1_1.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_android_support_support_fragment_27_1_1.xml b/android/.idea/libraries/Gradle__com_android_support_support_fragment_27_1_1.xml deleted file mode 100644 index 14e5051..0000000 --- a/android/.idea/libraries/Gradle__com_android_support_support_fragment_27_1_1.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_android_support_support_vector_drawable_27_1_1.xml b/android/.idea/libraries/Gradle__com_android_support_support_vector_drawable_27_1_1.xml deleted file mode 100644 index a873e02..0000000 --- a/android/.idea/libraries/Gradle__com_android_support_support_vector_drawable_27_1_1.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__com_parse_bolts_bolts_tasks_1_4_0_jar.xml b/android/.idea/libraries/Gradle__com_parse_bolts_bolts_tasks_1_4_0_jar.xml deleted file mode 100644 index 0c0d08d..0000000 --- a/android/.idea/libraries/Gradle__com_parse_bolts_bolts_tasks_1_4_0_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml b/android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml deleted file mode 100644 index f9c9a30..0000000 --- a/android/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/libraries/Gradle__org_webkit_android_jsc_r174650.xml b/android/.idea/libraries/Gradle__org_webkit_android_jsc_r174650.xml deleted file mode 100644 index d8d0d63..0000000 --- a/android/.idea/libraries/Gradle__org_webkit_android_jsc_r174650.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/android/.idea/misc.xml b/android/.idea/misc.xml index c0f68ed..99202cc 100644 --- a/android/.idea/misc.xml +++ b/android/.idea/misc.xml @@ -25,7 +25,7 @@ - + diff --git a/android/android.iml b/android/android.iml new file mode 100644 index 0000000..69f36cc --- /dev/null +++ b/android/android.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/app.iml b/android/app/app.iml index 57d7f02..46e15f4 100644 --- a/android/app/app.iml +++ b/android/app/app.iml @@ -70,13 +70,6 @@ - - - - - - - @@ -84,67 +77,62 @@ - - - + + + + + + + - - - + + - - - + + - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/java/com/donatrix/Admin.java b/android/app/src/main/java/com/donatrix/Admin.java index c754108..44a5a4f 100644 --- a/android/app/src/main/java/com/donatrix/Admin.java +++ b/android/app/src/main/java/com/donatrix/Admin.java @@ -5,4 +5,33 @@ */ public class Admin { + private String email; + private String password; + private String name; + private boolean accountState; + + public void setEmail(String email) { + this.email = email; + } + public String getEmail() { + return this.email; + } + public void setPassword(String password) { + this.password = password; + } + public String getPassword() { + return this.password; + } + public void setName(String name) { + this.name = name; + } + public String getName() { + return this.name; + } + public void setAccountState(boolean accountState) { + this.accountState = accountState; + } + public boolean getAccountState() { + return this.accountState; + } } From f987652d2ed9c095d8c3e828c463820d8c7e8dc7 Mon Sep 17 00:00:00 2001 From: zday123 Date: Thu, 11 Oct 2018 14:05:36 -0400 Subject: [PATCH 14/17] Literally blew away the old system. Made one array that stores users with username, password, etc all in it. --- .../app/src/main/java/com/donatrix/Admin.java | 28 ++++++++ .../main/java/com/donatrix/dao/Database.java | 69 ++++++++++--------- .../main/java/com/donatrix/dao/UserDao.java | 3 +- .../main/java/com/donatrix/model/User.java | 12 ++++ 4 files changed, 78 insertions(+), 34 deletions(-) diff --git a/android/app/src/main/java/com/donatrix/Admin.java b/android/app/src/main/java/com/donatrix/Admin.java index c754108..569628e 100644 --- a/android/app/src/main/java/com/donatrix/Admin.java +++ b/android/app/src/main/java/com/donatrix/Admin.java @@ -5,4 +5,32 @@ */ public class Admin { + + private String name; + private String email; + private String password; + + public String getName() { + return name; + } + + public String getEmail() { + return email; + } + + public String getPassword() { + return password; + } + + public void setName(String name) { + this.name = name; + } + + public void setEmail(String email) { + this.email = email; + } + + public void setPassword(String password) { + this.password = password; + } } diff --git a/android/app/src/main/java/com/donatrix/dao/Database.java b/android/app/src/main/java/com/donatrix/dao/Database.java index e2bfc9f..5960380 100644 --- a/android/app/src/main/java/com/donatrix/dao/Database.java +++ b/android/app/src/main/java/com/donatrix/dao/Database.java @@ -7,15 +7,16 @@ import com.donatrix.model.UserType; import java.util.ArrayList; +import com.donatrix.model.User; public class Database { private static Database ourInstance; - private ArrayList userList; - private ArrayList passList; - private ArrayList lockedList; - private ArrayList nameList; - private ArrayList typeList; + private ArrayList userList; +// private ArrayList passList; +// private ArrayList lockedList; +// private ArrayList nameList; +// private ArrayList typeList; public static Database getInstance() { if (Database.ourInstance != null) { @@ -26,47 +27,49 @@ public static Database getInstance() { private Database() { userList = new ArrayList<>(); - passList = new ArrayList<>(); - lockedList = new ArrayList<>(); - nameList = new ArrayList<>(); - typeList = new ArrayList<>(); +// passList = new ArrayList<>(); +// lockedList = new ArrayList<>(); +// nameList = new ArrayList<>(); +// typeList = new ArrayList<>(); } - public ArrayList getUserList() { + public ArrayList getUserList() { return userList; } - public ArrayList getPassList() { - return passList; - } - - public ArrayList getLockedList() { - return lockedList; - } - - public ArrayList getNameList() { - return nameList; - } - - public ArrayList getTypeList() { - return typeList; - } +// public ArrayList getPassList() { +// return passList; +// } +// +// public ArrayList getLockedList() { +// return lockedList; +// } +// +// public ArrayList getNameList() { +// return nameList; +// } +// +// public ArrayList getTypeList() { +// return typeList; +// } public void registerUser(String username, String password, boolean locked, String name, UserType type) { Log.d("ReactNative", "" + username + password + name); - if (!(userList.contains(username))) { - userList.add(username); - passList.add(password); - lockedList.add(locked); - nameList.add(name); - typeList.add(type); + User n = new User(username, password, name, locked, type); + if (!(userList.contains(n))) { + userList.add(n); } else { throw new IllegalArgumentException("Username or password not correct"); } } public boolean checkRegisteredUser(String username, String password) { - return userList.contains(username) && passList.contains(password) - && userList.indexOf(username) == passList.indexOf(password) && !lockedList.get(userList.indexOf(username)); + User m = new User(username, password); + for (User u : Database.getInstance().getUserList()) { + if (u.getEmail().equals(m.getEmail()) && u.getPassword().equals(m.getPassword())) { + return true; + } + } + return false; } } diff --git a/android/app/src/main/java/com/donatrix/dao/UserDao.java b/android/app/src/main/java/com/donatrix/dao/UserDao.java index 5715652..edcd151 100644 --- a/android/app/src/main/java/com/donatrix/dao/UserDao.java +++ b/android/app/src/main/java/com/donatrix/dao/UserDao.java @@ -3,11 +3,12 @@ import android.util.Log; import com.donatrix.model.UserType; +import com.donatrix.model.User; public class UserDao { public static void registerUser(String email, String password, boolean locked, String name, String type) throws IllegalArgumentException { Database.getInstance().registerUser(email, password, locked, name, UserType.valueOf(type)); - for (String user: Database.getInstance().getUserList()) { + for (User user: Database.getInstance().getUserList()) { Log.d("ReactNative", "" + user); } } diff --git a/android/app/src/main/java/com/donatrix/model/User.java b/android/app/src/main/java/com/donatrix/model/User.java index 3b9cd37..84d0871 100644 --- a/android/app/src/main/java/com/donatrix/model/User.java +++ b/android/app/src/main/java/com/donatrix/model/User.java @@ -8,6 +8,18 @@ public class User { private boolean accountState; private UserType userType; + public User(String email, String password, String name, boolean accountState, UserType userType) { + this.email = email; + this.password = password; + this.name = name; + this.accountState = accountState; + this.userType = userType; + } + + public User(String email, String password) { + this(email, password, "Anonymous", false, UserType.USER); + } + public void setEmail(String email) { this.email = email; } From 8cb961b216c5d12ec675c2386ac933845b54713e Mon Sep 17 00:00:00 2001 From: zday123 Date: Thu, 11 Oct 2018 14:08:13 -0400 Subject: [PATCH 15/17] Damn your shitty admin commit parker --- .../app/src/main/java/com/donatrix/Admin.java | 31 ------------------- 1 file changed, 31 deletions(-) diff --git a/android/app/src/main/java/com/donatrix/Admin.java b/android/app/src/main/java/com/donatrix/Admin.java index fd5039f..569628e 100644 --- a/android/app/src/main/java/com/donatrix/Admin.java +++ b/android/app/src/main/java/com/donatrix/Admin.java @@ -5,7 +5,6 @@ */ public class Admin { -<<<<<<< HEAD private String name; private String email; @@ -33,35 +32,5 @@ public void setEmail(String email) { public void setPassword(String password) { this.password = password; -======= - private String email; - private String password; - private String name; - private boolean accountState; - - public void setEmail(String email) { - this.email = email; - } - public String getEmail() { - return this.email; - } - public void setPassword(String password) { - this.password = password; - } - public String getPassword() { - return this.password; - } - public void setName(String name) { - this.name = name; - } - public String getName() { - return this.name; - } - public void setAccountState(boolean accountState) { - this.accountState = accountState; - } - public boolean getAccountState() { - return this.accountState; ->>>>>>> ac285ecc880b2e463616fe1c929e2d653b884d32 } } From 52031c04a4de016a8e8ae4cfeea02cab2c285cc4 Mon Sep 17 00:00:00 2001 From: Ashvin Warrier Date: Thu, 11 Oct 2018 18:42:18 -0400 Subject: [PATCH 16/17] Added package lock --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index cfce111..b9a27f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6800,7 +6800,7 @@ }, "kind-of": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz", "integrity": "sha1-FAo9LUGjbS78+pN3tiwk+ElaXEQ=" }, "klaw": { @@ -8412,7 +8412,7 @@ }, "react-native-tab-view": { "version": "0.0.77", - "resolved": "http://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-0.0.77.tgz", + "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-0.0.77.tgz", "integrity": "sha512-9vjD4Ly1Zlum1Y4g23ODpi/F3gYIUIsKWrsZO/Oh5cuX1eiB1DRVn11nY1z+j/hsQfhfyW6nDlmySyDvYQvYCA==", "requires": { "prop-types": "^15.6.0" @@ -10346,7 +10346,7 @@ }, "uuid": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", + "resolved": "http://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=" }, "uuid-js": { From bd8bdeaf386574850c5c7b33b67cf5fa27bd59ec Mon Sep 17 00:00:00 2001 From: davidsonpoole Date: Wed, 17 Oct 2018 13:06:54 -0400 Subject: [PATCH 17/17] added image --- README.md | 5 +++ android/app/app.iml | 92 +++++++++++++++++++++++++-------------------- 2 files changed, 56 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index 8957050..4b3b2c0 100644 --- a/README.md +++ b/README.md @@ -41,3 +41,8 @@ close the node terminal and repeat step 5. For reload via double tapping 'r' or live reload, most of the time the emulator has to successfully build on start up. Errors introduced to the code after the first sucessfull build will not impact reloading. + +Credits +------------- + +Icons made by Google found from FlatIcon licensed by CC 3.0 BY diff --git a/android/app/app.iml b/android/app/app.iml index 46e15f4..4838604 100644 --- a/android/app/app.iml +++ b/android/app/app.iml @@ -49,13 +49,6 @@ - - - - - - - @@ -63,6 +56,13 @@ + + + + + + + @@ -84,55 +84,65 @@ + + + + - + + - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file