diff --git a/app/src/main/java/com/example/cosmosclient/app/Cosmos.java b/app/src/main/java/com/example/cosmosclient/app/Cosmos.java index 632820b..744c6d9 100644 --- a/app/src/main/java/com/example/cosmosclient/app/Cosmos.java +++ b/app/src/main/java/com/example/cosmosclient/app/Cosmos.java @@ -4,9 +4,12 @@ import com.example.cosmosclient.entities.Group; +import java.util.HashMap; + public class Cosmos extends Application { private String token=null; private Group curGroup=null; + private HashMap groups = new HashMap<>(); private String uId=null; //token処理 @@ -18,6 +21,7 @@ } //Group処理 + //再考 public void setCurrentGroup(Group g){ curGroup = g; } @@ -25,6 +29,17 @@ return curGroup; } + //再考 + public void setGroup(Group g) { + if(groups.get(g.getgId()) == null) { + String newGid = g.getgId(); + groups.put(newGid, g); + } + } + public Group getGroup(String gId) { + return groups.get(gId); + } + //uId処理 public void setuId(String uId){ this.uId = uId; diff --git a/app/src/main/java/com/example/cosmosclient/entities/Group.java b/app/src/main/java/com/example/cosmosclient/entities/Group.java index 9e728a3..1ee3c6d 100644 --- a/app/src/main/java/com/example/cosmosclient/entities/Group.java +++ b/app/src/main/java/com/example/cosmosclient/entities/Group.java @@ -1,5 +1,7 @@ package com.example.cosmosclient.entities; +import com.example.cosmosclient.entities.jsons.GroupJson; + import java.util.ArrayList; import java.util.Set; @@ -9,8 +11,7 @@ /* Userどうするか private ArrayList members; */ - //private ArrayList requests; - private Set requests; + private RequestList requestList; public Group(){ @@ -22,11 +23,17 @@ setName(name); } + public Group(GroupJson groupJson){ + setgId(groupJson.getgId()); + setUri(groupJson.getUri()); + setName(groupJson.getName()); + } + public String getgId() { return gId; } - private void setgId(String gId) { + public void setgId(String gId) { this.gId = gId; } @@ -54,21 +61,12 @@ return name; } - public Set getRequests(){ - return requests; + public RequestList getRequestList(){ + return requestList; } - public void setRequests(Set requests){ - this.requests = requests; - } - - public void addRequests(Request request){ - requests.add(request); - } - - public ArrayList getRequestsList(){ - ArrayList list = new ArrayList(getRequests()); - return list; + public void setRequestList(RequestList requestList){ + this.requestList = requestList; } /*メンバー*/ @@ -85,7 +83,4 @@ // members.remove(members.indexOf(uid)); // return null; //} - - /*リクエスト*/ - } diff --git a/app/src/main/java/com/example/cosmosclient/entities/RequestList.java b/app/src/main/java/com/example/cosmosclient/entities/RequestList.java new file mode 100644 index 0000000..3a50ea0 --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/entities/RequestList.java @@ -0,0 +1,49 @@ +package com.example.cosmosclient.entities; + +import java.util.List; + +public class RequestList { + private List requests; + + public RequestList() { + + } + + public RequestList(List requests) { + this.requests = requests; + } + + public List getRequests() { + return requests; + } + + public void setRequests(List requests) { + this.requests = requests; + } + + public void addRequests(Request r) { + requests.add(r); + } + + public Request getRequest(int index) { + return requests.get(index); + } + + public void clearRequest() { + requests.clear(); + } + + public void removeRequest(int index) { + requests.remove(index); + } + + public int getRequestCount() { + return requests.size(); + } + +// @Override +// public boolean equals(Object other) { +// if (!(other instanceof Container)) return false; +// return components.equals(((Container)other).components); +// } +} diff --git a/app/src/main/java/com/example/cosmosclient/entities/Requests.java b/app/src/main/java/com/example/cosmosclient/entities/Requests.java deleted file mode 100644 index df14a88..0000000 --- a/app/src/main/java/com/example/cosmosclient/entities/Requests.java +++ /dev/null @@ -1,52 +0,0 @@ -package com.example.cosmosclient.entities; - -import com.fasterxml.jackson.annotation.JsonIgnore; - -import java.util.ArrayList; -import java.util.List; - -public class Requests { - private List requests; - - public Requests() { - - } - - public Requests(List requests) { - this.requests = requests; - } - - public List getRequests() { - return requests; - } - - public void setRequests(List requests) { - this.requests = requests; - } - - public void addRequests(Request r) { - requests.add(r); - } - - public Request getRequest(int index) { - return requests.get(index); - } - - public void clearRequest() { - requests.clear(); - } - - public void removeRequest(int index) { - requests.remove(index); - } - - public int getRequestCount() { - return requests.size(); - } - -// @Override -// public boolean equals(Object other) { -// if (!(other instanceof Container)) return false; -// return components.equals(((Container)other).components); -// } -} diff --git a/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java index 1e62250..a424816 100644 --- a/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java +++ b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java @@ -1,16 +1,10 @@ package com.example.cosmosclient.resources; -import com.example.cosmosclient.entities.AddRequestsResponse; -import com.example.cosmosclient.entities.CreateGroupResponse; -import com.example.cosmosclient.entities.Group; import com.example.cosmosclient.entities.GroupListResponse; +import com.example.cosmosclient.entities.CreateGroupResponse; +import com.example.cosmosclient.entities.AddRequestsResponse; import com.example.cosmosclient.entities.MemberListResponse; -import com.example.cosmosclient.entities.Request; -import com.example.cosmosclient.entities.Requests; -import com.example.cosmosclient.entities.User; - -import java.util.ArrayList; -import java.util.Date; +import com.example.cosmosclient.entities.RequestList; import retrofit2.Call; import retrofit2.http.Field; @@ -35,14 +29,14 @@ Call addRequests(@Path("gId") String gId, @Field("uId") String uId, @Field("product") String product, @Field("deadline") String deadline, @Field("location") int location, @Field("token") String token); @GET("groups/{gId}/requests") - Call getRequestsListByGid(@Path("gId") String gId, @Query("token") String token, @Query("detail") boolean detail, @Query("quantity") int quantity); + Call getRequestsListByGid(@Path("gId") String gId, @Query("token") String token, @Query("detail") boolean detail, @Query("quantity") int quantity); @PUT("groups/{gId}/requests/{rId}") @FormUrlEncoded Call updateRequest(@Path("gId") String gId, @Path("rId") String rId, @Field("uId") String uId, @Field("product") String product, @Field("deadline") String deadline, @Field("location") int location, @Field("done") boolean done, @Field("token") String token); // @GET("{gId}/requests/{rId}") -// Call getRequestsDetailByGidAndRid(@Path("gid") String gid, @Path("rid") String rid, @Query("token") String token); +// Call getRequestsDetailByGidAndRid(@Path("gid") String gid, @Path("rid") String rid, @Query("token") String token); @GET("groups/{gId}/members") Call getMemberListByGid(@Path("gId") String gId, @Query("token") String token); diff --git a/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java b/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java index 386045f..72f62f1 100644 --- a/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java @@ -97,7 +97,7 @@ // Toast.makeText(GroupListActivity.this, parent.getAdapter().getItem(position).toString(), // Toast.LENGTH_SHORT).show(); GroupJson group = result.getGroups().get(position); -// app.setCurrentGroup(new Group(group)); + ((Cosmos)getApplication()).setCurrentGroup(new Group(group)); Intent intent=new Intent(GroupListActivity.this, com.example.cosmosclient.views.RequestListActivity.class); startActivity(intent); diff --git a/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java b/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java index ed8ce4c..38cdbd7 100644 --- a/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java @@ -29,7 +29,7 @@ import com.example.cosmosclient.app.Cosmos; import com.example.cosmosclient.entities.AddRequestsResponse; import com.example.cosmosclient.entities.Request; -import com.example.cosmosclient.entities.Requests; +import com.example.cosmosclient.entities.RequestList; import com.example.cosmosclient.resources.GroupsRest; import com.example.cosmosclient.yolp.Yolp; @@ -67,7 +67,7 @@ Toast toast; //動作テスト用 //Request List - Requests requests; + RequestList requestList; //Color制御 boolean productColorFlag = true; //買うもの (true:白, false:黒) @@ -106,7 +106,7 @@ product.setColorFilter(null); productColorFlag = true; ResetRequestListTable(); - AddRequestListTable(requests); + AddRequestListTable(requestList); } else { if(deadlineRotationFlag) { deadlineRotationFlag = false; @@ -140,7 +140,7 @@ deadline.setColorFilter(null); deadlineColorFlag = true; ResetRequestListTable(); - AddRequestListTable(requests); + AddRequestListTable(requestList); if(!deadlineRotationFlag) { deadline.setRotation(0); } @@ -181,7 +181,7 @@ location.setColorFilter(null); locationColorFlag = true; ResetRequestListTable(); - AddRequestListTable(requests); + AddRequestListTable(requestList); } else { if(deadlineRotationFlag) { deadlineRotationFlag = false; @@ -215,7 +215,7 @@ name.setColorFilter(null); nameColorFlag = true; ResetRequestListTable(); - AddRequestListTable(requests); + AddRequestListTable(requestList); } else { if(deadlineRotationFlag) { deadlineRotationFlag = false; @@ -286,13 +286,13 @@ final String token = app.getToken(); for(Integer i : selectedRequestList.keySet()) { - Request request = requests.getRequest(i - 1); + Request request = requestList.getRequest(i - 1); String deadline = null; if(request.getDeadline() != null) { deadline = String.format("%d-%02d-%02d %02d:%02d:%02d", request.getDeadline().getYear(), request.getDeadline().getMonth() + 1, request.getDeadline().getDate() + 1, 23, 59, 59); } final Call updateReqestCall = requestsService.updateRequest(gId, request.getrId(), uId, request.getProduct(), deadline, request.getLocation(), true, token); - requests.removeRequest(i - 1); + requestList.removeRequest(i - 1); //サーバからのレスポンス updateReqestCall.enqueue(new Callback() { @@ -304,7 +304,7 @@ Toast.makeText(RequestListActivity.this, "RequestListを達成しました", Toast.LENGTH_SHORT).show(); ResetRequestListTable(); - AddRequestListTable(requests); + AddRequestListTable(requestList); } else { try { System.out.println(response.errorBody().string()); @@ -431,36 +431,27 @@ protected void onStart() { super.onStart(); - //retrofitの処理 -// final Retrofit retrofit = new Retrofit.Builder() -//// .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/") -// .baseUrl("http://10.0.2.2:8080/") -// .addConverterFactory(JacksonConverterFactory.create()) -// .build(); - -// //interfaceから実装を取得 -// final GroupsRest requestsService = retrofit.create(GroupsRest.class); - //RequestList取得するための必要な情報 - Cosmos app = (Cosmos) getApplication(); + final Cosmos app = (Cosmos) getApplication(); final String gId = app.getCurentGroup().getgId(); final String token = app.getToken(); final boolean detail = true; int quantity = 20; - final Call requestsListByGidCall = requestsService.getRequestsListByGid(gId, token, detail, quantity); + final Call requestsListByGidCall = requestsService.getRequestsListByGid(gId, token, detail, quantity); //サーバからのレスポンス - requestsListByGidCall.enqueue(new Callback() { + requestsListByGidCall.enqueue(new Callback() { //成功時 @Override - public void onResponse(Call call, Response response) { + public void onResponse(Call call, Response response) { if (response.isSuccessful()) { TimeZone.setDefault(TimeZone.getTimeZone("Asia/Tokyo")); - requests = response.body(); + requestList = response.body(); + app.getCurentGroup().setRequestList(requestList); //Add RequestList Table - AddRequestListTable(requests); + AddRequestListTable(requestList); Toast.makeText(RequestListActivity.this, "RequestListを取得しました", Toast.LENGTH_SHORT).show(); } else { @@ -476,7 +467,7 @@ //失敗時 @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(Call call, Throwable t) { t.printStackTrace(); Toast.makeText(RequestListActivity.this, "RequestListの取得失敗しました", Toast.LENGTH_SHORT).show(); } @@ -490,10 +481,10 @@ ResetRequestListTable(); - requests.clearRequest(); + requestList.clearRequest(); // //Add RequestList Table -// AddRequestListTable(requests); +// AddRequestListTable(requestList); } @SuppressWarnings("StatementWithEmptyBody") @@ -524,21 +515,21 @@ return true; } - private int ConvertMonth(int i, Requests requests) { - return requests.getRequest(i).getDeadline().getMonth() + 1; + private int ConvertMonth(int i, RequestList requestList) { + return requestList.getRequest(i).getDeadline().getMonth() + 1; } @TargetApi(Build.VERSION_CODES.O) - private void AddRequestListTable(Requests requests) { + private void AddRequestListTable(RequestList requestList) { Date now = new Date(); // TableLayout requesttable = (TableLayout)findViewById(R.id.RequestList); requesttable.setShrinkAllColumns(true); - for (int i = 0; i < requests.getRequestCount(); i++) { + for (int i = 0; i < requestList.getRequestCount(); i++) { TableRow tableRow = new TableRow(this); TextView textProduct = new TextView(this); - textProduct.setText(requests.getRequest(i).getProduct()); + textProduct.setText(requestList.getRequest(i).getProduct()); textProduct.setTextSize(20); textProduct.setHeight(150); textProduct.setGravity(Gravity.CENTER); @@ -554,8 +545,8 @@ // if (requestList.get(i).getDeadline().getMonth() == now.getMonth() && requestList.get(i).getDeadline().getDate() - now.getDate() == 1) { // textDeadline.setText("明日まで"); // } - if(requests.getRequest(i).getDeadline() != null) { - textDeadline.setText(ConvertMonth(i, requests) + "/" + requests.getRequest(i).getDeadline().getDate()); + if(requestList.getRequest(i).getDeadline() != null) { + textDeadline.setText(ConvertMonth(i, requestList) + "/" + requestList.getRequest(i).getDeadline().getDate()); } // textDeadline.setText(now.getMonth() + "/" + now.getDate()); textDeadline.setTextSize(20); @@ -564,8 +555,8 @@ tableRow.addView(textDeadline, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT)); TextView textLocation = new TextView(this); - if(Yolp.getInstance().getSubCategoryByCode(requests.getRequest(i).getLocation()) != null) { - textLocation.setText(Yolp.getInstance().getSubCategoryByCode(requests.getRequest(i).getLocation()).getSubName()); + if(Yolp.getInstance().getSubCategoryByCode(requestList.getRequest(i).getLocation()) != null) { + textLocation.setText(Yolp.getInstance().getSubCategoryByCode(requestList.getRequest(i).getLocation()).getSubName()); } textLocation.setTextSize(20); @@ -574,7 +565,7 @@ tableRow.addView(textLocation, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT)); TextView textName = new TextView(this); - textName.setText(requests.getRequest(i).getIssuer().getName()); + textName.setText(requestList.getRequest(i).getIssuer().getName()); textName.setTextSize(20); textName.setHeight(150); textName.setGravity(Gravity.CENTER); @@ -597,38 +588,38 @@ } } - private Requests SortProduct() { - List productsortRequestlist = (List) requests.getRequests(); + private RequestList SortProduct() { + List productsortRequestlist = (List) requestList.getRequests(); Collections.sort(productsortRequestlist, productSortComparator); - return new Requests(productsortRequestlist); + return new RequestList(productsortRequestlist); } - private Requests SortDeadline() { - List deadlinesortRequestlist = (List) requests.getRequests(); + private RequestList SortDeadline() { + List deadlinesortRequestlist = (List) requestList.getRequests(); Collections.sort(deadlinesortRequestlist, deadlineSortComparator); - return new Requests(deadlinesortRequestlist); + return new RequestList(deadlinesortRequestlist); } - private Requests ReverseDeadline() { - List deadlinesortRequestlist = (List) requests.getRequests(); + private RequestList ReverseDeadline() { + List deadlinesortRequestlist = (List) requestList.getRequests(); Collections.sort(deadlinesortRequestlist, deadlineReverseComparator); - return new Requests(deadlinesortRequestlist); + return new RequestList(deadlinesortRequestlist); } - private Requests SortLocation() { - List locationsortRequestlist = (List) requests.getRequests(); + private RequestList SortLocation() { + List locationsortRequestlist = (List) requestList.getRequests(); Collections.sort(locationsortRequestlist, locationSortComparator); - return new Requests(locationsortRequestlist); + return new RequestList(locationsortRequestlist); } - private Requests SortName() { - List namesortRequestlist = (List) requests.getRequests(); + private RequestList SortName() { + List namesortRequestlist = (List) requestList.getRequests(); Collections.sort(namesortRequestlist, nameSortComparator); - return new Requests(namesortRequestlist); + return new RequestList(namesortRequestlist); } } \ No newline at end of file