Merge pull request #57 from nitta-lab-2019/RequestList
RequestList
確認しました。
commit 71e8235f94f1f353053bf0d94853f2c52d2b70a7
2 parents ed896fa + 20ce0b1
Tomomi Sugisawa authored on 15 Oct 2019
Showing 7 changed files
View
15
app/src/main/java/com/example/cosmosclient/app/Cosmos.java
import android.app.Application;
 
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<String, Group> groups = new HashMap<>();
private String uId=null;
 
//token処理
public void setToken(String token){
return token;
}
 
//Group処理
//再考
public void setCurrentGroup(Group g){
curGroup = g;
}
public Group getCurentGroup(){
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){
View
43
app/src/main/java/com/example/cosmosclient/entities/Group.java
package com.example.cosmosclient.entities;
 
import com.example.cosmosclient.entities.jsons.GroupJson;
 
import java.util.ArrayList;
import java.util.Set;
 
private String uri, name;
/* Userどうするか
private ArrayList<User> members;
*/
//private ArrayList<Request> requests;
private Set<Request> requests;
private RequestList requestList;
 
public Group(){
 
}
setUri(uri);
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;
}
 
public String getUri() {
public String getNameByGid(String gId){
return name;
}
 
public Set<Request> getRequests(){
return requests;
public RequestList getRequestList(){
return requestList;
}
 
public void setRequests(Set<Request> requests){
this.requests = requests;
}
 
public void addRequests(Request request){
requests.add(request);
}
 
public ArrayList<Request> getRequestsList(){
ArrayList<Request> list = new ArrayList<Request>(getRequests());
return list;
public void setRequestList(RequestList requestList){
this.requestList = requestList;
}
 
/*メンバー*/
//public ArrayList<User> getMembersList(){
//public DeleteResult deleteMember(String uid){
// members.remove(members.indexOf(uid));
// return null;
//}
 
/*リクエスト*/
 
}
View
50
app/src/main/java/com/example/cosmosclient/entities/RequestList.java 0 → 100644
package com.example.cosmosclient.entities;
 
import java.util.List;
 
public class RequestList {
private List<Request> requests;
 
public RequestList() {
 
}
 
public RequestList(List<Request> requests) {
this.requests = requests;
}
 
public List<Request> getRequests() {
return requests;
}
 
public void setRequests(List<Request> 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);
// }
}
View
53
app/src/main/java/com/example/cosmosclient/entities/Requests.java 100644 → 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<Request> requests;
 
public Requests() {
 
}
 
public Requests(List<Request> requests) {
this.requests = requests;
}
 
public List<Request> getRequests() {
return requests;
}
 
public void setRequests(List<Request> 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);
// }
}
View
21
app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java
package com.example.cosmosclient.resources;
 
import com.example.cosmosclient.entities.GroupListResponse;
import com.example.cosmosclient.entities.CreateGroupResponse;
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.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;
import retrofit2.http.FormUrlEncoded;
@FormUrlEncoded
Call<AddRequestsResponse> 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<Requests> getRequestsListByGid(@Path("gId") String gId, @Query("token") String token, @Query("detail") boolean detail, @Query("quantity") int quantity);
Call<RequestList> getRequestsListByGid(@Path("gId") String gId, @Query("token") String token, @Query("detail") boolean detail, @Query("quantity") int quantity);
 
@PUT("groups/{gId}/requests/{rId}")
@FormUrlEncoded
Call<AddRequestsResponse> 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<Request> getRequestsDetailByGidAndRid(@Path("gid") String gid, @Path("rid") String rid, @Query("token") String token);
// Call<RequestList> getRequestsDetailByGidAndRid(@Path("gid") String gid, @Path("rid") String rid, @Query("token") String token);
 
@GET("groups/{gId}/members")
Call<MemberListResponse> getMemberListByGid(@Path("gId") String gId, @Query("token") String token);
 
View
2
■■■
app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 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);
}
View
114
app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java
import com.example.cosmosclient.R;
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;
 
import java.io.IOException;
 
Toast toast; //動作テスト用
 
//Request List
Requests requests;
RequestList requestList;
 
