diff --git a/app/src/main/java/com/example/cosmosclient/entities/RequestList.java b/app/src/main/java/com/example/cosmosclient/entities/RequestList.java index 3a5b319..1d84110 100644 --- a/app/src/main/java/com/example/cosmosclient/entities/RequestList.java +++ b/app/src/main/java/com/example/cosmosclient/entities/RequestList.java @@ -32,6 +32,15 @@ return requests.get(index); } + public Request getRequestById(String rId){ + for(Request request : this.getRequests()){ + if(request.getrId().equals(rId)){ + return request; + } + } + return null; + } + public void clearRequest() { requests.clear(); } diff --git a/app/src/main/java/com/example/cosmosclient/services/NotificationDone.java b/app/src/main/java/com/example/cosmosclient/services/NotificationDone.java index af74a0b..8191313 100644 --- a/app/src/main/java/com/example/cosmosclient/services/NotificationDone.java +++ b/app/src/main/java/com/example/cosmosclient/services/NotificationDone.java @@ -1,5 +1,10 @@ package com.example.cosmosclient.services; +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; + +import com.example.cosmosclient.app.Cosmos; import com.example.cosmosclient.entities.AddRequestsResponse; import com.example.cosmosclient.entities.Group; import com.example.cosmosclient.entities.Request; @@ -12,7 +17,7 @@ import retrofit2.Retrofit; import retrofit2.converter.jackson.JacksonConverterFactory; -public class NotificationDone { +public class NotificationDone extends BroadcastReceiver { //retrofitの処理 final Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/") @@ -22,20 +27,31 @@ //interfaceから実装を取得 final GroupsRest requestsService = retrofit.create(GroupsRest.class); - public NotificationDone(){ - + @Override + public void onReceive(Context context, Intent intent) { + Cosmos app = (Cosmos) context.getApplicationContext(); + String gId = intent.getExtras().getString("gId"); + Request editRequest = app.getGroup(gId).getRequestList().getRequestById(intent.getExtras().getString("gId")); + if(gId == null){ + System.out.println("error"); + return; + } + if(editRequest == null){ + System.out.println("cannot find Request"); + return; + } + doneRequest(gId, editRequest); } - - public void onClick(Notification notification){ - Group group = notification.getGroup(); - Request request = notification.getRequest(); - + //引数で受け取ったリクエストを達成する + public void doneRequest(String gId, Request request){ + //Date型のフォーマット設定 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 updateRequestCall = requestsService.updateRequest(group.getgId(), request.getrId(), request.getIssuer().getuId(), request.getProduct(), deadline, request.getLocation(), true, "token"); + + final Call updateRequestCall = requestsService.updateRequest(gId, request.getrId(), request.getIssuer().getuId(), request.getProduct(), deadline, request.getLocation(), true, "token"); Response response; try { response = updateRequestCall.execute(); diff --git a/app/src/test/java/com/example/cosmosclient/NotificationDoneTestMain.java b/app/src/test/java/com/example/cosmosclient/NotificationDoneTestMain.java index 86871a5..79a5bbe 100644 --- a/app/src/test/java/com/example/cosmosclient/NotificationDoneTestMain.java +++ b/app/src/test/java/com/example/cosmosclient/NotificationDoneTestMain.java @@ -12,17 +12,17 @@ public class NotificationDoneTestMain { public static void main(String[] args) { - NotificationDone notificationDone = new NotificationDone(); - //以下の変数だけは必要 - String rid = "432fde44-a965-4d1b-a83c-a28153925644"; - String rUri = "http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rset/groups/c824b232-2ee3-448d-97b7-eabf8ce1ffca/requests/432fde44-a965-4d1b-a83c-a28153925644"; - String product = "notificaion!!!!"; - int location = 205002; - String gid = "c824b232-2ee3-448d-97b7-eabf8ce1ffca"; - String issuerUid = "5dc6ca32-8fb9-4e2e-a8bc-6ea062a27465"; + //以下の変数は、変更したいリクエストに合わせて変更する必要があります。 + String rid = "a87c2716-0174-40bc-bb41-a1ce8b6009bb"; + String rUri = "http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rset/groups/909221c1-c343-405e-8b39-f0dbed60e48b/requests/a87c2716-0174-40bc-bb41-a1ce8b6009bb"; + String product = "mimiz"; + int location = 20501; + String gid = "909221c1-c343-405e-8b39-f0dbed60e48b"; + String issuerUid = "d3c73732-1287-4fa4-bb74-c9342be81fde"; - Notification notification = new Notification(new Request(rid, rUri, product, new Date(), new Date(), location, "name", false), new Group(gid, "uri", "name", "uId"), null); - notification.getRequest().setIssuer(new UserJsonforRequests("name", issuerUid, "uri", "iconUri")); - notificationDone.onClick(notification); + NotificationDone notificationDone = new NotificationDone(); +// Notification notification = new Notification(new Request(rid, rUri, product, new Date(), new Date(), location, "name", false), new Group(gid, "uri", "name", "uId"), null); + Request request = new Request(rid, rUri, product, new Date(), new Date(), location, "name", true); + notificationDone.doneRequest(gid, request); } } \ No newline at end of file