onReceive()の作成
1 parent 890dac3 commit 2c4e8fe0ce561bc4d303bd73d52f2558ed75f7a8
n-kande authored on 12 Nov 2019
Showing 3 changed files
View
9
app/src/main/java/com/example/cosmosclient/entities/RequestList.java
public Request getRequest(int index) {
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();
}
 
View
49
app/src/main/java/com/example/cosmosclient/services/NotificationDone.java
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;
import com.example.cosmosclient.resources.GroupsRest;
import retrofit2.Response;
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/")
// .baseUrl("http://10.0.2.2:8080/rest/")
.build();
//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<AddRequestsResponse> updateRequestCall = requestsService.updateRequest(group.getgId(), request.getrId(), request.getIssuer().getuId(), request.getProduct(), deadline, request.getLocation(), true, "token");
 
final Call<AddRequestsResponse> updateRequestCall = requestsService.updateRequest(gId, request.getrId(), request.getIssuer().getuId(), request.getProduct(), deadline, request.getLocation(), true, "token");
Response<AddRequestsResponse> response;
try {
response = updateRequestCall.execute();
if (response.isSuccessful()) {
View
30
app/src/test/java/com/example/cosmosclient/NotificationDoneTestMain.java
import java.util.List;
 
public class NotificationDoneTestMain {
public static void main(String[] args) {
//以下の変数は、変更したいリクエストに合わせて変更する必要があります。
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";
 
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";
 
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);
// 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);
}
}