From b639e556aff31c76de7c4b1c7b451efc5ac7545e Mon Sep 17 00:00:00 2001 From: Guilherme Lacerda Date: Fri, 19 May 2017 04:55:27 -0300 Subject: [PATCH 1/9] [GROUPS LIST] Creates a simple static group list Signed-off-by: Guilherme Lacerda Signed-off-by: gabrielsclimaco --- .../fga/mds/gpp/trezentos/Model/Groups.java | 27 ++++++ .../mds/gpp/trezentos/View/GroupsAdapter.java | 86 +++++++++++++++++++ .../gpp/trezentos/View/GroupsFragment.java | 85 ++++++++++++------ .../View/RecyclerViewOnClickListener.java | 7 ++ app/src/main/res/layout/fragment_groups.xml | 24 ++++-- app/src/main/res/layout/groups_item.xml | 41 +++++++++ 6 files changed, 237 insertions(+), 33 deletions(-) create mode 100644 app/src/main/java/fga/mds/gpp/trezentos/Model/Groups.java create mode 100644 app/src/main/java/fga/mds/gpp/trezentos/View/GroupsAdapter.java create mode 100644 app/src/main/java/fga/mds/gpp/trezentos/View/RecyclerViewOnClickListener.java create mode 100644 app/src/main/res/layout/groups_item.xml diff --git a/app/src/main/java/fga/mds/gpp/trezentos/Model/Groups.java b/app/src/main/java/fga/mds/gpp/trezentos/Model/Groups.java new file mode 100644 index 0000000..77b006d --- /dev/null +++ b/app/src/main/java/fga/mds/gpp/trezentos/Model/Groups.java @@ -0,0 +1,27 @@ +package fga.mds.gpp.trezentos.Model; + +public class Groups { + private String groupNumber; + private String leaderName; + + public Groups(String groupNumber, String leaderName){ + this.groupNumber = groupNumber; + this.leaderName = leaderName; + } + + public void setGroupNumber(String groupNumber){ + this.groupNumber = groupNumber; + } + + public String getGroupNumber(){ + return groupNumber; + } + + public void setLeaderName(String leaderName){ + this.leaderName = leaderName; + } + + public String getLeaderName(){ + return leaderName; + } +} \ No newline at end of file diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsAdapter.java b/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsAdapter.java new file mode 100644 index 0000000..a46c2d9 --- /dev/null +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsAdapter.java @@ -0,0 +1,86 @@ +package fga.mds.gpp.trezentos.View; + +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.TextView; + +import java.util.ArrayList; +import java.util.List; + +import fga.mds.gpp.trezentos.Model.Groups; +import fga.mds.gpp.trezentos.R; + +public class GroupsAdapter extends RecyclerView.Adapter + implements View.OnClickListener { + private List groupses; + private LayoutInflater mLayouteInflate; + public RecyclerView recyclerView; + private RecyclerViewOnClickListener mRecyclerViewOnClickListener; + + public GroupsAdapter(Context context, List l){ + mLayouteInflate = (LayoutInflater) context + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + this.groupses = l; + } + + + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = mLayouteInflate.inflate(R.layout.groups_item, parent, false); + ViewHolder viewHolder = new ViewHolder(view); + + return viewHolder; + } + + @Override + public void onBindViewHolder(ViewHolder viewHolder, int position) { + viewHolder.groupNumber.setText(groupses.get(position).getGroupNumber()); + viewHolder.leaderName.setText(groupses.get(position).getLeaderName()); + + } + + @Override + public int getItemCount() { + return groupses.size(); + } + + @Override + public void onClick(View v) { + + } + + public void setRecyclerViewOnClickListener(RecyclerViewOnClickListener recyclerViewOnClickListener){ + mRecyclerViewOnClickListener = recyclerViewOnClickListener; + } + + public void addListItem(Groups group, int position){ + groupses.add(group); + notifyItemInserted(position); + } + + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ + + public TextView groupNumber; + public TextView leaderName; + + public ViewHolder(View itemView) { + super(itemView); + + groupNumber = (TextView) itemView.findViewById(R.id.group_number); + leaderName = (TextView) itemView.findViewById(R.id.leader_name); + + itemView.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + if(mRecyclerViewOnClickListener != null){ + mRecyclerViewOnClickListener.onClickListener(v, getPosition()); + } + + } + } +} \ No newline at end of file diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsFragment.java b/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsFragment.java index 949f24f..dc30afc 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsFragment.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsFragment.java @@ -1,49 +1,80 @@ package fga.mds.gpp.trezentos.View; import android.content.Context; -import android.net.Uri; 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; +import android.widget.Toast; +import java.util.ArrayList; +import java.util.List; + +import fga.mds.gpp.trezentos.Model.Groups; import fga.mds.gpp.trezentos.R; -public class GroupsFragment extends Fragment { +public class GroupsFragment extends Fragment implements RecyclerViewOnClickListener{ + private RecyclerView mRecyclerView; + private List groupses; - private OnFragmentInteractionListener mListener; + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container + , Bundle savedInstanceState) { + final View view = inflater.inflate(R.layout.fragment_groups + , container, false); + mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_groups); + mRecyclerView.setHasFixedSize(true); + mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener(){ + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState){ + super.onScrollStateChanged(recyclerView, newState); + } - public GroupsFragment() { - // Required empty public constructor - } + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy){ + super.onScrolled(recyclerView, dx, dy); - public static GroupsFragment newInstance(String param1, String param2) { - GroupsFragment fragment = new GroupsFragment(); - Bundle args = new Bundle(); - return fragment; - } + LinearLayoutManager layoutManager = (LinearLayoutManager) + mRecyclerView.getLayoutManager(); + GroupsAdapter adapter = (GroupsAdapter) mRecyclerView.getAdapter(); - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } + } + }); - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_groups, container, false); - } + LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); + layoutManager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(layoutManager); - public void onButtonPressed(Uri uri) { - if (mListener != null) { - mListener.onFragmentInteraction(uri); - } + groupses = getSetGroupList(4); + GroupsAdapter adapter = new GroupsAdapter(getActivity(), groupses); + adapter.setRecyclerViewOnClickListener(this); + mRecyclerView.setAdapter(adapter); + + return view; } + public List getSetGroupList(int quantity){ + String[] groupNumber = new String[]{"Grupo 1", "Grupo 2" + , "Grupo 3", "Grupo 4"}; + String[] leaderName = new String[]{"Bruna Pinos", "Guilherme Lacerda" + , "Arthur Diniz", "Guilherme Augusto"}; + List listAux = new ArrayList<>(); + + for (int i = 0; i < quantity; i++){ + Groups groupses = new Groups(groupNumber[i % groupNumber.length] + , leaderName[i % leaderName.length]); + listAux.add(groupses); + } - public interface OnFragmentInteractionListener { - void onFragmentInteraction(Uri uri); + return (listAux); + } + + @Override + public void onClickListener(View view, int position) { + Toast.makeText(getActivity(), "Position: " + position, Toast.LENGTH_SHORT).show(); } -} +} \ No newline at end of file diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/RecyclerViewOnClickListener.java b/app/src/main/java/fga/mds/gpp/trezentos/View/RecyclerViewOnClickListener.java new file mode 100644 index 0000000..095ed8f --- /dev/null +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/RecyclerViewOnClickListener.java @@ -0,0 +1,7 @@ +package fga.mds.gpp.trezentos.View; + +import android.view.View; + +public interface RecyclerViewOnClickListener { + public void onClickListener(View view, int position); +} diff --git a/app/src/main/res/layout/fragment_groups.xml b/app/src/main/res/layout/fragment_groups.xml index 7f46c0c..49dc8cc 100644 --- a/app/src/main/res/layout/fragment_groups.xml +++ b/app/src/main/res/layout/fragment_groups.xml @@ -1,13 +1,25 @@ - + + app:layout_behavior="@string/appbar_scrolling_view_behavior"> - - + android:clipToPadding="false"/> - + + \ No newline at end of file diff --git a/app/src/main/res/layout/groups_item.xml b/app/src/main/res/layout/groups_item.xml new file mode 100644 index 0000000..8716284 --- /dev/null +++ b/app/src/main/res/layout/groups_item.xml @@ -0,0 +1,41 @@ + + + + + + + + + + \ No newline at end of file From 16fe13ad2393166db5eb6b20718432911d8382d1 Mon Sep 17 00:00:00 2001 From: Bruna Pinos Date: Fri, 26 May 2017 21:23:33 -0300 Subject: [PATCH 2/9] [ITENS] Creates sort groups button Signed-off-by: Bruna Pinos Signed-off-by: Elmar Roberto --- .../fga/mds/gpp/trezentos/View/ClassFragment.java | 2 ++ .../fga/mds/gpp/trezentos/View/ExamActivity.java | 12 ++---------- app/src/main/res/menu/menu_exam.xml | 10 ++-------- app/src/main/res/values/strings.xml | 1 + 4 files changed, 7 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/ClassFragment.java b/app/src/main/java/fga/mds/gpp/trezentos/View/ClassFragment.java index ef39e85..5829271 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/ClassFragment.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/ClassFragment.java @@ -220,6 +220,8 @@ protected void onPreExecute() { protected void onProgressUpdate(Void... values) {} public boolean isNetworkAvailable(Context context) { + if (context == null){return false;} + final ConnectivityManager connectivityManager = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)); return connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isConnected(); } diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java index 1fb9ff1..806f20a 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java @@ -93,7 +93,7 @@ public boolean onSupportNavigateUp(){ @Override public boolean onCreateOptionsMenu(Menu menu){ // Inflate the menu; this adds items to the action bar if it is present. - getMenuInflater().inflate(R.menu.menu_class, menu); + getMenuInflater().inflate(R.menu.menu_exam, menu); return true; } @@ -101,16 +101,8 @@ public boolean onCreateOptionsMenu(Menu menu){ public boolean onOptionsItemSelected(MenuItem item){ int id = item.getItemId(); - if (id == R.id.action_settings){ - return true; - } - else if(id == R.id.action_edit_class){ + if(id == R.id.action_sort_groups){ -// Intent intentEditClass = new Intent(getApplicationContext(), EditClassActivity.class); -// UserClass userClassCalled = (UserClass) userClass; -// intentEditClass.putExtra("Class", userClassCalled); -// -// startActivity(intentEditClass); } return super.onOptionsItemSelected(item); diff --git a/app/src/main/res/menu/menu_exam.xml b/app/src/main/res/menu/menu_exam.xml index c936f3b..d3697ca 100644 --- a/app/src/main/res/menu/menu_exam.xml +++ b/app/src/main/res/menu/menu_exam.xml @@ -4,15 +4,9 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> - - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 15f6c74..79e991d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -73,6 +73,7 @@ Configuracoes Editar Sala + Ordenar Grupos Alunos From 02cc7b2c8b09c32ead825ec1eaa09ffdad9d94df Mon Sep 17 00:00:00 2001 From: Guilherme Lacerda Date: Fri, 19 May 2017 04:55:27 -0300 Subject: [PATCH 3/9] [GROUPS LIST] Creates a simple static group list Signed-off-by: Guilherme Lacerda Signed-off-by: gabrielsclimaco --- .../fga/mds/gpp/trezentos/Model/Groups.java | 27 ++++++ .../mds/gpp/trezentos/View/GroupsAdapter.java | 86 +++++++++++++++++++ .../gpp/trezentos/View/GroupsFragment.java | 85 ++++++++++++------ .../View/RecyclerViewOnClickListener.java | 7 ++ app/src/main/res/layout/fragment_groups.xml | 24 ++++-- app/src/main/res/layout/groups_item.xml | 41 +++++++++ 6 files changed, 237 insertions(+), 33 deletions(-) create mode 100644 app/src/main/java/fga/mds/gpp/trezentos/Model/Groups.java create mode 100644 app/src/main/java/fga/mds/gpp/trezentos/View/GroupsAdapter.java create mode 100644 app/src/main/java/fga/mds/gpp/trezentos/View/RecyclerViewOnClickListener.java create mode 100644 app/src/main/res/layout/groups_item.xml diff --git a/app/src/main/java/fga/mds/gpp/trezentos/Model/Groups.java b/app/src/main/java/fga/mds/gpp/trezentos/Model/Groups.java new file mode 100644 index 0000000..77b006d --- /dev/null +++ b/app/src/main/java/fga/mds/gpp/trezentos/Model/Groups.java @@ -0,0 +1,27 @@ +package fga.mds.gpp.trezentos.Model; + +public class Groups { + private String groupNumber; + private String leaderName; + + public Groups(String groupNumber, String leaderName){ + this.groupNumber = groupNumber; + this.leaderName = leaderName; + } + + public void setGroupNumber(String groupNumber){ + this.groupNumber = groupNumber; + } + + public String getGroupNumber(){ + return groupNumber; + } + + public void setLeaderName(String leaderName){ + this.leaderName = leaderName; + } + + public String getLeaderName(){ + return leaderName; + } +} \ No newline at end of file diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsAdapter.java b/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsAdapter.java new file mode 100644 index 0000000..a46c2d9 --- /dev/null +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsAdapter.java @@ -0,0 +1,86 @@ +package fga.mds.gpp.trezentos.View; + +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.TextView; + +import java.util.ArrayList; +import java.util.List; + +import fga.mds.gpp.trezentos.Model.Groups; +import fga.mds.gpp.trezentos.R; + +public class GroupsAdapter extends RecyclerView.Adapter + implements View.OnClickListener { + private List groupses; + private LayoutInflater mLayouteInflate; + public RecyclerView recyclerView; + private RecyclerViewOnClickListener mRecyclerViewOnClickListener; + + public GroupsAdapter(Context context, List l){ + mLayouteInflate = (LayoutInflater) context + .getSystemService(Context.LAYOUT_INFLATER_SERVICE); + this.groupses = l; + } + + + public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { + View view = mLayouteInflate.inflate(R.layout.groups_item, parent, false); + ViewHolder viewHolder = new ViewHolder(view); + + return viewHolder; + } + + @Override + public void onBindViewHolder(ViewHolder viewHolder, int position) { + viewHolder.groupNumber.setText(groupses.get(position).getGroupNumber()); + viewHolder.leaderName.setText(groupses.get(position).getLeaderName()); + + } + + @Override + public int getItemCount() { + return groupses.size(); + } + + @Override + public void onClick(View v) { + + } + + public void setRecyclerViewOnClickListener(RecyclerViewOnClickListener recyclerViewOnClickListener){ + mRecyclerViewOnClickListener = recyclerViewOnClickListener; + } + + public void addListItem(Groups group, int position){ + groupses.add(group); + notifyItemInserted(position); + } + + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ + + public TextView groupNumber; + public TextView leaderName; + + public ViewHolder(View itemView) { + super(itemView); + + groupNumber = (TextView) itemView.findViewById(R.id.group_number); + leaderName = (TextView) itemView.findViewById(R.id.leader_name); + + itemView.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + if(mRecyclerViewOnClickListener != null){ + mRecyclerViewOnClickListener.onClickListener(v, getPosition()); + } + + } + } +} \ No newline at end of file diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsFragment.java b/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsFragment.java index 949f24f..dc30afc 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsFragment.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/GroupsFragment.java @@ -1,49 +1,80 @@ package fga.mds.gpp.trezentos.View; import android.content.Context; -import android.net.Uri; 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; +import android.widget.Toast; +import java.util.ArrayList; +import java.util.List; + +import fga.mds.gpp.trezentos.Model.Groups; import fga.mds.gpp.trezentos.R; -public class GroupsFragment extends Fragment { +public class GroupsFragment extends Fragment implements RecyclerViewOnClickListener{ + private RecyclerView mRecyclerView; + private List groupses; - private OnFragmentInteractionListener mListener; + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container + , Bundle savedInstanceState) { + final View view = inflater.inflate(R.layout.fragment_groups + , container, false); + mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_groups); + mRecyclerView.setHasFixedSize(true); + mRecyclerView.setOnScrollListener(new RecyclerView.OnScrollListener(){ + @Override + public void onScrollStateChanged(RecyclerView recyclerView, int newState){ + super.onScrollStateChanged(recyclerView, newState); + } - public GroupsFragment() { - // Required empty public constructor - } + @Override + public void onScrolled(RecyclerView recyclerView, int dx, int dy){ + super.onScrolled(recyclerView, dx, dy); - public static GroupsFragment newInstance(String param1, String param2) { - GroupsFragment fragment = new GroupsFragment(); - Bundle args = new Bundle(); - return fragment; - } + LinearLayoutManager layoutManager = (LinearLayoutManager) + mRecyclerView.getLayoutManager(); + GroupsAdapter adapter = (GroupsAdapter) mRecyclerView.getAdapter(); - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } + } + }); - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_groups, container, false); - } + LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity()); + layoutManager.setOrientation(LinearLayoutManager.VERTICAL); + mRecyclerView.setLayoutManager(layoutManager); - public void onButtonPressed(Uri uri) { - if (mListener != null) { - mListener.onFragmentInteraction(uri); - } + groupses = getSetGroupList(4); + GroupsAdapter adapter = new GroupsAdapter(getActivity(), groupses); + adapter.setRecyclerViewOnClickListener(this); + mRecyclerView.setAdapter(adapter); + + return view; } + public List getSetGroupList(int quantity){ + String[] groupNumber = new String[]{"Grupo 1", "Grupo 2" + , "Grupo 3", "Grupo 4"}; + String[] leaderName = new String[]{"Bruna Pinos", "Guilherme Lacerda" + , "Arthur Diniz", "Guilherme Augusto"}; + List listAux = new ArrayList<>(); + + for (int i = 0; i < quantity; i++){ + Groups groupses = new Groups(groupNumber[i % groupNumber.length] + , leaderName[i % leaderName.length]); + listAux.add(groupses); + } - public interface OnFragmentInteractionListener { - void onFragmentInteraction(Uri uri); + return (listAux); + } + + @Override + public void onClickListener(View view, int position) { + Toast.makeText(getActivity(), "Position: " + position, Toast.LENGTH_SHORT).show(); } -} +} \ No newline at end of file diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/RecyclerViewOnClickListener.java b/app/src/main/java/fga/mds/gpp/trezentos/View/RecyclerViewOnClickListener.java new file mode 100644 index 0000000..095ed8f --- /dev/null +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/RecyclerViewOnClickListener.java @@ -0,0 +1,7 @@ +package fga.mds.gpp.trezentos.View; + +import android.view.View; + +public interface RecyclerViewOnClickListener { + public void onClickListener(View view, int position); +} diff --git a/app/src/main/res/layout/fragment_groups.xml b/app/src/main/res/layout/fragment_groups.xml index 7f46c0c..49dc8cc 100644 --- a/app/src/main/res/layout/fragment_groups.xml +++ b/app/src/main/res/layout/fragment_groups.xml @@ -1,13 +1,25 @@ - + + app:layout_behavior="@string/appbar_scrolling_view_behavior"> - - + android:clipToPadding="false"/> - + + \ No newline at end of file diff --git a/app/src/main/res/layout/groups_item.xml b/app/src/main/res/layout/groups_item.xml new file mode 100644 index 0000000..8716284 --- /dev/null +++ b/app/src/main/res/layout/groups_item.xml @@ -0,0 +1,41 @@ + + + + + + + + + + \ No newline at end of file From 9005cc845ee2912bfad0a2f012628363b1fc4698 Mon Sep 17 00:00:00 2001 From: Bruna Pinos Date: Fri, 26 May 2017 21:23:33 -0300 Subject: [PATCH 4/9] [ITENS] Creates sort groups button Signed-off-by: Bruna Pinos Signed-off-by: Elmar Roberto --- .../mds/gpp/trezentos/View/ClassFragment.java | 4 +++- .../mds/gpp/trezentos/View/ExamActivity.java | 19 ++++++++++++------- app/src/main/res/menu/menu_exam.xml | 10 ++++++++-- app/src/main/res/values/strings.xml | 1 + 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/ClassFragment.java b/app/src/main/java/fga/mds/gpp/trezentos/View/ClassFragment.java index 3100ad6..0a42433 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/ClassFragment.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/ClassFragment.java @@ -168,7 +168,7 @@ public ServerOperation(){ @Override protected String doInBackground(String... params) { - if(isInternetAvailable() ){ //If internet is ok + if(isNetworkAvailable(getContext()) && isInternetAvailable()){ //If internet is ok userClasses = new ArrayList<>(); ArrayList allClasses = userClassControl.getClasses(); @@ -218,6 +218,8 @@ protected void onPreExecute() { protected void onProgressUpdate(Void... values) {} public boolean isNetworkAvailable(Context context) { + if (context == null){return false;} + final ConnectivityManager connectivityManager = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)); return connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isConnected(); } diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java index eacf4a2..e80d203 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java @@ -96,13 +96,14 @@ public boolean onCreateOptionsMenu(Menu menu){ @Override public boolean onOptionsItemSelected(MenuItem item){ int id = item.getItemId(); - if (id == R.id.action_update_grades){ - UserExamControl userExamControl = UserExamControl.getInstance(getApplicationContext()); - Log.d("DATAEXAME", Integer.toString(studentsFragment.getHashEmailAndGrade().size())); - Log.d("DATAEXAME", userClass.getClassName()); - Log.d("DATAEXAME", exam.getNameExam()); - Log.d("DATAEXAME", exam.getClassOwnerEmail()); + if (id == R.id.action_update_grades) { + UserExamControl userExamControl = UserExamControl.getInstance(getApplicationContext()); + + Log.d("DATAEXAME", Integer.toString(studentsFragment.getHashEmailAndGrade().size())); + Log.d("DATAEXAME", userClass.getClassName()); + Log.d("DATAEXAME", exam.getNameExam()); + Log.d("DATAEXAME", exam.getClassOwnerEmail()); try { userExamControl.validateAddsFirstGrade(userClass, exam, studentsFragment.getHashEmailAndGrade()); @@ -113,7 +114,11 @@ public boolean onOptionsItemSelected(MenuItem item){ } catch (InterruptedException e) { e.printStackTrace(); } - return true; + return true; + + + }else if(id == R.id.action_sort_groups){ + } return super.onOptionsItemSelected(item); diff --git a/app/src/main/res/menu/menu_exam.xml b/app/src/main/res/menu/menu_exam.xml index aaf9278..8940c2c 100644 --- a/app/src/main/res/menu/menu_exam.xml +++ b/app/src/main/res/menu/menu_exam.xml @@ -4,9 +4,15 @@ xmlns:app="http://schemas.android.com/apk/res-auto"> + android:title="@string/update_grades"/> + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e6334b1..dbec2c4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -73,6 +73,7 @@ Configuracoes Editar Sala + Ordenar Grupos Alunos From 663ad95ef2c20433635b9cfd52392bfdb8512fbb Mon Sep 17 00:00:00 2001 From: Bruna Pinos Date: Tue, 30 May 2017 21:54:34 -0300 Subject: [PATCH 5/9] [METHOD] Creates method to select group liders Signed-off-by: Bruna Pinos Signed-off-by: Elmar Roberto --- .../Controller/Util/SortStudentsUtil.java | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fga/mds/gpp/trezentos/Controller/Util/SortStudentsUtil.java b/app/src/main/java/fga/mds/gpp/trezentos/Controller/Util/SortStudentsUtil.java index 7e8e458..332018b 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/Controller/Util/SortStudentsUtil.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/Controller/Util/SortStudentsUtil.java @@ -7,6 +7,7 @@ import java.util.Collections; import java.util.Comparator; +import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; @@ -89,4 +90,41 @@ public int compare(Map.Entry obj1, Map.Entry obj return list; } -} + + public static MapdeterminateLiders + (Map mapEmailGrade, Float cutOff){ + + Map mapEmailLider = new HashMap<>(); + + List> list = new LinkedList<> + (mapEmailGrade.entrySet()); + + for (Map.Entry it : list){ + if(it.getValue() >= cutOff) { + mapEmailLider.put(it.getKey(), true); + }else{ + mapEmailLider.put(it.getKey(), false); + } + + } + return mapEmailLider; + } +}git + + + + + + + + + + + + + + + + + + From a8baaf22c326cfabf2d31902febe8463de379819 Mon Sep 17 00:00:00 2001 From: Bruna Pinos Date: Thu, 1 Jun 2017 16:50:41 -0300 Subject: [PATCH 6/9] [FIRSTGRADES] Set first grade as Exam's attribute Signed-off-by: Bruna Pinos Signed-off-by: Elmar Roberto --- .../trezentos/Controller/UserExamControl.java | 13 +++--- .../mds/gpp/trezentos/DAO/AddFirstGrades.java | 15 +++---- .../fga/mds/gpp/trezentos/Model/Exam.java | 10 +++++ .../mds/gpp/trezentos/View/ExamActivity.java | 17 ++++---- .../gpp/trezentos/View/StudentsFragment.java | 42 ++++++++++++++----- 5 files changed, 63 insertions(+), 34 deletions(-) diff --git a/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java b/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java index f40398f..ce9445e 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java @@ -67,15 +67,16 @@ public String validateInformation(String examName, String userClassName, String } } - public String validateAddsFirstGrade(UserClass userClass, Exam exam, - HashMap hashFirstGrades) throws UserClassException, ExecutionException, InterruptedException { + public String validateAddsFirstGrade(UserClass userClass, Exam exam) + throws UserClassException, ExecutionException, InterruptedException{ String serverResponse; - Log.d("OBJETOS",hashFirstGrades.toString()); + Log.d("OBJETOS",exam.getFirstGrades()); Log.d("OBJETOS",userClass.getClassName()); Log.d("OBJETOS",exam.getClassOwnerEmail()); Log.d("OBJETOS",exam.getNameExam()); - AddFirstGrades addFirstGrades = new AddFirstGrades(userClass, exam, hashFirstGrades); + + AddFirstGrades addFirstGrades = new AddFirstGrades(userClass, exam); serverResponse = addFirstGrades.execute().get(); Log.d("JSON", serverResponse); @@ -128,6 +129,7 @@ private Exam getUserExamFromJson(JSONObject jsonObject) { exam.setNameExam(jsonObject.getString("name")); exam.setUserClassName(jsonObject.getString("userClassName")); exam.setClassOwnerEmail(jsonObject.getString("classOwnerEmail")); + // exam.setFirstGrade(jsonObject.getString("firstGrades")); }catch (JSONException e){ e.printStackTrace(); @@ -137,4 +139,5 @@ private Exam getUserExamFromJson(JSONObject jsonObject) { return exam; } -} + +} diff --git a/app/src/main/java/fga/mds/gpp/trezentos/DAO/AddFirstGrades.java b/app/src/main/java/fga/mds/gpp/trezentos/DAO/AddFirstGrades.java index 4105e6c..f22b26c 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/DAO/AddFirstGrades.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/DAO/AddFirstGrades.java @@ -21,22 +21,20 @@ import okhttp3.Response; public class AddFirstGrades extends AsyncTask { - private HashMap hashFirstGrades; private UserClass userClass; private Exam exam; private final String url = "https://trezentos-api.herokuapp.com/api/exam/first_grades"; - public AddFirstGrades(UserClass userClass, Exam exam, HashMap hashFirstGrades) { + public AddFirstGrades(UserClass userClass, Exam exam) { this.userClass = userClass; this.exam = exam; - this.hashFirstGrades = hashFirstGrades; } @Override protected String doInBackground(String... params) { MediaType JSON = MediaType.parse("application/json; charset=utf-8"); OkHttpClient client = new OkHttpClient(); - String newBodyFirstGrades = createBody(userClass, exam, hashFirstGrades); + String newBodyFirstGrades = createBody(userClass, exam); Log.d("newBody", newBodyFirstGrades); RequestBody body = RequestBody.create(JSON, newBodyFirstGrades); @@ -55,8 +53,7 @@ protected String doInBackground(String... params) { return null; } - public String createBody(UserClass userClass, Exam exam, HashMap hashFirstGrades) { - String firstGrades = hashFirstGrades.toString(); + public String createBody(UserClass userClass, Exam exam) { JSONObject jsonBody = new JSONObject(); try { @@ -68,7 +65,7 @@ public String createBody(UserClass userClass, Exam exam, HashMap } try { jsonBody.put("userClassName", userClass.getClassName()); - Log.d("JSON", userClass.getClassName()); + Log.d("JSONCLASS", userClass.getClassName()); } catch (JSONException e) { Log.d("JSONEXCEPTION", e.toString()); e.printStackTrace(); @@ -81,8 +78,8 @@ public String createBody(UserClass userClass, Exam exam, HashMap e.printStackTrace(); } try { - jsonBody.put("firstGrades", firstGrades); - Log.d("JSON", firstGrades); + jsonBody.put("firstGrades", exam.getFirstGrades()); + Log.d("JSON", exam.getFirstGrades()); } catch (JSONException e) { Log.d("JSONEXCEPTION", e.toString()); e.printStackTrace(); diff --git a/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java b/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java index fe0349e..2d8866f 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java @@ -1,6 +1,7 @@ package fga.mds.gpp.trezentos.Model; import java.io.Serializable; +import java.util.HashMap; import fga.mds.gpp.trezentos.Exception.UserException; @@ -8,6 +9,7 @@ public class Exam implements Serializable { private String nameExam; private String userClassName; private String classOwnerEmail; + private String firstGrades; public Exam(){ //An empty constructor is needed to create a new instance of object, @@ -57,4 +59,12 @@ public void setClassOwnerEmail(String classOwnerEmail)throws UserException { public String getClassOwnerEmail() { return classOwnerEmail; } + + public String getFirstGrades() { + return firstGrades; + } + + public void setFirstGrade(String firstGrades) { + this.firstGrades = firstGrades; + } } diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java index e80d203..fc05c42 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java @@ -1,7 +1,6 @@ package fga.mds.gpp.trezentos.View; import android.content.Intent; -import android.support.design.widget.FloatingActionButton; import android.support.design.widget.TabLayout; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; @@ -10,11 +9,6 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; -import android.view.View; -import android.widget.Toast; - - -import java.util.HashMap; import java.util.concurrent.ExecutionException; import fga.mds.gpp.trezentos.Controller.UserExamControl; @@ -31,7 +25,7 @@ public class ExamActivity extends AppCompatActivity { private ViewPager viewPager; private Toolbar toolbar; private Exam exam; - StudentsFragment studentsFragment = new StudentsFragment(); + @Override protected void onCreate(Bundle savedInstanceState){ @@ -100,13 +94,18 @@ public boolean onOptionsItemSelected(MenuItem item){ if (id == R.id.action_update_grades) { UserExamControl userExamControl = UserExamControl.getInstance(getApplicationContext()); - Log.d("DATAEXAME", Integer.toString(studentsFragment.getHashEmailAndGrade().size())); + // Update exam with grades set in NumberPicker + Intent intent = getIntent(); + Bundle extras = intent.getExtras(); + exam = (Exam) extras.getSerializable("Exam"); + Log.d("DATAEXAME", userClass.getClassName()); Log.d("DATAEXAME", exam.getNameExam()); Log.d("DATAEXAME", exam.getClassOwnerEmail()); + Log.d("DATAEXAME", exam.getFirstGrades()); try { - userExamControl.validateAddsFirstGrade(userClass, exam, studentsFragment.getHashEmailAndGrade()); + userExamControl.validateAddsFirstGrade(userClass, exam); } catch (UserClassException e) { e.printStackTrace(); } catch (ExecutionException e) { diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java b/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java index 8d12058..97d9ed9 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java @@ -21,15 +21,23 @@ import java.util.ArrayList; import java.util.HashMap; +import fga.mds.gpp.trezentos.Model.Exam; import fga.mds.gpp.trezentos.Model.UserAccount; import fga.mds.gpp.trezentos.Model.UserClass; import fga.mds.gpp.trezentos.R; +import static fga.mds.gpp.trezentos.R.id.gradeLayout; +import static fga.mds.gpp.trezentos.R.id.no_presence; +import static fga.mds.gpp.trezentos.R.id.presence; +import static fga.mds.gpp.trezentos.R.id.student_name; +import static fga.mds.gpp.trezentos.R.id.text_view_grade; + public class StudentsFragment extends Fragment { private ArrayList userAccounts; private UserClass userClass; + private Exam userExam; private static HashMap mapEmailAndGrade = new HashMap<>(); public StudentsFragment(){ @@ -50,6 +58,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, //creates a new array of students that are enrolled at this class userClass = (UserClass) intent.getSerializableExtra("Class"); + userExam = (Exam) intent.getSerializableExtra("Exam"); ArrayList students = userClass.getStudents(); Log.d("ARRAYSTUDENTS", Integer.toString(students.get(0).length())); //if first item is null it will be removed @@ -84,8 +93,22 @@ public AdapterStudents(ArrayList userAccounts, Context context, Recycle @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view = LayoutInflater.from(context).inflate(R.layout.student_item, parent, false); - StudentsFragment.ViewHolder holder = new StudentsFragment.ViewHolder(view); + + View view = LayoutInflater.from(context) + .inflate(R.layout.student_item, parent, false); + + if(!(getActivity() instanceof ExamActivity)){ + + view.findViewById(presence).setVisibility(View.GONE); + view.findViewById(no_presence).setVisibility(View.GONE); + view.findViewById(gradeLayout).setVisibility(View.GONE); + view.findViewById(text_view_grade).setVisibility(View.GONE); + + }else{ + // do nothing + } + StudentsFragment.ViewHolder holder = + new StudentsFragment.ViewHolder(view); view.setOnClickListener(this); return holder; @@ -139,9 +162,9 @@ private class ViewHolder extends RecyclerView.ViewHolder implements View.OnClick public ViewHolder(View view) { super(view); - userAccountName = (TextView) view.findViewById(R.id.student_name); + userAccountName = (TextView) view.findViewById(student_name); presence = (ImageView) view.findViewById(R.id.presence); - noPresence= (ImageView) view.findViewById(R.id.no_presence); + noPresence= (ImageView) view.findViewById(no_presence); // circleImageView = (CircleImageView) view.findViewById(R.id.profile_image); gradeLayout = (LinearLayout) view.findViewById(R.id.gradeLayout); gradeTextView = (TextView) view.findViewById(R.id.text_view_grade); @@ -162,7 +185,7 @@ public void onClick(View v) { break; - case R.id.no_presence: + case no_presence: noPresence.setVisibility(View.GONE); presence.setVisibility(View.VISIBLE); @@ -214,8 +237,10 @@ public void onClick(View v) { Log.i("MAP", grade); Log.i("MAP", email); mapEmailAndGrade.put(email, grade); - Log.d("TAMANHOMAPA", Integer.toString(mapEmailAndGrade.size())); + userExam.setFirstGrade(mapEmailAndGrade.toString()); + Log.d("TAMANHOMAPA", userExam.getFirstGrades()); + d.dismiss(); } }); @@ -230,9 +255,4 @@ public void onClick(View v) { } } - public HashMap getHashEmailAndGrade(){ - Log.d("LOG GET HASH", Integer.toString(mapEmailAndGrade.size())); - return mapEmailAndGrade; - } - } \ No newline at end of file From 0b45ba65bc51b2dc65a79b688202eb2bba1260a5 Mon Sep 17 00:00:00 2001 From: Weyler Almeida Gomes Date: Fri, 2 Jun 2017 14:48:21 -0300 Subject: [PATCH 7/9] [CRUD] Sends Trezentos grade to the database Signed-off-by: Weyler Almeida Gomes Signed-off by: Guilherme Lacerda --- .../trezentos/Controller/UserExamControl.java | 11 +- .../gpp/trezentos/DAO/AddSecondGrades.java | 92 +++++++++++++++ .../fga/mds/gpp/trezentos/Model/Exam.java | 5 +- .../mds/gpp/trezentos/View/ExamActivity.java | 42 ++++--- .../gpp/trezentos/View/StudentsFragment.java | 108 +++++++----------- app/src/main/res/layout/student_item.xml | 2 +- 6 files changed, 176 insertions(+), 84 deletions(-) create mode 100644 app/src/main/java/fga/mds/gpp/trezentos/DAO/AddSecondGrades.java diff --git a/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java b/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java index 0ced5ad..2191ae6 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java @@ -12,6 +12,7 @@ import java.util.concurrent.ExecutionException; import fga.mds.gpp.trezentos.DAO.AddFirstGrades; +import fga.mds.gpp.trezentos.DAO.AddSecondGrades; import fga.mds.gpp.trezentos.DAO.CreateExamPost; import fga.mds.gpp.trezentos.DAO.getExamRequest; import fga.mds.gpp.trezentos.Exception.UserClassException; @@ -80,6 +81,14 @@ public String validateAddsFirstGrade(UserClass userClass, Exam exam) return serverResponse; } + public String addsSecondGrade(UserClass userClass, Exam exam) throws ExecutionException, InterruptedException { + String serverResponse; + + AddSecondGrades addSecondGrades = new AddSecondGrades(userClass, exam); + serverResponse = addSecondGrades.execute().get(); + + return serverResponse; + } //GET FROM API public ArrayList getExamsFromUser(String email, String userClassName) { @@ -126,7 +135,7 @@ private Exam getUserExamFromJson(JSONObject jsonObject) { exam.setNameExam(jsonObject.getString("name")); exam.setUserClassName(jsonObject.getString("userClassName")); exam.setClassOwnerEmail(jsonObject.getString("classOwnerEmail")); - // exam.setFirstGrade(jsonObject.getString("firstGrades")); + // exam.setFirstGrades(jsonObject.getString("firstGrades")); }catch (JSONException e){ e.printStackTrace(); diff --git a/app/src/main/java/fga/mds/gpp/trezentos/DAO/AddSecondGrades.java b/app/src/main/java/fga/mds/gpp/trezentos/DAO/AddSecondGrades.java new file mode 100644 index 0000000..053d470 --- /dev/null +++ b/app/src/main/java/fga/mds/gpp/trezentos/DAO/AddSecondGrades.java @@ -0,0 +1,92 @@ +package fga.mds.gpp.trezentos.DAO; + +import android.os.AsyncTask; +import android.util.Log; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.IOException; + +import fga.mds.gpp.trezentos.Model.Exam; +import fga.mds.gpp.trezentos.Model.UserClass; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; + +public class AddSecondGrades extends AsyncTask{ + private UserClass userClass; + private Exam exam; + private final String url = "https://trezentos-api.herokuapp.com/api/exam/second_grades"; + + public AddSecondGrades(UserClass userClass, Exam exam) { + this.userClass = userClass; + this.exam = exam; + } + + @Override + protected String doInBackground(String... params) { + MediaType JSON = MediaType.parse("application/json; charset=utf-8"); + OkHttpClient client = new OkHttpClient(); + String newBodySecondGrades = createBody(userClass, exam); + Log.d("newBody", newBodySecondGrades); + + RequestBody body = RequestBody.create(JSON, newBodySecondGrades); + Request request = new Request.Builder() + .url(url) + .put(body) + .build(); + + try { + Response response = client.newCall(request).execute(); + return response.body().string(); + } catch (IOException e) { + e.printStackTrace(); + Log.i("LOG", "IOException in doInBackground method"); + } + return null; + } + + public String createBody(UserClass userClass, Exam exam) { + + JSONObject jsonBody = new JSONObject(); + try { + jsonBody.put("email", exam.getClassOwnerEmail()); + Log.d("JSON", exam.getClassOwnerEmail()); + } catch (JSONException e) { + Log.d("JSONEXCEPTION", e.toString()); + e.printStackTrace(); + } + try { + jsonBody.put("userClassName", userClass.getClassName()); + Log.d("JSONCLASS", userClass.getClassName()); + } catch (JSONException e) { + Log.d("JSONEXCEPTION", e.toString()); + e.printStackTrace(); + } + try { + jsonBody.put("name", exam.getNameExam()); + Log.d("JSON", exam.getNameExam()); + } catch (JSONException e) { + Log.d("JSONEXCEPTION", e.toString()); + e.printStackTrace(); + } + try { + jsonBody.put("secondGrades", exam.getSecondGrades()); + Log.d("JSON", exam.getSecondGrades()); + } catch (JSONException e) { + Log.d("JSONEXCEPTION", e.toString()); + e.printStackTrace(); + } + + Log.d("JSON", jsonBody.toString()); + return jsonBody.toString(); + } + + @Override + protected void onPostExecute(String result) { + super.onPostExecute(result); + } +} diff --git a/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java b/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java index 7d6dc3a..73da11c 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java @@ -9,8 +9,7 @@ public class Exam implements Serializable { private String nameExam; private String userClassName; private String classOwnerEmail; - private String firstGrades; - + private String firstGrades; private String secondGrades; public Exam(){ @@ -62,7 +61,7 @@ public String getClassOwnerEmail() { return classOwnerEmail; } - public void setFirstGrade(String firstGrades) { + public void setFirstGrades(String firstGrades) { this.firstGrades = firstGrades; } diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java index fc05c42..7f83597 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java @@ -9,6 +9,8 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; +import android.widget.Toast; + import java.util.concurrent.ExecutionException; import fga.mds.gpp.trezentos.Controller.UserExamControl; @@ -102,22 +104,32 @@ public boolean onOptionsItemSelected(MenuItem item){ Log.d("DATAEXAME", userClass.getClassName()); Log.d("DATAEXAME", exam.getNameExam()); Log.d("DATAEXAME", exam.getClassOwnerEmail()); - Log.d("DATAEXAME", exam.getFirstGrades()); - - try { - userExamControl.validateAddsFirstGrade(userClass, exam); - } catch (UserClassException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - return true; - - - }else if(id == R.id.action_sort_groups){ + //if (exam.getSecondGrades().equals(null)) { + + try { + userExamControl.validateAddsFirstGrade(userClass, exam); + } catch (UserClassException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + //} + //else if (!exam.getFirstGrades().equals("") && !exam.getSecondGrades().equals("")){ + +// try { +// userExamControl.addsSecondGrade(userClass, exam); +// } catch (InterruptedException e) { +// e.printStackTrace(); +// } catch (ExecutionException e) { +// e.printStackTrace(); +// } + //} else { + // Toast.makeText(getApplicationContext(), "Primeira Nota Vazia", Toast.LENGTH_SHORT).show(); + //} + return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java b/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java index 7373c25..5ef9f38 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java @@ -13,7 +13,6 @@ import android.view.ViewGroup; import android.widget.Button; -import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.NumberPicker; import android.widget.TextView; @@ -22,13 +21,10 @@ import java.util.HashMap; import fga.mds.gpp.trezentos.Model.Exam; -import fga.mds.gpp.trezentos.Model.UserAccount; import fga.mds.gpp.trezentos.Model.UserClass; import fga.mds.gpp.trezentos.R; import static fga.mds.gpp.trezentos.R.id.gradeLayout; -import static fga.mds.gpp.trezentos.R.id.no_presence; -import static fga.mds.gpp.trezentos.R.id.presence; import static fga.mds.gpp.trezentos.R.id.student_name; import static fga.mds.gpp.trezentos.R.id.text_view_grade; @@ -100,8 +96,6 @@ public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType if(!(getActivity() instanceof ExamActivity)){ - view.findViewById(presence).setVisibility(View.GONE); - view.findViewById(no_presence).setVisibility(View.GONE); view.findViewById(gradeLayout).setVisibility(View.GONE); view.findViewById(text_view_grade).setVisibility(View.GONE); @@ -147,20 +141,12 @@ private class ViewHolder extends RecyclerView.ViewHolder final TextView userAccountName; final TextView gradeTextView; final TextView secondGradeTextView; - final ImageView presence; - final ImageView noPresence; - final ImageView secondPresence; - final ImageView secondNoPresence; final LinearLayout gradeLayout; final LinearLayout secondGradeLayout; public ViewHolder(View view) { super(view); userAccountName = (TextView) view.findViewById(student_name); - presence = (ImageView) view.findViewById(R.id.presence); - secondPresence = (ImageView) view.findViewById(R.id.presence_second_exam); - secondNoPresence = (ImageView) view.findViewById(R.id.no_presence_second_exam); - noPresence= (ImageView) view.findViewById(no_presence); gradeLayout = (LinearLayout) view.findViewById(R.id.gradeLayout); secondGradeLayout = (LinearLayout) view .findViewById(R.id.second_grade_layout); @@ -168,26 +154,14 @@ public ViewHolder(View view) { secondGradeTextView = (TextView) view .findViewById(R.id.text_view_second_grade); - presence.setOnClickListener(this); - noPresence.setOnClickListener(this); gradeLayout.setOnClickListener(this); secondGradeLayout.setOnClickListener(this); - secondNoPresence.setOnClickListener(this); - secondPresence.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { - case R.id.presence: - setPresenceExam(presence, noPresence); - break; - - case R.id.no_presence: - setNoPresenceExam(presence, noPresence); - break; - case R.id.gradeLayout: showGradePicker(1); break; @@ -195,28 +169,9 @@ public void onClick(View v) { case R.id.second_grade_layout: showGradePicker(2); break; - - case R.id.presence_second_exam: - setPresenceExam(secondPresence, secondNoPresence); - break; - - case R.id.no_presence_second_exam: - setNoPresenceExam(secondPresence, secondNoPresence); - break; - } } - private void setPresenceExam(ImageView presenceView, ImageView noPresenceView) { - noPresenceView.setVisibility(View.VISIBLE); - presenceView.setVisibility(View.GONE); - } - - private void setNoPresenceExam(ImageView presenceView, ImageView noPresenceView) { - noPresenceView.setVisibility(View.GONE); - presenceView.setVisibility(View.VISIBLE); - } - @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { } @@ -229,6 +184,7 @@ public void showGradePicker(final int CLICK) { final NumberPicker np2 = (NumberPicker) d.findViewById(R.id.numberPicker2); Button b1 = (Button) d.findViewById(R.id.button1); Button b2 = (Button) d.findViewById(R.id.button2); + Button bOk300 = (Button) d.findViewById(R.id.button1); np1.setMinValue(0); // min value 0 np1.setMaxValue(10); // max value 100 @@ -240,37 +196,60 @@ public void showGradePicker(final int CLICK) { np2.setWrapSelectorWheel(false); np2.setOnValueChangedListener(this); + if (CLICK == 1) { + b1.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String email; + String grade; - b1.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - String email; - String grade; - - if(CLICK == 1){ gradeTextView.setText(String.valueOf(np1.getValue()) + "." + String.valueOf(String.format("%02d", np2.getValue()))); //set the value to textview grade = gradeTextView.getText().toString(); - }else{ + email = userAccountName.getText().toString(); + + Log.i("MAP", grade); + Log.i("MAP", email); + Log.d("TAMANHOMAPA", Integer.toString(mapEmailAndGrade.size())); + + mapEmailAndGrade.put(email, grade); + userExam.setFirstGrades(mapEmailAndGrade.toString()); + + Log.d("TAMANHOMAPA", userExam.getFirstGrades()); + + d.dismiss(); + } + }); + } else { + bOk300.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String email; + String grade; + secondGradeTextView.setText(String.valueOf(np1.getValue()) + "." + String.valueOf(String.format ("%02d", np2.getValue()))); grade = secondGradeTextView.getText().toString(); - } - email = userAccountName.getText().toString(); - Log.i("MAP", grade); - Log.i("MAP", email); - mapEmailAndGrade.put(email, grade); - Log.d("TAMANHOMAPA", Integer.toString(mapEmailAndGrade.size())); - userExam.setFirstGrade(mapEmailAndGrade.toString()); - Log.d("TAMANHOMAPA", userExam.getFirstGrades()); + email = userAccountName.getText().toString(); + + Log.i("MAP", grade); + Log.i("MAP", email); + Log.d("TAMANHOMAPA", Integer.toString(mapEmailAndGrade.size())); + + mapEmailAndGrade.put(email, grade); + userExam.setSecondGrades(mapEmailAndGrade.toString()); + + Log.d("TAMANHOMAPA", userExam.getSecondGrades()); + + d.dismiss(); + } + }); + } - d.dismiss(); - } - }); b2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -278,6 +257,7 @@ public void onClick(View v) { } }); d.show(); + } } diff --git a/app/src/main/res/layout/student_item.xml b/app/src/main/res/layout/student_item.xml index f23e6b5..5a32abf 100644 --- a/app/src/main/res/layout/student_item.xml +++ b/app/src/main/res/layout/student_item.xml @@ -70,7 +70,7 @@ android:textColor="#FFF" android:textSize="30dp" android:textStyle="bold" - /> + /> From 566c0cd9c2a577f3dd64bb81fc27351c29134099 Mon Sep 17 00:00:00 2001 From: Guilherme Lacerda Date: Fri, 2 Jun 2017 23:22:44 -0300 Subject: [PATCH 8/9] [FIX BUGS] Corrects sending the Trezentos grade to the database Signed-off-by: Guilherme Lacerda Signed-off-by: Weyler Almeida --- .../trezentos/Controller/UserExamControl.java | 5 +- .../fga/mds/gpp/trezentos/Model/Exam.java | 5 +- .../mds/gpp/trezentos/View/ExamActivity.java | 61 +++++++++-------- .../gpp/trezentos/View/StudentsFragment.java | 58 ++++++++++++----- app/src/main/res/layout/activity_exam.xml | 3 +- app/src/main/res/layout/student_item.xml | 65 ++++++++++--------- app/src/main/res/menu/menu_exam.xml | 6 ++ app/src/main/res/values/strings.xml | 1 + 8 files changed, 116 insertions(+), 88 deletions(-) diff --git a/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java b/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java index 2191ae6..e072042 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/Controller/UserExamControl.java @@ -8,7 +8,6 @@ import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; -import java.util.HashMap; import java.util.concurrent.ExecutionException; import fga.mds.gpp.trezentos.DAO.AddFirstGrades; @@ -81,7 +80,7 @@ public String validateAddsFirstGrade(UserClass userClass, Exam exam) return serverResponse; } - public String addsSecondGrade(UserClass userClass, Exam exam) throws ExecutionException, InterruptedException { + public String addSecondGrade(UserClass userClass, Exam exam) throws ExecutionException, InterruptedException { String serverResponse; AddSecondGrades addSecondGrades = new AddSecondGrades(userClass, exam); @@ -135,7 +134,6 @@ private Exam getUserExamFromJson(JSONObject jsonObject) { exam.setNameExam(jsonObject.getString("name")); exam.setUserClassName(jsonObject.getString("userClassName")); exam.setClassOwnerEmail(jsonObject.getString("classOwnerEmail")); - // exam.setFirstGrades(jsonObject.getString("firstGrades")); }catch (JSONException e){ e.printStackTrace(); @@ -145,5 +143,4 @@ private Exam getUserExamFromJson(JSONObject jsonObject) { return exam; } - } diff --git a/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java b/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java index 73da11c..159997a 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/Model/Exam.java @@ -4,6 +4,7 @@ import java.util.HashMap; import fga.mds.gpp.trezentos.Exception.UserException; +import fga.mds.gpp.trezentos.View.StudentsFragment; public class Exam implements Serializable { private String nameExam; @@ -41,7 +42,7 @@ public void setNameExam(String nameExam)throws UserException{ } } - public String getNameExam(){ + public String getNameExam() { return nameExam; } @@ -49,7 +50,7 @@ public void setUserClassName(String userClassName) throws UserException{ this.userClassName = userClassName; } - public String getUserClassName(){ + public String getUserClassName() { return userClassName; } diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java index 7f83597..f9c25c4 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java @@ -9,7 +9,6 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; -import android.widget.Toast; import java.util.concurrent.ExecutionException; @@ -21,14 +20,11 @@ public class ExamActivity extends AppCompatActivity { - - // private FloatingActionButton floatingActionButton; private UserClass userClass; private ViewPager viewPager; private Toolbar toolbar; private Exam exam; - @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); @@ -89,11 +85,10 @@ public boolean onCreateOptionsMenu(Menu menu){ return true; } - @Override public boolean onOptionsItemSelected(MenuItem item){ - int id = item.getItemId(); + int ID = item.getItemId(); - if (id == R.id.action_update_grades) { + if (ID == R.id.action_update_grades) { UserExamControl userExamControl = UserExamControl.getInstance(getApplicationContext()); // Update exam with grades set in NumberPicker @@ -105,34 +100,36 @@ public boolean onOptionsItemSelected(MenuItem item){ Log.d("DATAEXAME", exam.getNameExam()); Log.d("DATAEXAME", exam.getClassOwnerEmail()); - //if (exam.getSecondGrades().equals(null)) { - - try { - userExamControl.validateAddsFirstGrade(userClass, exam); - } catch (UserClassException e) { - e.printStackTrace(); - } catch (ExecutionException e) { - e.printStackTrace(); - } catch (InterruptedException e) { - e.printStackTrace(); - } - //} - //else if (!exam.getFirstGrades().equals("") && !exam.getSecondGrades().equals("")){ - -// try { -// userExamControl.addsSecondGrade(userClass, exam); -// } catch (InterruptedException e) { -// e.printStackTrace(); -// } catch (ExecutionException e) { -// e.printStackTrace(); -// } - //} else { - // Toast.makeText(getApplicationContext(), "Primeira Nota Vazia", Toast.LENGTH_SHORT).show(); - //} + try { + userExamControl.validateAddsFirstGrade(userClass, exam); + } catch (UserClassException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + return true; + }else if(ID == R.id.action_update_trezentos_grades) { + UserExamControl userExamControl; + userExamControl = UserExamControl.getInstance(getApplicationContext()); + + Intent intent = getIntent(); + Bundle extras = intent.getExtras(); + exam = (Exam) extras.getSerializable("Exam"); + + try { + userExamControl.addSecondGrade(userClass, exam); + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } + return true; } return super.onOptionsItemSelected(item); } - } diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java b/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java index 5ef9f38..eb9af60 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java @@ -20,6 +20,7 @@ import java.util.ArrayList; import java.util.HashMap; +import fga.mds.gpp.trezentos.Controller.UserExamControl; import fga.mds.gpp.trezentos.Model.Exam; import fga.mds.gpp.trezentos.Model.UserClass; import fga.mds.gpp.trezentos.R; @@ -35,6 +36,9 @@ public class StudentsFragment extends Fragment { private UserClass userClass; private Exam userExam; private static HashMap mapEmailAndGrade = new HashMap<>(); + private boolean TREZENTOS_OPTION = false; + private boolean FIRST_GRADE_OPTION = false; + public StudentsFragment() { // Required empty public constructor @@ -53,6 +57,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, userExam = (Exam) intent.getSerializableExtra("Exam"); ArrayList students = userClass.getStudents(); Log.d("ARRAYSTUDENTS", Integer.toString(students.get(0).length())); + //if first item is null it will be removed if (students.get(0).length() == 0){ students.remove(0); @@ -73,9 +78,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, return view; } - - - private class AdapterStudents extends RecyclerView.Adapter implements View.OnClickListener { + private class AdapterStudents extends RecyclerView.Adapter implements View.OnClickListener { private final ArrayList userAccounts; private Context context; private RecyclerView recyclerView; @@ -135,7 +138,7 @@ public void onClick(View v) { } } - private class ViewHolder extends RecyclerView.ViewHolder + public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, NumberPicker.OnValueChangeListener { final TextView userAccountName; @@ -174,17 +177,19 @@ public void onClick(View v) { @Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { + } - public void showGradePicker(final int CLICK) { + public int showGradePicker(final int CLICK) { final Dialog d = new Dialog(getContext()); d.setContentView(R.layout.dialog); final NumberPicker np1 = (NumberPicker) d.findViewById(R.id.numberPicker1); final NumberPicker np2 = (NumberPicker) d.findViewById(R.id.numberPicker2); + Button b1 = (Button) d.findViewById(R.id.button1); Button b2 = (Button) d.findViewById(R.id.button2); - Button bOk300 = (Button) d.findViewById(R.id.button1); + Button buttonOK300 = (Button) d.findViewById(R.id.button1); np1.setMinValue(0); // min value 0 np1.setMaxValue(10); // max value 100 @@ -196,7 +201,7 @@ public void showGradePicker(final int CLICK) { np2.setWrapSelectorWheel(false); np2.setOnValueChangedListener(this); - if (CLICK == 1) { + if(CLICK == 1) { b1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -214,37 +219,46 @@ public void onClick(View v) { Log.d("TAMANHOMAPA", Integer.toString(mapEmailAndGrade.size())); mapEmailAndGrade.put(email, grade); + + if (CLICK == 2) { + + } userExam.setFirstGrades(mapEmailAndGrade.toString()); Log.d("TAMANHOMAPA", userExam.getFirstGrades()); + FIRST_GRADE_OPTION = true; + d.dismiss(); } }); - } else { - bOk300.setOnClickListener(new View.OnClickListener() { + }else { + buttonOK300.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - String email; - String grade; + String EMAIL; + String GRADE; secondGradeTextView.setText(String.valueOf(np1.getValue()) + "." + String.valueOf(String.format ("%02d", np2.getValue()))); - grade = secondGradeTextView.getText().toString(); + GRADE = secondGradeTextView.getText().toString(); - email = userAccountName.getText().toString(); + EMAIL = userAccountName.getText().toString(); - Log.i("MAP", grade); - Log.i("MAP", email); + Log.i("MAP", GRADE); + Log.i("MAP", EMAIL); Log.d("TAMANHOMAPA", Integer.toString(mapEmailAndGrade.size())); - mapEmailAndGrade.put(email, grade); + mapEmailAndGrade.put(EMAIL, GRADE); + userExam.setSecondGrades(mapEmailAndGrade.toString()); Log.d("TAMANHOMAPA", userExam.getSecondGrades()); + TREZENTOS_OPTION = true; + d.dismiss(); } }); @@ -258,7 +272,9 @@ public void onClick(View v) { }); d.show(); + return CLICK; } + } public HashMap populateMapValues(ArrayList students) { @@ -281,7 +297,7 @@ public ArrayList arrangeMap(ArrayList students) { int i = 0; if (students.size() == 0) { return students; - } else { + }else{ do { if (students.get(i).length() == 0) { students.remove(i); @@ -293,4 +309,12 @@ public ArrayList arrangeMap(ArrayList students) { return students; } } + + public boolean button300Pressed(){ + return TREZENTOS_OPTION; + } + + public boolean buttonFirstGradePressed(){ + return FIRST_GRADE_OPTION; + } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_exam.xml b/app/src/main/res/layout/activity_exam.xml index 8aa79f3..07f2c24 100644 --- a/app/src/main/res/layout/activity_exam.xml +++ b/app/src/main/res/layout/activity_exam.xml @@ -1,5 +1,6 @@ - - - - - - - + + + + + + + + + - - diff --git a/app/src/main/res/menu/menu_exam.xml b/app/src/main/res/menu/menu_exam.xml index aaf9278..933ee5e 100644 --- a/app/src/main/res/menu/menu_exam.xml +++ b/app/src/main/res/menu/menu_exam.xml @@ -9,4 +9,10 @@ android:title="@string/update_grades" app:showAsAction="never" /> + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e6334b1..4887a47 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -107,5 +107,6 @@ Hello blank fragment Atualizar Notas Atualizar Notas + Atualizar Notas Trezentos From 598caf669c4df7f86f75f72667ca254534fbfda7 Mon Sep 17 00:00:00 2001 From: Weyler Almeida Gomes Date: Sat, 3 Jun 2017 23:01:39 -0300 Subject: [PATCH 9/9] [TEST] Adds Tests for the Second Grades Signed-off-by: Weyler Almeida Gomes Signed-off by: Guilherme Lacerda --- app/build.gradle | 6 +++ .../StudentsFragmentInstrumentedTest.java | 47 ++++++++++++++----- .../mds/gpp/trezentos/View/ExamActivity.java | 4 -- .../gpp/trezentos/View/StudentsFragment.java | 19 -------- .../fga/mds/gpp/trezentos/Model/ExamTest.java | 7 +++ 5 files changed, 49 insertions(+), 34 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 85a1ce9..9bdd4d9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -93,6 +93,12 @@ dependencies { androidTestCompile('com.android.support.test.espresso:espresso-intents:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) + androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2') { + exclude group: 'com.android.support', module: 'appcompat' + exclude group: 'com.android.support', module: 'support-v4' + exclude group: 'com.android.support', module: 'support-annotations' + exclude module: 'recyclerview-v7' + } compile project(':facebook-android-sdk-4.20.0') compile 'com.android.support:appcompat-v7:25.3.1' diff --git a/app/src/androidTest/java/fga/mds/gpp/trezentos/View/StudentsFragmentInstrumentedTest.java b/app/src/androidTest/java/fga/mds/gpp/trezentos/View/StudentsFragmentInstrumentedTest.java index 45892d7..f10e53d 100644 --- a/app/src/androidTest/java/fga/mds/gpp/trezentos/View/StudentsFragmentInstrumentedTest.java +++ b/app/src/androidTest/java/fga/mds/gpp/trezentos/View/StudentsFragmentInstrumentedTest.java @@ -1,9 +1,13 @@ package fga.mds.gpp.trezentos.View; +import android.support.test.espresso.contrib.RecyclerViewActions; import android.support.test.espresso.matcher.ViewMatchers; import android.support.test.rule.ActivityTestRule; import android.test.ActivityInstrumentationTestCase2; import android.widget.ListView; +import android.widget.TextView; + +import junit.framework.Assert; import org.junit.Before; import org.junit.Rule; @@ -17,8 +21,12 @@ import static android.support.test.espresso.Espresso.onData; import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; +import static android.support.test.espresso.matcher.ViewMatchers.hasDescendant; import static android.support.test.espresso.matcher.ViewMatchers.withId; +import static android.support.test.espresso.matcher.ViewMatchers.withText; import static fga.mds.gpp.trezentos.R.id.frame; +import static fga.mds.gpp.trezentos.R.id.numberPicker1; +import static fga.mds.gpp.trezentos.R.id.recycler; import static junit.framework.Assert.assertNotNull; import static org.hamcrest.Matchers.anything; @@ -45,11 +53,9 @@ public void setUp() { @Test public void shouldValidateStudentsFragmentInitialization(){ - onView(withId(R.id.salas_item)) - .perform(click()); - onData(anything()).inAdapterView(withId(R.id.recycler)) - .atPosition(0).perform(click()); - onView(ViewMatchers.withText("STUDENTS")) + onView(withId(R.id.recycler)).perform(RecyclerViewActions + .actionOnItemAtPosition(5, click())); + onView(withText("STUDENTS")) .perform(click()); assertNotNull(classRule); @@ -87,16 +93,35 @@ public void shouldValidateStudentsFragmentInitialization(){ @Test public void shouldClickOnButtonStudent(){ - onView(withId(R.id.salas_item)) - .perform(click()); - onData(anything()).inAdapterView(withId(R.id.recycler)) - .atPosition(0).perform(click()); - onView(ViewMatchers.withText("STUDENTS")) - .perform(click()); + onView(withId(R.id.recycler)).perform(RecyclerViewActions + .actionOnItemAtPosition(5, click())); + onView(withText("STUDENTS")).perform(click()); onView(withId(R.id.floating_btn)).perform(click()); assertNotNull(classRule); } + @Test + public void shouldValidateFirstGrade(){ + onView(withId(R.id.recycler)).perform(RecyclerViewActions. + actionOnItemAtPosition(5, click())); + onView(withId(R.id.recyclerExam)).perform(RecyclerViewActions. + actionOnItemAtPosition(0, click())); + onView(withText("Nota")).perform(click()); + onView(withText("ok")).perform(click()); + //onView(withId(R.id.action_update_grades)).perform(click()); + } + + @Test + public void shouldValidateSecondGrade(){ + onView(withId(R.id.recycler)).perform(RecyclerViewActions. + actionOnItemAtPosition(5, click())); + onView(withId(R.id.recyclerExam)).perform(RecyclerViewActions. + actionOnItemAtPosition(0, click())); + onView(withText("Nota 300")).perform(click()); + onView(withText("ok")).perform(click()); + //onView(withId(R.id.action_update_trezentos_grades)).perform(click()); + } + } \ No newline at end of file diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java index f9c25c4..6dff2d4 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/ExamActivity.java @@ -109,8 +109,6 @@ public boolean onOptionsItemSelected(MenuItem item){ } catch (InterruptedException e) { e.printStackTrace(); } - - return true; }else if(ID == R.id.action_update_trezentos_grades) { UserExamControl userExamControl; userExamControl = UserExamControl.getInstance(getApplicationContext()); @@ -126,8 +124,6 @@ public boolean onOptionsItemSelected(MenuItem item){ } catch (ExecutionException e) { e.printStackTrace(); } - - return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java b/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java index eb9af60..02358d0 100644 --- a/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java +++ b/app/src/main/java/fga/mds/gpp/trezentos/View/StudentsFragment.java @@ -36,9 +36,6 @@ public class StudentsFragment extends Fragment { private UserClass userClass; private Exam userExam; private static HashMap mapEmailAndGrade = new HashMap<>(); - private boolean TREZENTOS_OPTION = false; - private boolean FIRST_GRADE_OPTION = false; - public StudentsFragment() { // Required empty public constructor @@ -220,15 +217,10 @@ public void onClick(View v) { mapEmailAndGrade.put(email, grade); - if (CLICK == 2) { - - } userExam.setFirstGrades(mapEmailAndGrade.toString()); Log.d("TAMANHOMAPA", userExam.getFirstGrades()); - FIRST_GRADE_OPTION = true; - d.dismiss(); } }); @@ -238,7 +230,6 @@ public void onClick(View v) { public void onClick(View v) { String EMAIL; String GRADE; - secondGradeTextView.setText(String.valueOf(np1.getValue()) + "." + String.valueOf(String.format ("%02d", np2.getValue()))); @@ -257,8 +248,6 @@ public void onClick(View v) { Log.d("TAMANHOMAPA", userExam.getSecondGrades()); - TREZENTOS_OPTION = true; - d.dismiss(); } }); @@ -309,12 +298,4 @@ public ArrayList arrangeMap(ArrayList students) { return students; } } - - public boolean button300Pressed(){ - return TREZENTOS_OPTION; - } - - public boolean buttonFirstGradePressed(){ - return FIRST_GRADE_OPTION; - } } \ No newline at end of file diff --git a/app/src/test/java/fga/mds/gpp/trezentos/Model/ExamTest.java b/app/src/test/java/fga/mds/gpp/trezentos/Model/ExamTest.java index 27da49e..322ca6b 100644 --- a/app/src/test/java/fga/mds/gpp/trezentos/Model/ExamTest.java +++ b/app/src/test/java/fga/mds/gpp/trezentos/Model/ExamTest.java @@ -36,4 +36,11 @@ public void shouldValidateExamConstructor() throws UserException { assertEquals("Calculo 1", exam.getUserClassName()); assertEquals("Joao123@email.com", exam.getClassOwnerEmail()); } + + @Test + public void shouldValidateSecondGrades() { + Exam exam = new Exam(); + exam.setSecondGrades("Teste300"); + assertEquals("Teste300", exam.getSecondGrades()); + } }