//Color制御
boolean productColorFlag = true; //買うもの (true:白, false:黒)
boolean deadlineColorFlag = true; //購入期限
if (!productColorFlag) {
product.setColorFilter(null);
productColorFlag = true;
ResetRequestListTable();
AddRequestListTable(requests);
AddRequestListTable(requestList);
} else {
if(deadlineRotationFlag) {
deadlineRotationFlag = false;
} else {
if (!deadlineColorFlag) {
deadline.setColorFilter(null);
deadlineColorFlag = true;
ResetRequestListTable();
AddRequestListTable(requests);
AddRequestListTable(requestList);
if(!deadlineRotationFlag) {
deadline.setRotation(0);
}
} else {
if (!locationColorFlag) {
location.setColorFilter(null);
locationColorFlag = true;
ResetRequestListTable();
AddRequestListTable(requests);
AddRequestListTable(requestList);
} else {
if(deadlineRotationFlag) {
deadlineRotationFlag = false;
} else {
if (!nameColorFlag) {
name.setColorFilter(null);
nameColorFlag = true;
ResetRequestListTable();
AddRequestListTable(requests);
AddRequestListTable(requestList);
} else {
if(deadlineRotationFlag) {
deadlineRotationFlag = false;
} else {
final String uId = app.getuId();
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<AddRequestsResponse> 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<AddRequestsResponse>() {
//成功時
AddRequestsResponse result = response.body();
Toast.makeText(RequestListActivity.this, "RequestListを達成しました", Toast.LENGTH_SHORT).show();
 
ResetRequestListTable();
AddRequestListTable(requests);
AddRequestListTable(requestList);
} else {
try {
System.out.println(response.errorBody().string());
} catch (IOException e) {
@Override
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<Requests> requestsListByGidCall = requestsService.getRequestsListByGid(gId, token, detail, quantity);
final Call<RequestList> requestsListByGidCall = requestsService.getRequestsListByGid(gId, token, detail, quantity);
 
//サーバからのレスポンス
requestsListByGidCall.enqueue(new Callback<Requests>() {
requestsListByGidCall.enqueue(new Callback<RequestList>() {
//成功時
@Override
public void onResponse(Call<Requests> call, Response<Requests> response) {
public void onResponse(Call<RequestList> call, Response<RequestList> 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 {
try {
}
 
//失敗時
@Override
public void onFailure(Call<Requests> call, Throwable t) {
public void onFailure(Call<RequestList> call, Throwable t) {
t.printStackTrace();
Toast.makeText(RequestListActivity.this, "RequestListの取得失敗しました", Toast.LENGTH_SHORT).show();
}
});
super.onRestart();
 
ResetRequestListTable();
 
requests.clearRequest();
requestList.clearRequest();
 
// //Add RequestList Table
// AddRequestListTable(requests);
// AddRequestListTable(requestList);
}
 
@SuppressWarnings("StatementWithEmptyBody")
@Override
requestlistDrawer.closeDrawer(GravityCompat.START);
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);
tableRow.addView(textProduct, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT));
// }
// 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);
textDeadline.setHeight(150);
textDeadline.setGravity(Gravity.CENTER);
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);
textLocation.setHeight(150);
textLocation.setGravity(Gravity.CENTER);
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);
tableRow.addView(textName, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT));
requesttable.removeViews(1, childCount - 1);
}
}
 
private Requests SortProduct() {
List<Request> productsortRequestlist = (List<Request>) requests.getRequests();
private RequestList SortProduct() {
List<Request> productsortRequestlist = (List<Request>) requestList.getRequests();
 
Collections.sort(productsortRequestlist, productSortComparator);
return new Requests(productsortRequestlist);
}
 
private Requests SortDeadline() {
List<Request> deadlinesortRequestlist = (List<Request>) requests.getRequests();
return new RequestList(productsortRequestlist);
}
 
private RequestList SortDeadline() {
List<Request> deadlinesortRequestlist = (List<Request>) requestList.getRequests();
 
Collections.sort(deadlinesortRequestlist, deadlineSortComparator);
return new Requests(deadlinesortRequestlist);
}
 
private Requests ReverseDeadline() {
List<Request> deadlinesortRequestlist = (List<Request>) requests.getRequests();
return new RequestList(deadlinesortRequestlist);
}
 
private RequestList ReverseDeadline() {
List<Request> deadlinesortRequestlist = (List<Request>) requestList.getRequests();
 
Collections.sort(deadlinesortRequestlist, deadlineReverseComparator);
return new Requests(deadlinesortRequestlist);
}
 
private Requests SortLocation() {
List<Request> locationsortRequestlist = (List<Request>) requests.getRequests();
return new RequestList(deadlinesortRequestlist);
}
 
private RequestList SortLocation() {
List<Request> locationsortRequestlist = (List<Request>) requestList.getRequests();
 
Collections.sort(locationsortRequestlist, locationSortComparator);
return new Requests(locationsortRequestlist);
}
 
private Requests SortName() {
List<Request> namesortRequestlist = (List<Request>) requests.getRequests();
return new RequestList(locationsortRequestlist);
}
 
private RequestList SortName() {
List<Request> namesortRequestlist = (List<Request>) requestList.getRequests();
 
Collections.sort(namesortRequestlist, nameSortComparator);
return new Requests(namesortRequestlist);
return new RequestList(namesortRequestlist);
}
}