From 5cc5d4067611245d7509702a13d25888f15d8a14 Mon Sep 17 00:00:00 2001 From: Mattheo Date: Sat, 11 Nov 2017 18:03:12 -0800 Subject: [PATCH 001/221] h --- app/src/main/java/com/groupproject/User.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/groupproject/User.java b/app/src/main/java/com/groupproject/User.java index 3721fe1..d3c23b0 100644 --- a/app/src/main/java/com/groupproject/User.java +++ b/app/src/main/java/com/groupproject/User.java @@ -8,6 +8,7 @@ public class User { private String last_name; private String email; + private String chnaged; public User(String id, String first_name, String last_name, String email) { this.id = id; this.first_name = first_name; From 4d18d02f4c7c66ba9bd4cf57a4c9d398137e8bda Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 18:09:54 -0800 Subject: [PATCH 002/221] removed idea folder from repo --- .idea/gradle.xml | 18 -------------- .idea/misc.xml | 49 ------------------------------------- .idea/modules.xml | 9 ------- .idea/runConfigurations.xml | 12 --------- 4 files changed, 88 deletions(-) delete mode 100644 .idea/gradle.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/runConfigurations.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index 7ac24c7..0000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index cc72de3..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - 1.8 - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index f0e21a1..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file From a77bbd8ee150e8eb774af916c5964feeb81505e8 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 18:16:49 -0800 Subject: [PATCH 003/221] b --- .../main/java/com/groupproject/Controller/LoginActivity.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/groupproject/Controller/LoginActivity.java b/app/src/main/java/com/groupproject/Controller/LoginActivity.java index 198d50c..6f0c04f 100644 --- a/app/src/main/java/com/groupproject/Controller/LoginActivity.java +++ b/app/src/main/java/com/groupproject/Controller/LoginActivity.java @@ -57,8 +57,7 @@ public void onCompleted(JSONObject object, GraphResponse response) { } }); Bundle parameters = new Bundle(); - parameters.putString("fields", "id, first_name, last_name, email, " + - "birthday"); + parameters.putString("fields", "id, first_name, last_name, email, birthday"); request.setParameters(parameters); request.executeAsync(); Intent intent = new Intent(getApplicationContext(), MainActivity.class); From a72581c55beb2980dd171f6c2b8f6fa6f5d31dd0 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 18:36:26 -0800 Subject: [PATCH 004/221] Added structre --- app/build.gradle | 3 ++ .../groupproject/DataManager/DataBaseAPI.java | 52 +++++++++++++++++++ .../java/com/groupproject/Model/Activity.java | 8 +++ .../java/com/groupproject/Model/Event.java | 9 ++++ .../java/com/groupproject/Model/User.java | 8 +++ 5 files changed, 80 insertions(+) create mode 100644 app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java create mode 100644 app/src/main/java/com/groupproject/Model/Activity.java create mode 100644 app/src/main/java/com/groupproject/Model/Event.java create mode 100644 app/src/main/java/com/groupproject/Model/User.java diff --git a/app/build.gradle b/app/build.gradle index 988415a..54c2af5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,6 +24,9 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) + compile 'org.mongodb:mongo-java-driver:3.5.0' + compile 'org.mongodb.morphia:morphia:1.3.2' + compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.facebook.android:facebook-android-sdk:[4,5)' diff --git a/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java b/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java new file mode 100644 index 0000000..b2727f0 --- /dev/null +++ b/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java @@ -0,0 +1,52 @@ +package com.groupproject.DataManager; + + +import com.mongodb.MongoClient; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; + +import org.bson.Document; +import org.mongodb.morphia.Datastore; +import org.mongodb.morphia.Morphia; + +public class DataBaseAPI { + + //TODO hide credentials + private static final String uri = "mongodb://admin:admin@cluster0-shard-00-00-x1fap.mongodb.net:27017," + + "cluster0-shard-00-01-x1fap.mongodb.net:27017," + + "cluster0-shard-00-02-x1fap.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin" + + private static DataBaseAPI dataBaseAPI = null; + + private static MongoClient mongoClient; + private static MongoDatabase database; + private static MongoCollection collection; + private static Datastore datastore; + private static Morphia morphia; + + + + private DataBaseAPI() { + init(); + } + + public static DataBaseAPI getInstance(){ + if (dataBaseAPI == null) + dataBaseAPI = new DataBaseAPI(); + return dataBaseAPI; + } + + private static void init(){ + + mongoClient = new MongoClient(uri); + database = mongoClient.getDatabase("Pinned"); +// collection = database.getCollection("NewCollection"); + + morphia = new Morphia(); + + datastore = morphia.createDatastore(mongoClient, "morphia_example"); + } + + + +} diff --git a/app/src/main/java/com/groupproject/Model/Activity.java b/app/src/main/java/com/groupproject/Model/Activity.java new file mode 100644 index 0000000..b5443a2 --- /dev/null +++ b/app/src/main/java/com/groupproject/Model/Activity.java @@ -0,0 +1,8 @@ +package com.groupproject.Model; + +/** + * Created by henryhargreaves on 11/11/2017. + */ + +public class Activity { +} diff --git a/app/src/main/java/com/groupproject/Model/Event.java b/app/src/main/java/com/groupproject/Model/Event.java new file mode 100644 index 0000000..51e61a5 --- /dev/null +++ b/app/src/main/java/com/groupproject/Model/Event.java @@ -0,0 +1,9 @@ +package com.groupproject.Model; + +/** + * Created by henryhargreaves on 11/11/2017. + */ + + +public class Event { +} diff --git a/app/src/main/java/com/groupproject/Model/User.java b/app/src/main/java/com/groupproject/Model/User.java new file mode 100644 index 0000000..2c4b74a --- /dev/null +++ b/app/src/main/java/com/groupproject/Model/User.java @@ -0,0 +1,8 @@ +package com.groupproject.Model; + +/** + * Created by henryhargreaves on 11/11/2017. + */ + +public class User { +} From 69bf0af89b33332afadffc01a448a9c64a6e46ab Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 19:10:47 -0800 Subject: [PATCH 005/221] Added the class imp --- .../groupproject/DataManager/DataBaseAPI.java | 17 ++-- .../groupproject/DataManager/DataManager.java | 9 +- .../java/com/groupproject/Model/Activity.java | 64 ++++++++++++- .../java/com/groupproject/Model/Event.java | 96 ++++++++++++++++++- .../java/com/groupproject/Model/Location.java | 22 +++++ .../java/com/groupproject/Model/User.java | 73 +++++++++++++- 6 files changed, 262 insertions(+), 19 deletions(-) create mode 100644 app/src/main/java/com/groupproject/Model/Location.java diff --git a/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java b/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java index b2727f0..241483e 100644 --- a/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java +++ b/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java @@ -1,6 +1,9 @@ package com.groupproject.DataManager; +import com.groupproject.Model.Activity; +import com.groupproject.Model.Event; +import com.groupproject.Model.User; import com.mongodb.MongoClient; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoDatabase; @@ -14,7 +17,7 @@ public class DataBaseAPI { //TODO hide credentials private static final String uri = "mongodb://admin:admin@cluster0-shard-00-00-x1fap.mongodb.net:27017," + "cluster0-shard-00-01-x1fap.mongodb.net:27017," + - "cluster0-shard-00-02-x1fap.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin" + "cluster0-shard-00-02-x1fap.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin"; private static DataBaseAPI dataBaseAPI = null; @@ -22,7 +25,7 @@ public class DataBaseAPI { private static MongoDatabase database; private static MongoCollection collection; private static Datastore datastore; - private static Morphia morphia; + private static Morphia morphia; @@ -37,16 +40,18 @@ public static DataBaseAPI getInstance(){ } private static void init(){ - mongoClient = new MongoClient(uri); database = mongoClient.getDatabase("Pinned"); // collection = database.getCollection("NewCollection"); - morphia = new Morphia(); - - datastore = morphia.createDatastore(mongoClient, "morphia_example"); + morphia.map(User.class, Activity.class, Event.class);//TODO Update with a method call + datastore = morphia.createDatastore(mongoClient, "morphia_example"); } +// private static void addMorphia(Class c){ +// morphia.add +// } + } diff --git a/app/src/main/java/com/groupproject/DataManager/DataManager.java b/app/src/main/java/com/groupproject/DataManager/DataManager.java index bbcac0e..982a6cc 100644 --- a/app/src/main/java/com/groupproject/DataManager/DataManager.java +++ b/app/src/main/java/com/groupproject/DataManager/DataManager.java @@ -1,12 +1,13 @@ package com.groupproject.DataManager; -/** - * Created by henryhargreaves on 10/11/2017. - */ -public interface DataManager { +public abstract class DataManager { + private DataBaseAPI dataBaseAPI; + public DataManager(DataBaseAPI dataBaseAPI) { + this.dataBaseAPI = DataBaseAPI.getInstance(); + } } diff --git a/app/src/main/java/com/groupproject/Model/Activity.java b/app/src/main/java/com/groupproject/Model/Activity.java index b5443a2..52085fb 100644 --- a/app/src/main/java/com/groupproject/Model/Activity.java +++ b/app/src/main/java/com/groupproject/Model/Activity.java @@ -1,8 +1,66 @@ package com.groupproject.Model; -/** - * Created by henryhargreaves on 11/11/2017. - */ + +import org.bson.types.ObjectId; +import org.mongodb.morphia.annotations.Entity; +import org.mongodb.morphia.annotations.Field; +import org.mongodb.morphia.annotations.Id; +import org.mongodb.morphia.annotations.Index; +import org.mongodb.morphia.annotations.Indexes; +import org.mongodb.morphia.annotations.Reference; + +import java.util.ArrayList; +import java.util.List; + +@Entity +@Indexes({ + @Index(value = "eventList", fields = @Field("eventList")), + @Index(value = "users", fields = @Field("users")), +}) public class Activity { + + @Id + private ObjectId id; + + @Reference + private List eventList; + @Reference + private List users; + + private String name; + private String description; + + public Activity() { + init(); + } + + public Activity(String name, String description) { + this.name = name; + this.description = description; + init(); + } + + private void init(){ + eventList = new ArrayList<>(); + users= new ArrayList<>(); + } + + public void setName(String name) { + this.name = name; + } + + public void setDescription(String description) { + this.description = description; + } + + public List getEventList() { + return eventList; + } + + public List getUsers() { + return users; + } + + } diff --git a/app/src/main/java/com/groupproject/Model/Event.java b/app/src/main/java/com/groupproject/Model/Event.java index 51e61a5..2d00a46 100644 --- a/app/src/main/java/com/groupproject/Model/Event.java +++ b/app/src/main/java/com/groupproject/Model/Event.java @@ -1,9 +1,99 @@ package com.groupproject.Model; -/** - * Created by henryhargreaves on 11/11/2017. - */ +import org.bson.types.ObjectId; +import org.mongodb.morphia.annotations.Entity; +import org.mongodb.morphia.annotations.Field; +import org.mongodb.morphia.annotations.Id; +import org.mongodb.morphia.annotations.Index; +import org.mongodb.morphia.annotations.Indexes; +import org.mongodb.morphia.annotations.Reference; + +import java.util.ArrayList; +import java.util.List; + +@Entity +@Indexes({ + @Index(value = "location", fields = @Field("location")), + @Index(value = "visibility", fields = @Field("visibility")), + @Index(value = "going", fields = @Field("going")), + @Index(value = "interested", fields = @Field("interested")), + @Index(value = "relatedActivities", fields = @Field("relatedActivities")), +}) public class Event { + + enum VISIBILITY { + INVITE_ONLY, + FRIENDS, + PUBLIC + } + + + @Id + private ObjectId id; + + private VISIBILITY visibility; + + @Reference + private Location location; + @Reference + private List going; + @Reference + private List interested; + @Reference + private List relatedActivities; + + private String name; + private String description; + + + public Event() { + init(); + } + + public Event(String name, String description) { + this.name = name; + this.description = description; + init(); + } + + + private void init(){ + going = new ArrayList<>(); + interested= new ArrayList<>(); + relatedActivities= new ArrayList<>(); + } + + public void setVisibility(VISIBILITY visibility) { + this.visibility = visibility; + } + + public void setLocation(Location location) { + this.location = location; + } + + public void setName(String name) { + this.name = name; + } + + public void setDescription(String description) { + this.description = description; + } + + public VISIBILITY getVisibility() { + return visibility; + } + + public List getGoing() { + return going; + } + + public List getInterested() { + return interested; + } + + public List getRelatedActivities() { + return relatedActivities; + } } diff --git a/app/src/main/java/com/groupproject/Model/Location.java b/app/src/main/java/com/groupproject/Model/Location.java new file mode 100644 index 0000000..88d8357 --- /dev/null +++ b/app/src/main/java/com/groupproject/Model/Location.java @@ -0,0 +1,22 @@ +package com.groupproject.Model; + + + +public class Location { + + private double latitude; + private double longitude; + + public Location(double latitude, double longitude) { + this.latitude = latitude; + this.longitude = longitude; + } + + public double getLatitude() { + return latitude; + } + + public double getLongitude() { + return longitude; + } +} diff --git a/app/src/main/java/com/groupproject/Model/User.java b/app/src/main/java/com/groupproject/Model/User.java index 2c4b74a..4ac30ad 100644 --- a/app/src/main/java/com/groupproject/Model/User.java +++ b/app/src/main/java/com/groupproject/Model/User.java @@ -1,8 +1,75 @@ package com.groupproject.Model; -/** - * Created by henryhargreaves on 11/11/2017. - */ +import org.bson.types.ObjectId; +import org.mongodb.morphia.annotations.Entity; +import org.mongodb.morphia.annotations.Field; +import org.mongodb.morphia.annotations.Id; +import org.mongodb.morphia.annotations.Index; +import org.mongodb.morphia.annotations.Indexes; +import org.mongodb.morphia.annotations.Reference; + +import java.util.ArrayList; +import java.util.List; + +@Entity +@Indexes({ + @Index(value = "location", fields = @Field("location")) +}) public class User { + + @Id + private ObjectId id; + + @Reference + private List connection; + @Reference + private List activities; + @Reference + private List goingEvents; + @Reference + private List interestedEvents; + @Reference + private Location location; + + private String userName; + private String password; + + + public User() { + init(); + } + + public User(String userName, String password) { + this.userName = userName; + this.password = password; + init(); + } + + private void init(){ + connection = new ArrayList<>(); + activities= new ArrayList<>(); + goingEvents= new ArrayList<>(); + interestedEvents= new ArrayList<>(); + } + + public void setLocation(Location location) { + this.location = location; + } + + public List getConnection() { + return connection; + } + + public List getActivities() { + return activities; + } + + public List getGoingEvents() { + return goingEvents; + } + + public List getInterestedEvents() { + return interestedEvents; + } } From 4ae8e51600af6225b79a16805a779b5d43afad12 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 19:13:45 -0800 Subject: [PATCH 006/221] updated the ignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index be750ee..ae1e264 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ *.iml .gradle /local.properties -/.idea +/.idea/ /.idea/libraries .DS_Store /build From 99e5f1a96f2db4ca96dd8e5ab99ba966ccbd420e Mon Sep 17 00:00:00 2001 From: Hailey Pun Date: Sat, 11 Nov 2017 19:19:31 -0800 Subject: [PATCH 007/221] Splash background working --- .../main/res/drawable/splash_background.xml | 4 +- app/src/main/res/layout/fragment_groups.xml | 68 ++++++++++++++++--- app/src/main/res/values/colors.xml | 1 + 3 files changed, 63 insertions(+), 10 deletions(-) diff --git a/app/src/main/res/drawable/splash_background.xml b/app/src/main/res/drawable/splash_background.xml index 566006e..df7927f 100644 --- a/app/src/main/res/drawable/splash_background.xml +++ b/app/src/main/res/drawable/splash_background.xml @@ -1,11 +1,11 @@ + android:drawable="@color/backgroundColour"/> + android:src="@drawable/pinnedlogo" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_groups.xml b/app/src/main/res/layout/fragment_groups.xml index cc957bc..eab3e94 100644 --- a/app/src/main/res/layout/fragment_groups.xml +++ b/app/src/main/res/layout/fragment_groups.xml @@ -1,13 +1,65 @@ - - + - + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 3ab3e9c..60d1dfd 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,4 +3,5 @@ #3F51B5 #303F9F #FF4081 + #85b6da From c8c388075c4b5a2e3de912a727c18d7437216974 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 19:21:51 -0800 Subject: [PATCH 008/221] updated the interface --- .../groupproject/DataManager/DataBaseAPI.java | 26 ++++++++----------- .../groupproject/DataManager/DataManager.java | 13 +++++++++- .../java/com/groupproject/Model/Activity.java | 11 +++++++- .../java/com/groupproject/Model/Event.java | 11 ++++++-- .../java/com/groupproject/Model/User.java | 10 ++++++- 5 files changed, 51 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java b/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java index 241483e..a3c08d0 100644 --- a/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java +++ b/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java @@ -12,10 +12,10 @@ import org.mongodb.morphia.Datastore; import org.mongodb.morphia.Morphia; -public class DataBaseAPI { +class DataBaseAPI { //TODO hide credentials - private static final String uri = "mongodb://admin:admin@cluster0-shard-00-00-x1fap.mongodb.net:27017," + + private static final String uri = "mongodb://admin:admin@cluster0-shard-00-00-x1fap.mongodb.net:27017," + "cluster0-shard-00-01-x1fap.mongodb.net:27017," + "cluster0-shard-00-02-x1fap.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin"; @@ -28,30 +28,26 @@ public class DataBaseAPI { private static Morphia morphia; - private DataBaseAPI() { init(); } - public static DataBaseAPI getInstance(){ + static DataBaseAPI getInstance() { if (dataBaseAPI == null) dataBaseAPI = new DataBaseAPI(); return dataBaseAPI; } - private static void init(){ + private static void init() { mongoClient = new MongoClient(uri); database = mongoClient.getDatabase("Pinned"); -// collection = database.getCollection("NewCollection"); - morphia = new Morphia(); - morphia.map(User.class, Activity.class, Event.class);//TODO Update with a method call - datastore = morphia.createDatastore(mongoClient, "morphia_example"); +// collection = database.getCollection("NewCollection"); + morphia = new Morphia(); + morphia.map(User.class, Activity.class, Event.class);//TODO Update with a method call + datastore = morphia.createDatastore(mongoClient, database.getName()); } -// private static void addMorphia(Class c){ -// morphia.add -// } - - - + public Datastore getDataStore() { + return datastore; + } } diff --git a/app/src/main/java/com/groupproject/DataManager/DataManager.java b/app/src/main/java/com/groupproject/DataManager/DataManager.java index 982a6cc..37c0854 100644 --- a/app/src/main/java/com/groupproject/DataManager/DataManager.java +++ b/app/src/main/java/com/groupproject/DataManager/DataManager.java @@ -1,13 +1,24 @@ package com.groupproject.DataManager; +import java.util.List; + public abstract class DataManager { private DataBaseAPI dataBaseAPI; - public DataManager(DataBaseAPI dataBaseAPI) { + public DataManager() { this.dataBaseAPI = DataBaseAPI.getInstance(); } + public DataManager persist(DataManager object){ + dataBaseAPI.getDataStore().save(object); + return object; + } + + public List querry(String[] arguments){ + return null; + } + } diff --git a/app/src/main/java/com/groupproject/Model/Activity.java b/app/src/main/java/com/groupproject/Model/Activity.java index 52085fb..10e43b4 100644 --- a/app/src/main/java/com/groupproject/Model/Activity.java +++ b/app/src/main/java/com/groupproject/Model/Activity.java @@ -1,6 +1,8 @@ package com.groupproject.Model; +import com.groupproject.DataManager.DataManager; + import org.bson.types.ObjectId; import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Field; @@ -18,7 +20,7 @@ @Index(value = "users", fields = @Field("users")), }) -public class Activity { +public class Activity extends DataManager { @Id private ObjectId id; @@ -32,10 +34,12 @@ public class Activity { private String description; public Activity() { + super(); init(); } public Activity(String name, String description) { + super(); this.name = name; this.description = description; init(); @@ -46,6 +50,11 @@ private void init(){ users= new ArrayList<>(); } + + public void save(){ + persist(this); + } + public void setName(String name) { this.name = name; } diff --git a/app/src/main/java/com/groupproject/Model/Event.java b/app/src/main/java/com/groupproject/Model/Event.java index 2d00a46..bd0bb16 100644 --- a/app/src/main/java/com/groupproject/Model/Event.java +++ b/app/src/main/java/com/groupproject/Model/Event.java @@ -1,6 +1,8 @@ package com.groupproject.Model; +import com.groupproject.DataManager.DataManager; + import org.bson.types.ObjectId; import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Field; @@ -21,7 +23,7 @@ @Index(value = "relatedActivities", fields = @Field("relatedActivities")), }) -public class Event { +public class Event extends DataManager { enum VISIBILITY { INVITE_ONLY, @@ -29,7 +31,6 @@ enum VISIBILITY { PUBLIC } - @Id private ObjectId id; @@ -49,10 +50,12 @@ enum VISIBILITY { public Event() { + super(); init(); } public Event(String name, String description) { + super(); this.name = name; this.description = description; init(); @@ -65,6 +68,10 @@ private void init(){ relatedActivities= new ArrayList<>(); } + public void save(){ + persist(this); + } + public void setVisibility(VISIBILITY visibility) { this.visibility = visibility; } diff --git a/app/src/main/java/com/groupproject/Model/User.java b/app/src/main/java/com/groupproject/Model/User.java index 4ac30ad..d9055aa 100644 --- a/app/src/main/java/com/groupproject/Model/User.java +++ b/app/src/main/java/com/groupproject/Model/User.java @@ -1,5 +1,7 @@ package com.groupproject.Model; +import com.groupproject.DataManager.DataManager; + import org.bson.types.ObjectId; import org.mongodb.morphia.annotations.Entity; import org.mongodb.morphia.annotations.Field; @@ -16,7 +18,7 @@ @Index(value = "location", fields = @Field("location")) }) -public class User { +public class User extends DataManager { @Id private ObjectId id; @@ -37,10 +39,12 @@ public class User { public User() { + super(); init(); } public User(String userName, String password) { + super(); this.userName = userName; this.password = password; init(); @@ -53,6 +57,10 @@ private void init(){ interestedEvents= new ArrayList<>(); } + public void save(){ + persist(this); + } + public void setLocation(Location location) { this.location = location; } From 648db055d7919cc83e36c5350cd6d005b09b9840 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 19:30:20 -0800 Subject: [PATCH 009/221] added some tests --- .../com/groupproject/DataManager/test.java | 36 +++++++++++++++++++ .../java/com/groupproject/Model/User.java | 3 +- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/groupproject/DataManager/test.java diff --git a/app/src/main/java/com/groupproject/DataManager/test.java b/app/src/main/java/com/groupproject/DataManager/test.java new file mode 100644 index 0000000..8b2c84f --- /dev/null +++ b/app/src/main/java/com/groupproject/DataManager/test.java @@ -0,0 +1,36 @@ +package com.groupproject.DataManager; + +import com.groupproject.Model.Activity; +import com.groupproject.Model.Event; +import com.groupproject.Model.User; + + +public class test { + + public static void main(String[] args) { + User user1 = new User("1", "1"); + User user2 = new User("2", "2"); + User user3 = new User("3", "3"); + + Activity activity1 = new Activity("1", "1"); + Activity activity2 = new Activity("2", "2"); + + Event event1 = new Event("1", "1"); + Event event2 = new Event("2", "2"); + + activity1.getUsers().add(user1); + activity1.getUsers().add(user2); + activity2.getUsers().add(user1); + + event1.getGoing().add(user1); + event1.getInterested().add(user2); + event2.getGoing().add(user3); + + user1.save(); + user2.save(); + user3.save(); + + + } + +} diff --git a/app/src/main/java/com/groupproject/Model/User.java b/app/src/main/java/com/groupproject/Model/User.java index d9055aa..da321c7 100644 --- a/app/src/main/java/com/groupproject/Model/User.java +++ b/app/src/main/java/com/groupproject/Model/User.java @@ -30,7 +30,7 @@ public class User extends DataManager { @Reference private List goingEvents; @Reference - private List interestedEvents; + private List interestedEvents;//TODO If interested cant be going and vice versa @Reference private Location location; @@ -61,6 +61,7 @@ public void save(){ persist(this); } + public void setLocation(Location location) { this.location = location; } From 468aca5143a1b78f4d02e77be4bd98e355138b0d Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 19:31:48 -0800 Subject: [PATCH 010/221] ignore is wrong --- .gitignore | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitignore b/.gitignore index ae1e264..ecb792e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,6 @@ *.iml -.gradle /local.properties /.idea/ -/.idea/libraries .DS_Store /build /captures @@ -11,5 +9,3 @@ .idea/copyright/profiles_settings.xml -build.gradle -gradle/wrapper/gradle-wrapper.properties From a48d7c2053e98d62b3fef1b4f5d11bf8b7dbd5f1 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 19:37:48 -0800 Subject: [PATCH 011/221] ignore is right --- .gitignore | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index ecb792e..c7ee965 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,9 @@ *.iml +.gradle /local.properties -/.idea/ +/.idea/workspace.xml +/.idea/libraries .DS_Store /build /captures -.externalNativeBuild -.idea/compiler.xml - -.idea/copyright/profiles_settings.xml - +.externalNativeBuild \ No newline at end of file From ff9e671d029525814a8742d84367bf054e641b38 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 19:38:57 -0800 Subject: [PATCH 012/221] ignore is right --- .gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index c7ee965..4db771a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,7 @@ *.iml .gradle /local.properties -/.idea/workspace.xml -/.idea/libraries +/.idea/ .DS_Store /build /captures From 709938ceeaae76d182f24ef00a8cfb51bb32e21a Mon Sep 17 00:00:00 2001 From: Hailey Pun Date: Sat, 11 Nov 2017 19:39:45 -0800 Subject: [PATCH 013/221] Added image buttons to group screen --- app/src/main/res/layout/fragment_groups.xml | 87 +++++++++++++++++++-- 1 file changed, 79 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/layout/fragment_groups.xml b/app/src/main/res/layout/fragment_groups.xml index eab3e94..2d863a4 100644 --- a/app/src/main/res/layout/fragment_groups.xml +++ b/app/src/main/res/layout/fragment_groups.xml @@ -1,4 +1,5 @@ - + android:layout_height="wrap_content"> - + + + + + + @@ -44,7 +79,7 @@ android:orientation="vertical"> - + android:layout_height="wrap_content"> + + + - + + + From 85ca74b1fb1a6597871d9059f9a6a848e49121a6 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 19:40:38 -0800 Subject: [PATCH 014/221] ignore is right --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 54c2af5..c3050fe 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,7 +24,7 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'org.mongodb:mongo-java-driver:3.5.0' +// compile 'org.mongodb:mongo-java-driver:3.5.0' compile 'org.mongodb.morphia:morphia:1.3.2' compile 'com.android.support:appcompat-v7:25.3.1' From 0013d9ec9499c89310a8dd65257568589f18672d Mon Sep 17 00:00:00 2001 From: Hailey Pun Date: Sat, 11 Nov 2017 19:53:10 -0800 Subject: [PATCH 015/221] update --- app/src/main/res/layout/fragment_groups.xml | 3 ++- app/src/main/res/values/colors.xml | 2 +- app/src/main/res/values/styles.xml | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/layout/fragment_groups.xml b/app/src/main/res/layout/fragment_groups.xml index 2d863a4..e29a8f3 100644 --- a/app/src/main/res/layout/fragment_groups.xml +++ b/app/src/main/res/layout/fragment_groups.xml @@ -9,7 +9,7 @@ tools:context="com.groupproject.Controller.GroupsFragment"> + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 60d1dfd..e211114 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,6 +2,6 @@ #3F51B5 #303F9F - #FF4081 + #3f9de2 #85b6da diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 789ba3b..427e927 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -4,7 +4,7 @@ From 8323c3ec467960d63958f069a25dc33b7e68b128 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 19:58:19 -0800 Subject: [PATCH 016/221] ignore is right --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index c3050fe..54c2af5 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,7 +24,7 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) -// compile 'org.mongodb:mongo-java-driver:3.5.0' + compile 'org.mongodb:mongo-java-driver:3.5.0' compile 'org.mongodb.morphia:morphia:1.3.2' compile 'com.android.support:appcompat-v7:25.3.1' From 72773a4ddd91f7e4aa93dce095279ea8e3d97b65 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sat, 11 Nov 2017 20:32:47 -0800 Subject: [PATCH 017/221] Finished basic db stuff --- .idea/modules.xml | 1 - app/build.gradle | 2 ++ .../groupproject/DataManager/DataBaseAPI.java | 21 ++++++++----------- .../com/groupproject/DataManager/test.java | 17 +++++++++------ .../java/com/groupproject/Model/Event.java | 13 ++++++------ .../{Activity.java => EventActivity.java} | 7 +++---- .../java/com/groupproject/Model/User.java | 7 +++---- build.gradle | 2 ++ 8 files changed, 36 insertions(+), 34 deletions(-) rename app/src/main/java/com/groupproject/Model/{Activity.java => EventActivity.java} (91%) diff --git a/.idea/modules.xml b/.idea/modules.xml index 037d78a..f0e21a1 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,7 +3,6 @@ - diff --git a/app/build.gradle b/app/build.gradle index 54c2af5..2c6936f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -27,6 +27,8 @@ dependencies { compile 'org.mongodb:mongo-java-driver:3.5.0' compile 'org.mongodb.morphia:morphia:1.3.2' +// classpath 'com.android.tools.build:gradle:3.0.0' + compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.facebook.android:facebook-android-sdk:[4,5)' diff --git a/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java b/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java index a3c08d0..003c244 100644 --- a/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java +++ b/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java @@ -1,31 +1,27 @@ package com.groupproject.DataManager; -import com.groupproject.Model.Activity; +import com.groupproject.Model.EventActivity; import com.groupproject.Model.Event; import com.groupproject.Model.User; import com.mongodb.MongoClient; -import com.mongodb.client.MongoCollection; +import com.mongodb.MongoClientURI; import com.mongodb.client.MongoDatabase; -import org.bson.Document; import org.mongodb.morphia.Datastore; import org.mongodb.morphia.Morphia; class DataBaseAPI { //TODO hide credentials - private static final String uri = "mongodb://admin:admin@cluster0-shard-00-00-x1fap.mongodb.net:27017," + + private static final String MOGOO_DB_URI = "mongodb://admin:admin@cluster0-shard-00-00-x1fap.mongodb.net:27017," + "cluster0-shard-00-01-x1fap.mongodb.net:27017," + "cluster0-shard-00-02-x1fap.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin"; private static DataBaseAPI dataBaseAPI = null; - private static MongoClient mongoClient; - private static MongoDatabase database; - private static MongoCollection collection; +// private static MongoCollection collection; private static Datastore datastore; - private static Morphia morphia; private DataBaseAPI() { @@ -39,11 +35,12 @@ static DataBaseAPI getInstance() { } private static void init() { - mongoClient = new MongoClient(uri); - database = mongoClient.getDatabase("Pinned"); + MongoClientURI uri = new MongoClientURI(MOGOO_DB_URI); + MongoClient mongoClient = new MongoClient(uri); + MongoDatabase database = mongoClient.getDatabase("Pinned"); // collection = database.getCollection("NewCollection"); - morphia = new Morphia(); - morphia.map(User.class, Activity.class, Event.class);//TODO Update with a method call + Morphia morphia = new Morphia(); + morphia.map(User.class, EventActivity.class, Event.class);//TODO Update with a method call datastore = morphia.createDatastore(mongoClient, database.getName()); } diff --git a/app/src/main/java/com/groupproject/DataManager/test.java b/app/src/main/java/com/groupproject/DataManager/test.java index 8b2c84f..6a7b3f1 100644 --- a/app/src/main/java/com/groupproject/DataManager/test.java +++ b/app/src/main/java/com/groupproject/DataManager/test.java @@ -1,6 +1,6 @@ package com.groupproject.DataManager; -import com.groupproject.Model.Activity; +import com.groupproject.Model.EventActivity; import com.groupproject.Model.Event; import com.groupproject.Model.User; @@ -12,15 +12,15 @@ public static void main(String[] args) { User user2 = new User("2", "2"); User user3 = new User("3", "3"); - Activity activity1 = new Activity("1", "1"); - Activity activity2 = new Activity("2", "2"); + EventActivity something1 = new EventActivity("1", "1"); + EventActivity something2 = new EventActivity("2", "2"); Event event1 = new Event("1", "1"); Event event2 = new Event("2", "2"); - activity1.getUsers().add(user1); - activity1.getUsers().add(user2); - activity2.getUsers().add(user1); + something1.getUsers().add(user1); + something1.getUsers().add(user2); + something2.getUsers().add(user1); event1.getGoing().add(user1); event1.getInterested().add(user2); @@ -30,6 +30,11 @@ public static void main(String[] args) { user2.save(); user3.save(); + something1.save(); + something2.save(); + + event1.save(); + event2.save(); } diff --git a/app/src/main/java/com/groupproject/Model/Event.java b/app/src/main/java/com/groupproject/Model/Event.java index bd0bb16..328c899 100644 --- a/app/src/main/java/com/groupproject/Model/Event.java +++ b/app/src/main/java/com/groupproject/Model/Event.java @@ -33,17 +33,16 @@ enum VISIBILITY { @Id private ObjectId id; - - private VISIBILITY visibility; - - @Reference - private Location location; @Reference private List going; @Reference private List interested; @Reference - private List relatedActivities; + private List relatedActivities; + + private Location location; + + private VISIBILITY visibility; private String name; private String description; @@ -100,7 +99,7 @@ public List getInterested() { return interested; } - public List getRelatedActivities() { + public List getRelatedActivities() { return relatedActivities; } } diff --git a/app/src/main/java/com/groupproject/Model/Activity.java b/app/src/main/java/com/groupproject/Model/EventActivity.java similarity index 91% rename from app/src/main/java/com/groupproject/Model/Activity.java rename to app/src/main/java/com/groupproject/Model/EventActivity.java index 10e43b4..2d1f1e7 100644 --- a/app/src/main/java/com/groupproject/Model/Activity.java +++ b/app/src/main/java/com/groupproject/Model/EventActivity.java @@ -20,11 +20,10 @@ @Index(value = "users", fields = @Field("users")), }) -public class Activity extends DataManager { +public class EventActivity extends DataManager { @Id private ObjectId id; - @Reference private List eventList; @Reference @@ -33,12 +32,12 @@ public class Activity extends DataManager { private String name; private String description; - public Activity() { + public EventActivity() { super(); init(); } - public Activity(String name, String description) { + public EventActivity(String name, String description) { super(); this.name = name; this.description = description; diff --git a/app/src/main/java/com/groupproject/Model/User.java b/app/src/main/java/com/groupproject/Model/User.java index da321c7..51a85e9 100644 --- a/app/src/main/java/com/groupproject/Model/User.java +++ b/app/src/main/java/com/groupproject/Model/User.java @@ -22,16 +22,15 @@ public class User extends DataManager { @Id private ObjectId id; - @Reference private List connection; @Reference - private List activities; + private List activities; @Reference private List goingEvents; @Reference private List interestedEvents;//TODO If interested cant be going and vice versa - @Reference + private Location location; private String userName; @@ -70,7 +69,7 @@ public List getConnection() { return connection; } - public List getActivities() { + public List getActivities() { return activities; } diff --git a/build.gradle b/build.gradle index e104ff6..39c80cf 100644 --- a/build.gradle +++ b/build.gradle @@ -4,6 +4,8 @@ buildscript { repositories { jcenter() mavenCentral() + google() + } dependencies { classpath 'com.android.tools.build:gradle:3.0.0' From b56bbb948d9add8adea72b05d3c6a514c5654212 Mon Sep 17 00:00:00 2001 From: Mattheo Date: Sat, 11 Nov 2017 21:08:34 -0800 Subject: [PATCH 018/221] Added button to map to enable dropping a pin --- app/build.gradle | 3 +++ .../groupproject/Controller/MapsFragment.java | 25 ++++++++++++++++++ .../res/drawable-hdpi/ic_add_black_24dp.png | Bin 0 -> 124 bytes .../res/drawable-mdpi/ic_add_black_24dp.png | Bin 0 -> 86 bytes .../res/drawable-xhdpi/ic_add_black_24dp.png | Bin 0 -> 108 bytes .../res/drawable-xxhdpi/ic_add_black_24dp.png | Bin 0 -> 114 bytes .../drawable-xxxhdpi/ic_add_black_24dp.png | Bin 0 -> 119 bytes app/src/main/res/layout/maps_fragment.xml | 8 ++++++ app/src/main/res/values/colors.xml | 1 + 9 files changed, 37 insertions(+) create mode 100644 app/src/main/res/drawable-hdpi/ic_add_black_24dp.png create mode 100644 app/src/main/res/drawable-mdpi/ic_add_black_24dp.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_add_black_24dp.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_add_black_24dp.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_add_black_24dp.png diff --git a/app/build.gradle b/app/build.gradle index 988415a..16a757b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -31,4 +31,7 @@ dependencies { compile 'com.google.android.gms:play-services-maps:11.0.4' compile 'com.android.support:design:25.3.1' testCompile 'junit:junit:4.12' + + compile 'org.mongodb:mongo-java-driver:3.5.0' + compile 'org.mongodb.morphia:morphia:1.3.2' } diff --git a/app/src/main/java/com/groupproject/Controller/MapsFragment.java b/app/src/main/java/com/groupproject/Controller/MapsFragment.java index 8391d56..71b5de2 100644 --- a/app/src/main/java/com/groupproject/Controller/MapsFragment.java +++ b/app/src/main/java/com/groupproject/Controller/MapsFragment.java @@ -1,19 +1,24 @@ package com.groupproject.Controller; import android.Manifest; +import android.content.Intent; import android.content.pm.PackageManager; import android.os.Bundle; import android.support.annotation.NonNull; +import android.support.design.widget.FloatingActionButton; import android.support.v4.app.ActivityCompat; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Toast; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapView; import com.google.android.gms.maps.MapsInitializer; import com.google.android.gms.maps.OnMapReadyCallback; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; import com.groupproject.R; @@ -59,6 +64,26 @@ public void onMapReady(GoogleMap mMap) { } }); + FloatingActionButton createEvent + = (FloatingActionButton) rootView.findViewById(R.id.create_event_fab); + createEvent.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Toast.makeText(getActivity(), "Tap to add a pin!", Toast.LENGTH_LONG).show(); + googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() { + @Override + public void onMapClick(LatLng point) { + MarkerOptions marker = new MarkerOptions().position( + new LatLng(point.latitude, point.longitude)).title(""); + googleMap.addMarker(marker); + googleMap.setOnMapClickListener(null); +// Intent intent = new Intent(getActivity(), AddEventScreen.class); +// startActivity(intent); + } + }); + } + }); + return rootView; } diff --git a/app/src/main/res/drawable-hdpi/ic_add_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_add_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..c04b523c482b77824608a836515e865579f8b00c GIT binary patch literal 124 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;v!{z=NCji^0d}{88U+a%3{LE) zc(W3I@VD?TX6u!5iTdQ+%zl7P_JBaSLWcds4UNy(0^e=DSmGkkBjwV6s9vOpiQ(Iw WlC8ByowtC-F?hQAxvX!J6N0?fLsPoS3j3^P6p=fS?83{ F1OO~S9V-9; literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_add_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_add_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..3cb10924a0912d9f64d338b9769da053bc051da6 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeK3?y%aJ*@^(YymzYu0R?HmZtAK52P4Ng8YIR z9G=}s19Id&T^vIy7?T^C0uTIeOgX2~{@-4rW`SaRO?zLF8zVzTLHf)E76O$Z{hqFV JF6*2UngE2qAnO1C literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/maps_fragment.xml b/app/src/main/res/layout/maps_fragment.xml index 0b770d8..597eb5c 100644 --- a/app/src/main/res/layout/maps_fragment.xml +++ b/app/src/main/res/layout/maps_fragment.xml @@ -8,4 +8,12 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 3ab3e9c..da143fd 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,4 +3,5 @@ #3F51B5 #303F9F #FF4081 + #CD0000 From cd96c17b5cc539522a4a71cdad6e6ca7caab07f1 Mon Sep 17 00:00:00 2001 From: Hailey Pun Date: Sun, 12 Nov 2017 12:07:11 -0800 Subject: [PATCH 019/221] Edited and changed class name --- .../Controller/{AddEventScreen.java => AddEventView.java} | 2 +- app/src/main/res/layout/create_event.xml | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) rename app/src/main/java/com/groupproject/Controller/{AddEventScreen.java => AddEventView.java} (98%) diff --git a/app/src/main/java/com/groupproject/Controller/AddEventScreen.java b/app/src/main/java/com/groupproject/Controller/AddEventView.java similarity index 98% rename from app/src/main/java/com/groupproject/Controller/AddEventScreen.java rename to app/src/main/java/com/groupproject/Controller/AddEventView.java index 5b17872..49f5efa 100644 --- a/app/src/main/java/com/groupproject/Controller/AddEventScreen.java +++ b/app/src/main/java/com/groupproject/Controller/AddEventView.java @@ -14,7 +14,7 @@ * Created by haileypun on 31/10/2017. */ -public class AddEventScreen extends AppCompatActivity { +public class AddEventView extends AppCompatActivity { ArrayList years = new ArrayList<>(); ArrayList days = new ArrayList<>(); diff --git a/app/src/main/res/layout/create_event.xml b/app/src/main/res/layout/create_event.xml index 9e9b6d4..07c867a 100644 --- a/app/src/main/res/layout/create_event.xml +++ b/app/src/main/res/layout/create_event.xml @@ -25,8 +25,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentBottom="true" - android:layout_alignParentEnd="true" - android:layout_alignParentStart="true" android:orientation="vertical"> Date: Sun, 12 Nov 2017 13:02:37 -0800 Subject: [PATCH 020/221] Added public and private fragement --- .../Controller/GroupsFragment.java | 16 +- app/src/main/res/layout/fragment_groups.xml | 146 +++--------------- 2 files changed, 36 insertions(+), 126 deletions(-) diff --git a/app/src/main/java/com/groupproject/Controller/GroupsFragment.java b/app/src/main/java/com/groupproject/Controller/GroupsFragment.java index d59d9d3..f0a6452 100644 --- a/app/src/main/java/com/groupproject/Controller/GroupsFragment.java +++ b/app/src/main/java/com/groupproject/Controller/GroupsFragment.java @@ -2,6 +2,7 @@ import android.os.Bundle; import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -12,6 +13,19 @@ public class GroupsFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - return inflater.inflate(R.layout.fragment_groups, container, false); + + View rootView = inflater.inflate(R.layout.fragment_groups, container, false); + + PublicFragment publicFragment = new PublicFragment(); + FragmentManager fragmentManager = getFragmentManager(); + fragmentManager.beginTransaction() + .add(R.id.public_frag, publicFragment).commit(); + + PrivateFragment privateFragment = new PrivateFragment(); + FragmentManager manager= getFragmentManager(); + manager.beginTransaction() + .add(R.id.private_frag, privateFragment).commit(); + + return rootView; } } diff --git a/app/src/main/res/layout/fragment_groups.xml b/app/src/main/res/layout/fragment_groups.xml index e29a8f3..ed86e3e 100644 --- a/app/src/main/res/layout/fragment_groups.xml +++ b/app/src/main/res/layout/fragment_groups.xml @@ -1,137 +1,33 @@ - + + android:layout_height="match_parent" + tools:layout_editor_absoluteY="81dp"> + android:orientation="vertical" + app:layout_constraintBottom_toTopOf="@+id/private_frag" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:orientation="vertical" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/public_frag" /> - - + From 9f6cb79cf3428c49d1b2ffbe5ce7c584e95a0342 Mon Sep 17 00:00:00 2001 From: Hailey Pun Date: Sun, 12 Nov 2017 13:04:30 -0800 Subject: [PATCH 021/221] Added public and private fragement --- .../Controller/PrivateFragment.java | 23 ++++++ .../Controller/PublicFragment.java | 23 ++++++ app/src/main/res/drawable/pinnedbutton.png | Bin 0 -> 4585 bytes app/src/main/res/drawable/pinnedlogo.png | Bin 0 -> 5431 bytes app/src/main/res/layout/private_fragment.xml | 68 ++++++++++++++++++ app/src/main/res/layout/public_fragment.xml | 65 +++++++++++++++++ 6 files changed, 179 insertions(+) create mode 100644 app/src/main/java/com/groupproject/Controller/PrivateFragment.java create mode 100644 app/src/main/java/com/groupproject/Controller/PublicFragment.java create mode 100644 app/src/main/res/drawable/pinnedbutton.png create mode 100644 app/src/main/res/drawable/pinnedlogo.png create mode 100644 app/src/main/res/layout/private_fragment.xml create mode 100644 app/src/main/res/layout/public_fragment.xml diff --git a/app/src/main/java/com/groupproject/Controller/PrivateFragment.java b/app/src/main/java/com/groupproject/Controller/PrivateFragment.java new file mode 100644 index 0000000..ac61365 --- /dev/null +++ b/app/src/main/java/com/groupproject/Controller/PrivateFragment.java @@ -0,0 +1,23 @@ +package com.groupproject.Controller; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.groupproject.R; + +/** + * Created by haileypun on 12/11/2017. + */ + +public class PrivateFragment extends Fragment { + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + return inflater.inflate(R.layout.private_fragment, container, false); + } + +} diff --git a/app/src/main/java/com/groupproject/Controller/PublicFragment.java b/app/src/main/java/com/groupproject/Controller/PublicFragment.java new file mode 100644 index 0000000..03f23ab --- /dev/null +++ b/app/src/main/java/com/groupproject/Controller/PublicFragment.java @@ -0,0 +1,23 @@ +package com.groupproject.Controller; + +import android.os.Bundle; +import android.support.v4.app.Fragment; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import com.groupproject.R; + +/** + * Created by haileypun on 12/11/2017. + */ + +public class PublicFragment extends Fragment { + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + return inflater.inflate(R.layout.public_fragment, container, false); + } + +} diff --git a/app/src/main/res/drawable/pinnedbutton.png b/app/src/main/res/drawable/pinnedbutton.png new file mode 100644 index 0000000000000000000000000000000000000000..2181cb776c502a38d3ac84ff5f2123cff92f09e8 GIT binary patch literal 4585 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 TR(Up~00000NkvXXu0mjfbm)2F literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/pinnedlogo.png b/app/src/main/res/drawable/pinnedlogo.png new file mode 100644 index 0000000000000000000000000000000000000000..74080df44d268a7e846896f6bd28055d6cf0a27c GIT binary patch literal 5431 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 + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/public_fragment.xml b/app/src/main/res/layout/public_fragment.xml new file mode 100644 index 0000000..6606ed6 --- /dev/null +++ b/app/src/main/res/layout/public_fragment.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file From e749488cbe9c91bea8a93dc987b52d1290a11c99 Mon Sep 17 00:00:00 2001 From: hwhh Date: Sun, 12 Nov 2017 16:02:05 -0800 Subject: [PATCH 022/221] Changing mongo interaction --- .../groupproject/Controller/LoginActivity.java | 3 +++ .../java/com/groupproject/DataManager/test.java | 6 +++--- .../main/java/com/groupproject/Model/User.java | 5 +++-- app/src/main/java/com/groupproject/User.java | 17 ----------------- 4 files changed, 9 insertions(+), 22 deletions(-) delete mode 100644 app/src/main/java/com/groupproject/User.java diff --git a/app/src/main/java/com/groupproject/Controller/LoginActivity.java b/app/src/main/java/com/groupproject/Controller/LoginActivity.java index 6f0c04f..9d7e494 100644 --- a/app/src/main/java/com/groupproject/Controller/LoginActivity.java +++ b/app/src/main/java/com/groupproject/Controller/LoginActivity.java @@ -15,6 +15,7 @@ import com.facebook.login.LoginManager; import com.facebook.login.LoginResult; import com.groupproject.R; +import com.groupproject.Model.User; import org.json.JSONException; import org.json.JSONObject; @@ -50,6 +51,8 @@ public void onCompleted(JSONObject object, GraphResponse response) { for (int i = 0; i < dataToRetrieve.length; i++) { data[i] = object.getString(dataToRetrieve[i]); } +// User user = new User(data[2]); +// user.save(); //TODO: HENRY create user on db based on above data } catch (JSONException e) { e.printStackTrace(); diff --git a/app/src/main/java/com/groupproject/DataManager/test.java b/app/src/main/java/com/groupproject/DataManager/test.java index 6a7b3f1..5bbe986 100644 --- a/app/src/main/java/com/groupproject/DataManager/test.java +++ b/app/src/main/java/com/groupproject/DataManager/test.java @@ -8,9 +8,9 @@ public class test { public static void main(String[] args) { - User user1 = new User("1", "1"); - User user2 = new User("2", "2"); - User user3 = new User("3", "3"); + User user1 = new User("1"); + User user2 = new User("2"); + User user3 = new User("3"); EventActivity something1 = new EventActivity("1", "1"); EventActivity something2 = new EventActivity("2", "2"); diff --git a/app/src/main/java/com/groupproject/Model/User.java b/app/src/main/java/com/groupproject/Model/User.java index 51a85e9..106c1ba 100644 --- a/app/src/main/java/com/groupproject/Model/User.java +++ b/app/src/main/java/com/groupproject/Model/User.java @@ -1,5 +1,7 @@ package com.groupproject.Model; +import android.support.annotation.Nullable; + import com.groupproject.DataManager.DataManager; import org.bson.types.ObjectId; @@ -42,10 +44,9 @@ public User() { init(); } - public User(String userName, String password) { + public User(String userName) { super(); this.userName = userName; - this.password = password; init(); } diff --git a/app/src/main/java/com/groupproject/User.java b/app/src/main/java/com/groupproject/User.java deleted file mode 100644 index 3721fe1..0000000 --- a/app/src/main/java/com/groupproject/User.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.groupproject; - - -public class User { - - private String id; - private String first_name; - private String last_name; - private String email; - - public User(String id, String first_name, String last_name, String email) { - this.id = id; - this.first_name = first_name; - this.last_name = last_name; - this.email = email; - } -} From 5a3ac5fe3cfcb793302f28617fb46b65d272ea95 Mon Sep 17 00:00:00 2001 From: Hailey Pun Date: Sun, 12 Nov 2017 21:15:44 -0800 Subject: [PATCH 023/221] Working on horizontal scroll view --- app/build.gradle | 2 + .../Controller/PrivateFragment.java | 4 +- .../Controller/PublicFragment.java | 21 ++++++++- app/src/main/res/layout/fragment_groups.xml | 2 - app/src/main/res/layout/private_fragment.xml | 43 ++----------------- app/src/main/res/layout/public_fragment.xml | 41 ++---------------- 6 files changed, 31 insertions(+), 82 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 988415a..ee1bc21 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -24,6 +24,8 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) + compile 'com.android.support:recyclerview-v7:25.3.1' + compile 'com.android.support:cardview-v7:25.3.1' compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.facebook.android:facebook-android-sdk:[4,5)' diff --git a/app/src/main/java/com/groupproject/Controller/PrivateFragment.java b/app/src/main/java/com/groupproject/Controller/PrivateFragment.java index ac61365..e579d87 100644 --- a/app/src/main/java/com/groupproject/Controller/PrivateFragment.java +++ b/app/src/main/java/com/groupproject/Controller/PrivateFragment.java @@ -17,7 +17,9 @@ public class PrivateFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - return inflater.inflate(R.layout.private_fragment, container, false); + View rootView = inflater.inflate(R.layout.private_fragment, container, false); + + return rootView; } } diff --git a/app/src/main/java/com/groupproject/Controller/PublicFragment.java b/app/src/main/java/com/groupproject/Controller/PublicFragment.java index 03f23ab..6aef0c6 100644 --- a/app/src/main/java/com/groupproject/Controller/PublicFragment.java +++ b/app/src/main/java/com/groupproject/Controller/PublicFragment.java @@ -2,6 +2,8 @@ import android.os.Bundle; import android.support.v4.app.Fragment; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -14,10 +16,27 @@ public class PublicFragment extends Fragment { + RecyclerView mRecyclerView; + RecyclerView.LayoutManager mLayoutManager; + RecyclerView.Adapter mAdapter; + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - return inflater.inflate(R.layout.public_fragment, container, false); + + View rootView = inflater.inflate(R.layout.public_fragment, container, false); + + // Calling the RecyclerView + mRecyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view); + mRecyclerView.setHasFixedSize(true); + + // The number of Columns + mLayoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false); + mRecyclerView.setLayoutManager(mLayoutManager); + +// mAdapter = new HLVAdapter(MainActivity.this, alName, alImage); +// mRecyclerView.setAdapter(mAdapter); + return rootView; } } diff --git a/app/src/main/res/layout/fragment_groups.xml b/app/src/main/res/layout/fragment_groups.xml index ed86e3e..55b9c96 100644 --- a/app/src/main/res/layout/fragment_groups.xml +++ b/app/src/main/res/layout/fragment_groups.xml @@ -11,7 +11,6 @@ android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1" - android:background="#85b6da" android:orientation="vertical" app:layout_constraintBottom_toTopOf="@+id/private_frag" app:layout_constraintEnd_toEndOf="parent" @@ -23,7 +22,6 @@ android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1" - android:background="#ffffff" android:orientation="vertical" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/private_fragment.xml b/app/src/main/res/layout/private_fragment.xml index 6538352..460b902 100644 --- a/app/src/main/res/layout/private_fragment.xml +++ b/app/src/main/res/layout/private_fragment.xml @@ -22,47 +22,10 @@ android:textColor="#85b6da"/> - - - - - - - - - - + android:layout_height="match_parent" /> \ No newline at end of file diff --git a/app/src/main/res/layout/public_fragment.xml b/app/src/main/res/layout/public_fragment.xml index 6606ed6..140af44 100644 --- a/app/src/main/res/layout/public_fragment.xml +++ b/app/src/main/res/layout/public_fragment.xml @@ -21,45 +21,10 @@ android:textSize="30sp" android:textColor="#ffffff"/> - - - - - - - + android:layout_height="match_parent" /> - \ No newline at end of file From 79c918bfe8b9e096bddeb20d58e49a9a10cb896c Mon Sep 17 00:00:00 2001 From: Hailey Pun Date: Sun, 12 Nov 2017 21:16:09 -0800 Subject: [PATCH 024/221] Working on horizontal scroll view --- .../com/groupproject/Controller/Event.java | 54 ++++++++++++ .../Controller/HorizontalListViewAdapter.java | 86 +++++++++++++++++++ .../Controller/ItemClickListener.java | 11 +++ app/src/main/res/layout/event_list.xml | 31 +++++++ 4 files changed, 182 insertions(+) create mode 100644 app/src/main/java/com/groupproject/Controller/Event.java create mode 100644 app/src/main/java/com/groupproject/Controller/HorizontalListViewAdapter.java create mode 100644 app/src/main/java/com/groupproject/Controller/ItemClickListener.java create mode 100644 app/src/main/res/layout/event_list.xml diff --git a/app/src/main/java/com/groupproject/Controller/Event.java b/app/src/main/java/com/groupproject/Controller/Event.java new file mode 100644 index 0000000..0ee2ed5 --- /dev/null +++ b/app/src/main/java/com/groupproject/Controller/Event.java @@ -0,0 +1,54 @@ +package com.groupproject.Controller; + +/** + * Created by haileypun on 12/11/2017. + */ + +public class Event { + + private String eventName; + private String eventDate; + private String eventTime; + private String eventLocation; + + public Event(String eventName, String eventDate, String eventTime, String eventLocation) { + + this.eventName = eventName; + this.eventDate = eventDate; + this.eventTime = eventTime; + this.eventLocation = eventLocation; + + } + + public void setEventName(String eventName) { + this.eventName = eventName; + } + + public void setEventDate(String eventDate) { + this.eventDate = eventDate; + } + + public void setEventTime(String eventTime) { + this.eventTime = eventTime; + } + + public void setEventLocation(String eventLocation) { + this.eventLocation = eventLocation; + } + + public String getEventName() { + return eventName; + } + + public String getEventDate() { + return eventDate; + } + + public String getEventTime() { + return eventTime; + } + + public String getEventLocation() { + return eventLocation; + } +} diff --git a/app/src/main/java/com/groupproject/Controller/HorizontalListViewAdapter.java b/app/src/main/java/com/groupproject/Controller/HorizontalListViewAdapter.java new file mode 100644 index 0000000..430e61d --- /dev/null +++ b/app/src/main/java/com/groupproject/Controller/HorizontalListViewAdapter.java @@ -0,0 +1,86 @@ +package com.groupproject.Controller; + +import android.content.Context; +import android.content.Intent; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageButton; +import android.widget.Toast; + +import com.groupproject.R; + +/** + * Created by haileypun on 12/11/2017. + */ + +public class HorizontalListViewAdapter extends RecyclerView.Adapter { + + Context context; + + public HorizontalListViewAdapter(Context context){ + super(); + this.context = context; + } + + @Override + public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { + View v = LayoutInflater.from(viewGroup.getContext()) + .inflate(R.layout.event_list, viewGroup, false); + ViewHolder viewHolder = new ViewHolder(v); + return viewHolder; + } + + @Override + public void onBindViewHolder(ViewHolder viewHolder, int i) { +// viewHolder.tvSpecies.setText(alName.get(i)); +// viewHolder.imgThumbnail.setImageResource(alImage.get(i)); + +// viewHolder.setClickListener(new ItemClickListener() { +// @Override +// public void onClick(View view, int position, boolean isLongClick) { +// if (isLongClick) { +// Toast.makeText(context, "#" + position + " - " + alName.get(position) + " (Long click)", Toast.LENGTH_SHORT).show(); +// context.startActivity(new Intent(context, MainActivity.class)); +// } else { +// Toast.makeText(context, "#" + position + " - " + alName.get(position), Toast.LENGTH_SHORT).show(); +// } +// } +// }); + } + + @Override + public int getItemCount() { + return 0; + } + + public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener { + + public ImageButton imageButton; + private ItemClickListener clickListener; + + public ViewHolder(View itemView) { + super(itemView); + imageButton = (ImageButton)itemView.findViewById(R.id.imageButton); + itemView.setOnClickListener(this); + itemView.setOnLongClickListener(this); + } + + public void setClickListener(ItemClickListener itemClickListener) { + this.clickListener = itemClickListener; + } + + @Override + public void onClick(View view) { + clickListener.onClick(view, getPosition(), false); + } + + @Override + public boolean onLongClick(View view) { + clickListener.onClick(view, getPosition(), true); + return true; + } + } + +} diff --git a/app/src/main/java/com/groupproject/Controller/ItemClickListener.java b/app/src/main/java/com/groupproject/Controller/ItemClickListener.java new file mode 100644 index 0000000..8556017 --- /dev/null +++ b/app/src/main/java/com/groupproject/Controller/ItemClickListener.java @@ -0,0 +1,11 @@ +package com.groupproject.Controller; + +/** + * Created by haileypun on 12/11/2017. + */ +import android.view.View; + +public interface ItemClickListener { + + void onClick(View view, int position, boolean isLongClick); +} \ No newline at end of file diff --git a/app/src/main/res/layout/event_list.xml b/app/src/main/res/layout/event_list.xml new file mode 100644 index 0000000..14cd361 --- /dev/null +++ b/app/src/main/res/layout/event_list.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file From 740ab83ae54a11edd2e56cb683473f696466455e Mon Sep 17 00:00:00 2001 From: hwhh Date: Sun, 12 Nov 2017 23:22:52 -0800 Subject: [PATCH 025/221] Adding the DB auth --- .../DataBaseAPI.java | 0 .../DataManager.java | 0 .../DataManager => DEPRECATED}/test.java | 0 app/build.gradle | 7 +- app/google-services.json | 55 +++++ app/src/main/AndroidManifest.xml | 4 +- .../Authentication/EmailSignInActivity.java | 196 ++++++++++++++++++ .../FacebookAuthentication.java} | 9 +- .../Controller/SplashActivity.java | 3 +- .../java/com/groupproject/Model/Event.java | 31 +-- .../com/groupproject/Model/EventActivity.java | 27 +-- .../java/com/groupproject/Model/User.java | 28 +-- app/src/main/res/layout/email_sign_in.xml | 127 ++++++++++++ ...ctivity_login.xml => facebook_sign_in.xml} | 2 +- app/src/main/res/values/dimens.xml | 10 + app/src/main/res/values/ids.xml | 16 ++ app/src/main/res/values/strings.xml | 84 +++++++- app/src/main/res/values/styles.xml | 39 ++++ build.gradle | 1 + 19 files changed, 551 insertions(+), 88 deletions(-) rename {app/src/main/java/com/groupproject/DataManager => DEPRECATED}/DataBaseAPI.java (100%) rename {app/src/main/java/com/groupproject/DataManager => DEPRECATED}/DataManager.java (100%) rename {app/src/main/java/com/groupproject/DataManager => DEPRECATED}/test.java (100%) create mode 100644 app/google-services.json create mode 100644 app/src/main/java/com/groupproject/Authentication/EmailSignInActivity.java rename app/src/main/java/com/groupproject/{Controller/LoginActivity.java => Authentication/FacebookAuthentication.java} (94%) create mode 100644 app/src/main/res/layout/email_sign_in.xml rename app/src/main/res/layout/{activity_login.xml => facebook_sign_in.xml} (90%) create mode 100644 app/src/main/res/values/dimens.xml create mode 100644 app/src/main/res/values/ids.xml diff --git a/app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java b/DEPRECATED/DataBaseAPI.java similarity index 100% rename from app/src/main/java/com/groupproject/DataManager/DataBaseAPI.java rename to DEPRECATED/DataBaseAPI.java diff --git a/app/src/main/java/com/groupproject/DataManager/DataManager.java b/DEPRECATED/DataManager.java similarity index 100% rename from app/src/main/java/com/groupproject/DataManager/DataManager.java rename to DEPRECATED/DataManager.java diff --git a/app/src/main/java/com/groupproject/DataManager/test.java b/DEPRECATED/test.java similarity index 100% rename from app/src/main/java/com/groupproject/DataManager/test.java rename to DEPRECATED/test.java diff --git a/app/build.gradle b/app/build.gradle index 2c6936f..d02bbb8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,14 +20,12 @@ android { } dependencies { + implementation 'com.google.firebase:firebase-auth:11.0.4' compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'org.mongodb:mongo-java-driver:3.5.0' - compile 'org.mongodb.morphia:morphia:1.3.2' -// classpath 'com.android.tools.build:gradle:3.0.0' compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' @@ -37,3 +35,6 @@ dependencies { compile 'com.android.support:design:25.3.1' testCompile 'junit:junit:4.12' } + + +apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json new file mode 100644 index 0000000..24c3ade --- /dev/null +++ b/app/google-services.json @@ -0,0 +1,55 @@ +{ + "project_info": { + "project_number": "942324893888", + "firebase_url": "https://cmps121groupproject.firebaseio.com", + "project_id": "cmps121groupproject", + "storage_bucket": "cmps121groupproject.appspot.com" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:942324893888:android:7eae2e78f97fb57c", + "android_client_info": { + "package_name": "com.groupproject" + } + }, + "oauth_client": [ + { + "client_id": "942324893888-eqh6lrn11gniur1e2g1oglbnqjflsuj7.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.groupproject", + "certificate_hash": "ede084a57df325def457472f38c36a5b0251d13a" + } + }, + { + "client_id": "942324893888-ib2l5s9342h42ro4fi94p5mbede9ad3u.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyDHwJBHBG6IXKGF3htdR01x3YS32JG-w88" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 2, + "other_platform_oauth_client": [ + { + "client_id": "942324893888-ib2l5s9342h42ro4fi94p5mbede9ad3u.apps.googleusercontent.com", + "client_type": 3 + } + ] + }, + "ads_service": { + "status": 2 + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ac3cef6..791c3e3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -39,12 +39,12 @@ () { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + // Sign in success, update UI with the signed-in user's information + Log.d(TAG, "createUserWithEmail:success"); + FirebaseUser user = mAuth.getCurrentUser(); + updateUI(user); + } else { + // If sign in fails, display a message to the user. + Log.w(TAG, "createUserWithEmail:failure", task.getException()); + Toast.makeText(EmailSignInActivity.this, "Authentication failed.", + Toast.LENGTH_SHORT).show(); + updateUI(null); + } + + + } + }); + } + + + public void signIn(String email, String password) { + mAuth.signInWithEmailAndPassword(email, password) + .addOnCompleteListener(this, new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + if (task.isSuccessful()) { + // Sign in success, update UI with the signed-in user's information + Log.d(TAG, "signInWithEmail:success"); + FirebaseUser user = mAuth.getCurrentUser(); + updateUI(user); + } else { + // If sign in fails, display a message to the user. + Log.w(TAG, "signInWithEmail:failure", task.getException()); + Toast.makeText(EmailSignInActivity.this, "Authentication failed.", + Toast.LENGTH_SHORT).show(); + updateUI(null); + } + } + }); + } + + private void sendEmailVerification() { + findViewById(R.id.verify_email_button).setEnabled(false); + final FirebaseUser user = mAuth.getCurrentUser(); + user.sendEmailVerification() + .addOnCompleteListener(this, new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + findViewById(R.id.verify_email_button).setEnabled(true); + + if (task.isSuccessful()) { + Toast.makeText(EmailSignInActivity.this, + "Verification email sent to " + user.getEmail(), + Toast.LENGTH_SHORT).show(); + } else { + Log.e(TAG, "sendEmailVerification", task.getException()); + Toast.makeText(EmailSignInActivity.this, + "Failed to send verification email.", + Toast.LENGTH_SHORT).show(); + } + } + }); + } + + + private boolean validateForm() { + boolean valid = true; + + String email = mEmailField.getText().toString(); + if (TextUtils.isEmpty(email)) { + mEmailField.setError("Required."); + valid = false; + } else { + mEmailField.setError(null); + } + + String password = mPasswordField.getText().toString(); + if (TextUtils.isEmpty(password)) { + mPasswordField.setError("Required."); + valid = false; + } else { + mPasswordField.setError(null); + } + + return valid; + } + + private void signOut() { + mAuth.signOut(); + updateUI(null); + } + + private void updateUI(FirebaseUser user) { +// hideProgressDialog(); + if (user != null) { + mStatusTextView.setText(getString(R.string.emailpassword_status_fmt, + user.getEmail(), user.isEmailVerified())); + mDetailTextView.setText(getString(R.string.firebase_status_fmt, user.getUid())); + + findViewById(R.id.email_password_buttons).setVisibility(View.GONE); + findViewById(R.id.email_password_fields).setVisibility(View.GONE); + findViewById(R.id.signed_in_buttons).setVisibility(View.VISIBLE); + + findViewById(R.id.verify_email_button).setEnabled(!user.isEmailVerified()); + } else { + mStatusTextView.setText(R.string.signed_out); + mDetailTextView.setText(null); + + findViewById(R.id.email_password_buttons).setVisibility(View.VISIBLE); + findViewById(R.id.email_password_fields).setVisibility(View.VISIBLE); + findViewById(R.id.signed_in_buttons).setVisibility(View.GONE); + } + } + + @Override + public void onClick(View v) { + int i = v.getId(); + if (i == R.id.email_create_account_button) { + createAccount(mEmailField.getText().toString(), mPasswordField.getText().toString()); + } else if (i == R.id.email_sign_in_button) { + signIn(mEmailField.getText().toString(), mPasswordField.getText().toString()); + } else if (i == R.id.sign_out_button) { + signOut(); + } else if (i == R.id.verify_email_button) { + sendEmailVerification(); + } + } + + +} diff --git a/app/src/main/java/com/groupproject/Controller/LoginActivity.java b/app/src/main/java/com/groupproject/Authentication/FacebookAuthentication.java similarity index 94% rename from app/src/main/java/com/groupproject/Controller/LoginActivity.java rename to app/src/main/java/com/groupproject/Authentication/FacebookAuthentication.java index 9d7e494..5578cb7 100644 --- a/app/src/main/java/com/groupproject/Controller/LoginActivity.java +++ b/app/src/main/java/com/groupproject/Authentication/FacebookAuthentication.java @@ -1,4 +1,4 @@ -package com.groupproject.Controller; +package com.groupproject.Authentication; import android.app.Activity; import android.content.Intent; @@ -8,21 +8,20 @@ import com.facebook.CallbackManager; import com.facebook.FacebookCallback; import com.facebook.FacebookException; -import com.facebook.FacebookSdk; import com.facebook.GraphRequest; import com.facebook.GraphResponse; import com.facebook.appevents.AppEventsLogger; import com.facebook.login.LoginManager; import com.facebook.login.LoginResult; +import com.groupproject.Controller.MainActivity; import com.groupproject.R; -import com.groupproject.Model.User; import org.json.JSONException; import org.json.JSONObject; import java.util.Arrays; -public class LoginActivity extends Activity { +public class FacebookAuthentication extends Activity { CallbackManager callbackManager; @@ -30,7 +29,7 @@ public class LoginActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AppEventsLogger.activateApp(getApplication()); - setContentView(R.layout.activity_login); + setContentView(R.layout.facebook_sign_in); callbackManager = CallbackManager.Factory.create(); LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback() { diff --git a/app/src/main/java/com/groupproject/Controller/SplashActivity.java b/app/src/main/java/com/groupproject/Controller/SplashActivity.java index ec894c8..d096c50 100644 --- a/app/src/main/java/com/groupproject/Controller/SplashActivity.java +++ b/app/src/main/java/com/groupproject/Controller/SplashActivity.java @@ -5,6 +5,7 @@ import android.support.v7.app.AppCompatActivity; import com.facebook.AccessToken; +import com.groupproject.Authentication.FacebookAuthentication; public class SplashActivity extends AppCompatActivity { @@ -14,7 +15,7 @@ protected void onCreate(Bundle savedInstanceState) { AccessToken accessToken = AccessToken.getCurrentAccessToken(); Intent intent; if (accessToken == null) { - intent = new Intent(this, LoginActivity.class); + intent = new Intent(this, FacebookAuthentication.class); } else { intent = new Intent(this, MainActivity.class); } diff --git a/app/src/main/java/com/groupproject/Model/Event.java b/app/src/main/java/com/groupproject/Model/Event.java index 328c899..1a52175 100644 --- a/app/src/main/java/com/groupproject/Model/Event.java +++ b/app/src/main/java/com/groupproject/Model/Event.java @@ -1,29 +1,13 @@ package com.groupproject.Model; -import com.groupproject.DataManager.DataManager; - -import org.bson.types.ObjectId; -import org.mongodb.morphia.annotations.Entity; -import org.mongodb.morphia.annotations.Field; -import org.mongodb.morphia.annotations.Id; -import org.mongodb.morphia.annotations.Index; -import org.mongodb.morphia.annotations.Indexes; -import org.mongodb.morphia.annotations.Reference; import java.util.ArrayList; import java.util.List; -@Entity -@Indexes({ - @Index(value = "location", fields = @Field("location")), - @Index(value = "visibility", fields = @Field("visibility")), - @Index(value = "going", fields = @Field("going")), - @Index(value = "interested", fields = @Field("interested")), - @Index(value = "relatedActivities", fields = @Field("relatedActivities")), -}) -public class Event extends DataManager { + +public class Event { enum VISIBILITY { INVITE_ONLY, @@ -31,13 +15,10 @@ enum VISIBILITY { PUBLIC } - @Id - private ObjectId id; - @Reference + + private List going; - @Reference private List interested; - @Reference private List relatedActivities; private Location location; @@ -49,12 +30,10 @@ enum VISIBILITY { public Event() { - super(); init(); } public Event(String name, String description) { - super(); this.name = name; this.description = description; init(); @@ -68,7 +47,7 @@ private void init(){ } public void save(){ - persist(this); + } public void setVisibility(VISIBILITY visibility) { diff --git a/app/src/main/java/com/groupproject/Model/EventActivity.java b/app/src/main/java/com/groupproject/Model/EventActivity.java index 2d1f1e7..84a40fa 100644 --- a/app/src/main/java/com/groupproject/Model/EventActivity.java +++ b/app/src/main/java/com/groupproject/Model/EventActivity.java @@ -1,44 +1,25 @@ package com.groupproject.Model; -import com.groupproject.DataManager.DataManager; - -import org.bson.types.ObjectId; -import org.mongodb.morphia.annotations.Entity; -import org.mongodb.morphia.annotations.Field; -import org.mongodb.morphia.annotations.Id; -import org.mongodb.morphia.annotations.Index; -import org.mongodb.morphia.annotations.Indexes; -import org.mongodb.morphia.annotations.Reference; - import java.util.ArrayList; import java.util.List; -@Entity -@Indexes({ - @Index(value = "eventList", fields = @Field("eventList")), - @Index(value = "users", fields = @Field("users")), -}) -public class EventActivity extends DataManager { - @Id - private ObjectId id; - @Reference +public class EventActivity { + + private List eventList; - @Reference private List users; private String name; private String description; public EventActivity() { - super(); init(); } public EventActivity(String name, String description) { - super(); this.name = name; this.description = description; init(); @@ -51,7 +32,7 @@ private void init(){ public void save(){ - persist(this); + } public void setName(String name) { diff --git a/app/src/main/java/com/groupproject/Model/User.java b/app/src/main/java/com/groupproject/Model/User.java index 106c1ba..48dbd81 100644 --- a/app/src/main/java/com/groupproject/Model/User.java +++ b/app/src/main/java/com/groupproject/Model/User.java @@ -1,36 +1,16 @@ package com.groupproject.Model; -import android.support.annotation.Nullable; - -import com.groupproject.DataManager.DataManager; - -import org.bson.types.ObjectId; -import org.mongodb.morphia.annotations.Entity; -import org.mongodb.morphia.annotations.Field; -import org.mongodb.morphia.annotations.Id; -import org.mongodb.morphia.annotations.Index; -import org.mongodb.morphia.annotations.Indexes; -import org.mongodb.morphia.annotations.Reference; import java.util.ArrayList; import java.util.List; -@Entity -@Indexes({ - @Index(value = "location", fields = @Field("location")) -}) +public class User { -public class User extends DataManager { - @Id - private ObjectId id; - @Reference private List connection; - @Reference + private List activities; - @Reference private List goingEvents; - @Reference private List interestedEvents;//TODO If interested cant be going and vice versa private Location location; @@ -40,12 +20,10 @@ public class User extends DataManager { public User() { - super(); init(); } public User(String userName) { - super(); this.userName = userName; init(); } @@ -58,7 +36,7 @@ private void init(){ } public void save(){ - persist(this); + } diff --git a/app/src/main/res/layout/email_sign_in.xml b/app/src/main/res/layout/email_sign_in.xml new file mode 100644 index 0000000..40042d9 --- /dev/null +++ b/app/src/main/res/layout/email_sign_in.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +