From c72cd8b6a72935df67e500f320a0ba3addc969ee Mon Sep 17 00:00:00 2001 From: Kaloyan <kd1u18@soton.ac.uk> Date: Sat, 23 Feb 2019 23:14:44 +0000 Subject: [PATCH] File organization --- GUI/MainActivity.java | 101 +++++++++++++++++++++++++++++++++++ functionality/Activity.java | 33 ++++++++++++ functionality/Complaint.java | 13 +++++ functionality/Event.java | 47 ++++++++++++++++ functionality/Group.java | 28 ++++++++++ functionality/User.java | 30 +++++++++++ 6 files changed, 252 insertions(+) create mode 100644 GUI/MainActivity.java create mode 100644 functionality/Activity.java create mode 100644 functionality/Complaint.java create mode 100644 functionality/Event.java create mode 100644 functionality/Group.java create mode 100644 functionality/User.java diff --git a/GUI/MainActivity.java b/GUI/MainActivity.java new file mode 100644 index 0000000..e5de3c4 --- /dev/null +++ b/GUI/MainActivity.java @@ -0,0 +1,101 @@ +package com.example.uni_study; + +import android.os.Bundle; +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.view.View; +import android.support.design.widget.NavigationView; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBarDrawerToggle; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; +import android.view.Menu; +import android.view.MenuItem; + +public class MainActivity extends AppCompatActivity + implements NavigationView.OnNavigationItemSelectedListener { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + }); + + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( + this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); + drawer.addDrawerListener(toggle); + toggle.syncState(); + + NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); + navigationView.setNavigationItemSelectedListener(this); + } + + @Override + public void onBackPressed() { + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + if (drawer.isDrawerOpen(GravityCompat.START)) { + drawer.closeDrawer(GravityCompat.START); + } else { + super.onBackPressed(); + } + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + @SuppressWarnings("StatementWithEmptyBody") + @Override + public boolean onNavigationItemSelected(MenuItem item) { + // Handle navigation view item clicks here. + int id = item.getItemId(); + + if (id == R.id.nav_camera) { + // Handle the camera action + } else if (id == R.id.nav_gallery) { + + } else if (id == R.id.nav_slideshow) { + + } else if (id == R.id.nav_manage) { + + } else if (id == R.id.nav_share) { + + } else if (id == R.id.nav_send) { + + } + + DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); + drawer.closeDrawer(GravityCompat.START); + return true; + } +} diff --git a/functionality/Activity.java b/functionality/Activity.java new file mode 100644 index 0000000..dee64bf --- /dev/null +++ b/functionality/Activity.java @@ -0,0 +1,33 @@ +import java.util.ArrayList; + +public abstract class Activity { +// private String type; + private String title; + protected ArrayList<Group> groups; + private String description; + private User host; + + public Activity (/*String type,*/ String title, String description, User host){ + /*this.type = type;*/ + this.title = title; + this.description = description; + this.host = host; + groups = new ArrayList<Group>(); + } + + ArrayList<Group> getGroups(){ + return groups; + } + + String getTitle(){ + return title; + } + + User getHost(){ + return host; + } + + String getDescription(){ + return description; + } +} diff --git a/functionality/Complaint.java b/functionality/Complaint.java new file mode 100644 index 0000000..21de7e6 --- /dev/null +++ b/functionality/Complaint.java @@ -0,0 +1,13 @@ +import java.util.Date; + +public class Complaint extends Activity { + private boolean anonymous; + public Complaint (/*String type,*/ String title, String description, User host, boolean anonymous){ + super(/*type,*/title,description,host); + this.anonymous = anonymous; + } + + boolean isAnonymous(){ + return anonymous; + } +} \ No newline at end of file diff --git a/functionality/Event.java b/functionality/Event.java new file mode 100644 index 0000000..e87ec3e --- /dev/null +++ b/functionality/Event.java @@ -0,0 +1,47 @@ +import java.util.ArrayList; +import java.util.Date; + +public class Event extends Activity { + Date date; + String location; + public Event (/*String type,*/ String title, String description, User host, Date date, String location){ + super(/*type,*/title,description,host); + this.date = date; + this.location = location; + } + + void addGroup(Group group){ + groups.add(group); + } + + void addGroups(ArrayList<Group> groupsToAdd){ + groupsToAdd.forEach((g) -> groups.add(g)); + /*for (Group g : groupsToAdd){ + groups.add(g); + }*/ + } + + void removeGroup(Group group){ + groups.remove(group); + } + + void removerGroups(ArrayList<Group> groupsToRemove){ + groupsToRemove.forEach((g) -> groups.remove(g)); + } + + void setDate (Date date){ + this.date = date; + } + + Date getDate(){ + return date; + } + + void setLocation(String location){ + this.location = location; + } + + String getLocation(){ + return location; + } +} diff --git a/functionality/Group.java b/functionality/Group.java new file mode 100644 index 0000000..e419b79 --- /dev/null +++ b/functionality/Group.java @@ -0,0 +1,28 @@ +import java.util.ArrayList; + +/* + Represents a Group of Users. + */ +public class Group { + + private String groupID; + private ArrayList<User> users; + + public void addUser(User user) { + users.add(user); + } + + public void removeUser(User u) { + users.remove(u); + } + + //Getters + + public String getID() { + return groupID; + } + + public ArrayList<User> getUsers() { + return users; + } +} \ No newline at end of file diff --git a/functionality/User.java b/functionality/User.java new file mode 100644 index 0000000..4198dbe --- /dev/null +++ b/functionality/User.java @@ -0,0 +1,30 @@ +import java.util.ArrayList; + +/* + Represents a single User of the app. + */ + +public class User { + + private String userName; + private String password; + private String screenName; + private ArrayList<Group> groups; + + //Class constructor + public User(String userName, String password, String screenName) { + this.userName = userName; + this.password = password; + this.screenName = screenName; + } + + //Getters + + public String getScreenName() { + return screenName; + } + + public ArrayList<Group> getGroups() { + return groups; + } +} -- GitLab