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/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/.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_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_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__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/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/workspace.xml b/android/.idea/workspace.xml deleted file mode 100644 index 08d24b4..0000000 --- a/android/.idea/workspace.xml +++ /dev/null @@ -1,2362 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1537653917091 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file 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 5c67f07..4838604 100644 --- a/android/app/app.iml +++ b/android/app/app.iml @@ -32,7 +32,6 @@ - @@ -71,13 +70,6 @@ - - - - - - - @@ -85,19 +77,34 @@ + + + + + + + + + - + + + + + + - + - + + @@ -106,35 +113,36 @@ - - - - + + + + + + - + - + + + - - + - - - + - + - + \ No newline at end of file diff --git a/android/app/src/main/java/com/donatrix/MainApplication.java b/android/app/src/main/java/com/donatrix/MainApplication.java index dcd9b85..2d6c12d 100644 --- a/android/app/src/main/java/com/donatrix/MainApplication.java +++ b/android/app/src/main/java/com/donatrix/MainApplication.java @@ -2,6 +2,7 @@ import android.app.Application; +import com.donatrix.bridge.RNAndroidBridgePackage; import com.facebook.react.ReactApplication; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; @@ -23,7 +24,7 @@ public boolean getUseDeveloperSupport() { protected List getPackages() { return Arrays.asList( new MainReactPackage(), - new RNJavaLinkPackage() + new RNAndroidBridgePackage() ); } 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/RNJavaLink.java b/android/app/src/main/java/com/donatrix/RNJavaLink.java deleted file mode 100644 index 02214f0..0000000 --- a/android/app/src/main/java/com/donatrix/RNJavaLink.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.donatrix; - -import com.facebook.react.bridge.NativeModule; -import com.facebook.react.bridge.ReactApplicationContext; -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 java.util.Map; -import java.util.HashMap; - -public class RNJavaLink extends ReactContextBaseJavaModule { - - public RNJavaLink(ReactApplicationContext reactContext) { - super(reactContext); - } - - @Override - public String getName() { - return "RNJavaLink"; - } - - @ReactMethod - public void registerUser(String email, String password, String locked, String name) { - MySQLCon conn = new MySQLCon(); - conn.registerUser(email, password, locked, name); - } -} diff --git a/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java new file mode 100644 index 0000000..b6284a6 --- /dev/null +++ b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridge.java @@ -0,0 +1,37 @@ +package com.donatrix.bridge; + +import com.donatrix.dao.UserDao; +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); + } + + @Override + public String getName() { + return "RNAndroidBridge"; + } + + @ReactMethod + public void registerUser(String email, String password, String name, boolean locked, String type, Promise promise) { + try { + UserDao.registerUser(email, password, name, locked, type, this.getCurrentActivity()); + promise.resolve("SUCCESS"); + } catch (Exception e) { + promise.reject("E_LAYOUT_ERROR", e.getMessage()); + } + } + + @ReactMethod + public void checkRegisteredUser(String email, String password, Promise promise) { + try { + 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/RNJavaLinkPackage.java b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridgePackage.java similarity index 65% rename from android/app/src/main/java/com/donatrix/RNJavaLinkPackage.java rename to android/app/src/main/java/com/donatrix/bridge/RNAndroidBridgePackage.java index b153781..12503e4 100644 --- a/android/app/src/main/java/com/donatrix/RNJavaLinkPackage.java +++ b/android/app/src/main/java/com/donatrix/bridge/RNAndroidBridgePackage.java @@ -1,6 +1,4 @@ -// CustomToastPackage.java - -package com.donatrix; +package com.donatrix.bridge; import com.facebook.react.ReactPackage; import com.facebook.react.bridge.NativeModule; @@ -11,7 +9,7 @@ import java.util.Collections; import java.util.List; -public class RNJavaLinkPackage implements ReactPackage { +public class RNAndroidBridgePackage implements ReactPackage { @Override public List createViewManagers(ReactApplicationContext reactContext) { @@ -19,11 +17,9 @@ public List createViewManagers(ReactApplicationContext reactContext } @Override - public List createNativeModules( - ReactApplicationContext reactContext) { + public List createNativeModules(ReactApplicationContext reactContext) { List modules = new ArrayList<>(); - - modules.add(new RNJavaLink(reactContext)); + modules.add(new RNAndroidBridge(reactContext)); return modules; } diff --git a/android/app/src/main/java/com/donatrix/dao/Database.java b/android/app/src/main/java/com/donatrix/dao/Database.java new file mode 100644 index 0000000..b0714e9 --- /dev/null +++ b/android/app/src/main/java/com/donatrix/dao/Database.java @@ -0,0 +1,73 @@ +package com.donatrix.dao; + +import android.content.Context; +import android.util.Log; + +import com.donatrix.model.User; +import com.donatrix.model.UserType; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.HashMap; +import java.util.ArrayList; +import com.donatrix.model.User; + + +public class Database { + private static Database ourInstance; + private Context context; + private HashMap databaseMap; + + public static Database getInstance(Context context) { + if (Database.ourInstance != null) { + return ourInstance; + } + return ourInstance = new Database(context); + } + + private Database(Context context) { + this.context = context; + load(); + } + + 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()); + } + } + + private void load() { + try { + FileInputStream fis = this.context.openFileInput("database.ser"); + ObjectInputStream is = new ObjectInputStream(fis); + this.databaseMap = (HashMap) is.readObject(); + is.close(); + fis.close(); + } catch (Exception e) { + Log.d("Donatrix", e.getMessage()); + this.databaseMap = new HashMap<>(); + } + } + + 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 already taken"); + } + } + + public boolean checkRegisteredUser(String username, String password) { + User user = this.databaseMap.get(username); + return user != null && 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 new file mode 100644 index 0000000..9091ce4 --- /dev/null +++ b/android/app/src/main/java/com/donatrix/dao/UserDao.java @@ -0,0 +1,16 @@ +package com.donatrix.dao; + +import android.content.Context; + +import com.donatrix.model.UserType; +import com.donatrix.model.User; + +public class UserDao { + 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, Context context) { + return Database.getInstance(context).checkRegisteredUser(email, password); + } +} diff --git a/android/app/src/main/java/com/donatrix/User.java b/android/app/src/main/java/com/donatrix/model/Admin.java similarity index 55% rename from android/app/src/main/java/com/donatrix/User.java rename to android/app/src/main/java/com/donatrix/model/Admin.java index b2828b4..ecd7574 100644 --- a/android/app/src/main/java/com/donatrix/User.java +++ b/android/app/src/main/java/com/donatrix/model/Admin.java @@ -1,34 +1,36 @@ -package com.donatrix; +package com.donatrix.model; -public class User { +/** + * Created by parkerharris on 10/11/18. + */ +public class Admin { + + private String name; private String email; private String password; - private String name; - private boolean accountState; - public void setEmail(String email) { - this.email = email; + public String getName() { + return name; } + public String getEmail() { - return this.email; - } - public void setPassword(String password) { - this.password = password; + return email; } + public String getPassword() { - return this.password; + return password; } + public void setName(String name) { this.name = name; } - public String getName() { - return this.name; - } - public void setAccountState(boolean accountState) { - this.accountState = accountState; + + public void setEmail(String email) { + this.email = email; } - public boolean getAccountState() { - return this.accountState; + + public void setPassword(String password) { + this.password = password; } } diff --git a/android/app/src/main/java/com/donatrix/model/User.java b/android/app/src/main/java/com/donatrix/model/User.java new file mode 100644 index 0000000..3e60e43 --- /dev/null +++ b/android/app/src/main/java/com/donatrix/model/User.java @@ -0,0 +1,51 @@ +package com.donatrix.model; + +import java.io.Serializable; + +public class User implements Serializable { + + private String email; + private String password; + private String name; + 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; + } + 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 setLocked(boolean locked) { + this.locked = locked; + } + public boolean getLocked() { + return this.locked; + } + 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..7685a53 --- /dev/null +++ b/android/app/src/main/java/com/donatrix/model/UserType.java @@ -0,0 +1,20 @@ +package com.donatrix.model; + +import java.io.Serializable; + +public enum UserType implements Serializable { + 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/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": { diff --git a/src/main/js/components/RNJavaLink.js b/src/main/js/components/RNJavaLink.js deleted file mode 100644 index ba15d51..0000000 --- a/src/main/js/components/RNJavaLink.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * This exposes the native ToastExample module as a JS module. This has a - * function 'show' which takes the following parameters: - * - * 1. String message: A string with the text to toast - * 2. int duration: The duration of the toast. May be ToastExample.SHORT or - * ToastExample.LONG - */ -import {NativeModules} from 'react-native'; -module.exports = NativeModules.RNJavaLink; diff --git a/src/main/js/components/pages/loginPage/LoginPage.js b/src/main/js/components/pages/loginPage/LoginPage.js index 152cadc..c3ed1d3 100644 --- a/src/main/js/components/pages/loginPage/LoginPage.js +++ b/src/main/js/components/pages/loginPage/LoginPage.js @@ -4,6 +4,7 @@ import Text from '../../Text'; import Button from '../../Button'; import FormTextInput from '../../FormTextInput'; import {BASE_STYLES, VIEW_STYLES, TEXT_STYLES} from '../../../styles'; +import RNAndroidBridge from '../../../utils/AndroidBridge'; /** * Login Page displays username and password fields ... @@ -13,7 +14,7 @@ export default class LoginPage extends Component { static navigationOptions = { title: 'Register', - } + }; constructor(props) { super(props); @@ -21,13 +22,11 @@ export default class LoginPage extends Component { this.state = { usernameInput: '', passwordInput: '', - } + error: '' + }; this.onFieldUpdate = this.onFieldUpdate.bind(this); //needed with arrow op? this.onSubmit = this.onSubmit.bind(this); - - this.USERNAME = 'user'; - this.PASSWORD = 'pass'; } render() { @@ -62,7 +61,7 @@ export default class LoginPage extends Component { {/* Error Message */} - {this.state.error} + ); } @@ -81,11 +80,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('Donatrix'); + } else { + this.setState({error: 'Invalid username or password'}); + } + }) + .catch(err => { + alert(err); + }); } } diff --git a/src/main/js/components/pages/registerPage/RegisterPage.js b/src/main/js/components/pages/registerPage/RegisterPage.js index 394e047..9003fd9 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, Alert} from 'react-native'; import Text from '../../Text'; import Button from '../../Button'; import FormTextInput from '../../FormTextInput'; import {VIEW_STYLES, TEXT_STYLES} from '../../../styles'; -import RNJavaLink from '../../RNJavaLink'; +import RNAndroidBridge from '../../../utils/AndroidBridge'; +import UserType from '../../../utils/UserType'; /** * Register Page prompts the user with fields to register a new account @@ -19,12 +20,13 @@ export default class RegisterPage extends Component { super(props); this.state = { - fnameInput: '', - lnameInput: '', - emailInput: '', - passwordInput: '', - confirmPasswordInput: '', - } + fname: '', + lname: '', + email: '', + pass: '', + confPass: '', + userType: 'USER', + }; this.onFieldUpdate = this.onFieldUpdate.bind(this); //needed with arrow op? this.onSubmit = this.onSubmit.bind(this); @@ -56,6 +58,15 @@ export default class RegisterPage extends Component { title="Confirm Password" onChangeText={(t) => this.onFieldUpdate(t, "confPass")} /> + this.setState({userType})}> + + + + + {/* buttons */} @@ -73,34 +84,31 @@ 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() { - let fname = this.state.fnameInput - let lname = this.state.lnameInput - let email = this.state.emailInput - let password = this.state.passwordInput - let confPassword = this.state.confirmPasswordInput + const { + fname, + lname, + email, + pass, + confPass, + userType + } = this.state; - RNJavaLink.registerUser(email, password, "0", fname); + RNAndroidBridge.registerUser(email, pass, `${fname} ${lname}`, false, userType) + .then(response => { + if (response === 'SUCCESS') { + Alert.alert("Success", "Registration Successful", [{text: 'Login', onPress: () => {this.props.navigation.navigate('Login');}}]); + } else { + Alert.alert("Error", response); + } + }) + .catch(error => { + Alert.alert("Error", error); + }); } } diff --git a/src/main/js/utils/AndroidBridge.js b/src/main/js/utils/AndroidBridge.js new file mode 100644 index 0000000..1e973e7 --- /dev/null +++ b/src/main/js/utils/AndroidBridge.js @@ -0,0 +1,2 @@ +import {NativeModules} from 'react-native'; +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;