diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000..681f41a
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f677df0..85fa6bb 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -83,6 +83,12 @@
+
+
+
+
+
+
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..8ae645b 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 : 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/CosmosBackgroundService.java b/app/src/main/java/com/example/cosmosclient/services/CosmosBackgroundService.java
index 14935c6..92d5bcc 100644
--- a/app/src/main/java/com/example/cosmosclient/services/CosmosBackgroundService.java
+++ b/app/src/main/java/com/example/cosmosclient/services/CosmosBackgroundService.java
@@ -44,6 +44,7 @@
import java.util.TimeZone;
import java.util.Timer;
import java.util.TimerTask;
+import java.util.UUID;
import retrofit2.Call;
import retrofit2.Callback;
@@ -51,6 +52,8 @@
import retrofit2.Retrofit;
import retrofit2.converter.jackson.JacksonConverterFactory;
+import static android.app.Notification.EXTRA_NOTIFICATION_ID;
+
public class CosmosBackgroundService extends IntentService implements LocationListener {
private Context context;
@@ -263,12 +266,17 @@
private void sendNotifications(CosmosBackgroundService cosmosBackgroundService, List notifications) {
int notificationId = 1;
-// MainActivity→broadcastreseiver(?)に変更
-// Intent intent = new Intent(cosmosBackgroundService, MainActivity.class);
-// 以下二行はボタンについてだよ
-// PendingIntent pendingIntent = PendingIntent.getActivity(cosmosBackgroundService, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
-// android.app.Notification.Action action = new android.app.Notification.Action(R.drawable.notification_icon, "ボタンだよ", pendingIntent);
+ //以下はボタンについてだよ
+ Intent intent = new Intent(cosmosBackgroundService, NotificationDone.class);
+ //snoozeIntent.setAction(ACTION_NOTIFICATION_OFF);
+ intent.putExtra(EXTRA_NOTIFICATION_ID, 0);
+ //以下2行はテスト用。本来はNotificationから取ってくる。
+ intent.putExtra("gId", UUID.randomUUID().toString());
+ intent.putExtra("rId", "rid2");
+ int randamCode = (int)(Math.random()*100000);
+ PendingIntent pendingIntent = PendingIntent.getBroadcast(cosmosBackgroundService, randamCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+// android.app.Notification.Action action = new android.app.Notification.Action(R.drawable.notification_icon, "ボタンだよ", pendingIntent);
android.app.Notification notification = new android.app.Notification.Builder(cosmosBackgroundService)
.setContentTitle("通知タイトル")
.setContentText("通知ないよう")
diff --git a/app/src/main/java/com/example/cosmosclient/services/NotificationDone.java b/app/src/main/java/com/example/cosmosclient/services/NotificationDone.java
new file mode 100644
index 0000000..af55e7c
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/services/NotificationDone.java
@@ -0,0 +1,86 @@
+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 java.io.IOException;
+
+import retrofit2.Call;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.jackson.JacksonConverterFactory;
+
+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/")
+ .addConverterFactory(JacksonConverterFactory.create())
+ .build();
+ //interfaceから実装を取得
+ final GroupsRest requestsService = retrofit.create(GroupsRest.class);
+
+ @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("rId"));
+ if(gId == null){
+ System.out.println("error");
+ return;
+ }
+ if(editRequest == null){
+ System.out.println("cannot find Request");
+ return;
+ }
+ doneRequest(gId, editRequest);
+ }
+
+ //引数で受け取ったリクエストを達成する
+ 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(gId, request.getrId(), request.getIssuer().getuId(), request.getProduct(), deadline, request.getLocation(), true, "token");
+ Response response;
+ try {
+ response = updateRequestCall.execute();
+ if (response.isSuccessful()) {
+ AddRequestsResponse result = response.body();
+// Toast.makeText(RequestListActivity.this, "RequestListを達成しました", Toast.LENGTH_SHORT).show();
+// requestList.removeRequests(selectedRequestList);
+// handler.post(new Runnable() {
+// @Override
+// public void run() {
+// ResetRequestListTable();
+// AddRequestListTable(requestList);
+// }
+// });
+ } else {
+ // onFailure
+ try {
+ System.out.println(response.errorBody().string());
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ //onFailureでキャッチできないエラーの処理
+// Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+// Toast.makeText(RequestListActivity.this, "RequestListの達成失敗しました", Toast.LENGTH_SHORT).show();
+
+ }
+ }
+}
diff --git a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java
index bafa874..8db61a1 100644
--- a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java
@@ -216,23 +216,23 @@
@Override
public void afterTextChanged(Editable s){
+ final int maxStringLength = 21;
switch(view.getId()) {
case R.id.NameText:
- if (s.length() > 0) {
+ if (0 < s.length() && s.length() < maxStringLength){
nameEnable = true;
- } else {
- nameEnable = false;
+ } else { nameEnable = false;
}
break;
case R.id.PasswordText:
- if(s.length()>0){
+ if(0 < s.length() && s.length() < maxStringLength){
pwEnable=true;
}else{
pwEnable=false;
}
break;
case R.id.ConfirmPasswordText:
- if(s.length()>0){
+ if(0 < s.length() && s.length() < maxStringLength){
cpwEnable=true;
}else{
cpwEnable=false;
diff --git a/app/src/test/java/com/example/cosmosclient/NotificationDoneTestMain.java b/app/src/test/java/com/example/cosmosclient/NotificationDoneTestMain.java
new file mode 100644
index 0000000..79a5bbe
--- /dev/null
+++ b/app/src/test/java/com/example/cosmosclient/NotificationDoneTestMain.java
@@ -0,0 +1,28 @@
+package com.example.cosmosclient;
+
+import com.example.cosmosclient.entities.Feature;
+import com.example.cosmosclient.entities.Group;
+import com.example.cosmosclient.entities.Request;
+import com.example.cosmosclient.entities.UserJsonforRequests;
+import com.example.cosmosclient.services.Notification;
+import com.example.cosmosclient.services.NotificationDone;
+
+import java.util.Date;
+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();
+// 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