diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b5ad990..9919eb8 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -2,21 +2,24 @@
-
+
-
+
+
@@ -68,13 +71,18 @@
android:label="メンバー追加" />
+
-
-
+
+
+
+
\ No newline at end of file
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 7eee198..ede712b 100644
--- a/app/src/main/java/com/example/cosmosclient/app/Cosmos.java
+++ b/app/src/main/java/com/example/cosmosclient/app/Cosmos.java
@@ -8,9 +8,12 @@
import java.util.HashMap;
+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;
private HashMap areaInfo = new HashMap<>();
@@ -18,22 +21,38 @@
public void setToken(String token){
this.token = token;
}
+
public String getToken(){
return token;
}
- //Group処理
+ //currentGroup処理
public void setCurrentGroup(Group g){
- curGroup = g;
+ setGroup(g);
+ curGroup = groups.get(g.getgId());
}
+
public Group getCurentGroup(){
return curGroup;
}
+ //Group処理
+ public void setGroup(Group g) {
+ if (!groups.containsKey(g.getgId())) {
+ 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;
}
+
public String getuId(){
return 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/GroupListResponse.java b/app/src/main/java/com/example/cosmosclient/entities/GroupListResponse.java
new file mode 100644
index 0000000..9af528b
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/entities/GroupListResponse.java
@@ -0,0 +1,48 @@
+package com.example.cosmosclient.entities;
+
+import com.example.cosmosclient.entities.jsons.GroupJson;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import java.util.List;
+//@JsonIgnoreProperties(ignoreUnknown = true)
+
+public class GroupListResponse {
+ private List groups;
+
+ public GroupListResponse() {
+
+ }
+
+ public GroupListResponse(List groups) {
+ this.groups = groups;
+ }
+
+ public List getGroups() {
+ return groups;
+ }
+
+ public void setGroups(List groups) {
+ this.groups = groups;
+ }
+
+ public void addGroup(GroupJson g) {
+ groups.add(g);
+ }
+
+ public GroupJson getGroup(int index) {
+ return groups.get(index);
+ }
+
+ public void clearGroup() {
+ groups.clear();
+ }
+
+ public void removeGroup(int index) {
+ groups.remove(index);
+ }
+
+ public int getGroupCount() {
+ return groups.size();
+ }
+
+}
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..5175c2f
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/entities/RequestList.java
@@ -0,0 +1,52 @@
+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 addRequest(Request r) {
+ requests.add(r);
+ }
+
+// public void addRequests(List requests) {
+// requests.addAll(requests);
+// }
+
+ 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/entities/UserResponse.java b/app/src/main/java/com/example/cosmosclient/entities/UserResponse.java
new file mode 100644
index 0000000..28cb151
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/entities/UserResponse.java
@@ -0,0 +1,6 @@
+package com.example.cosmosclient.entities;
+
+public class UserResponse {
+ public String name;
+ public String iconUri;
+}
diff --git a/app/src/main/java/com/example/cosmosclient/entities/jsons/GroupJson.java b/app/src/main/java/com/example/cosmosclient/entities/jsons/GroupJson.java
new file mode 100644
index 0000000..9264728
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/entities/jsons/GroupJson.java
@@ -0,0 +1,35 @@
+package com.example.cosmosclient.entities.jsons;
+
+public class GroupJson {
+ private String name;
+ private String gId;
+ private String uri;
+
+ public String getgId() {
+ return gId;
+ }
+
+ public void setgId(String gId) {
+ this.gId = gId;
+ }
+
+ public String getUri() {
+ return uri;
+ }
+
+ public void setUri(String uri){
+ this.uri = uri;
+ }
+
+ public void setName(String name){
+ this.name = name;
+ }
+
+ public String getName(){
+ return name;
+ }
+
+ public String toString() {
+ return name;
+ }
+}
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 adfd574..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,15 +1,10 @@
package com.example.cosmosclient.resources;
-import com.example.cosmosclient.entities.AddRequestsResponse;
+import com.example.cosmosclient.entities.GroupListResponse;
import com.example.cosmosclient.entities.CreateGroupResponse;
-import com.example.cosmosclient.entities.Group;
+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;
@@ -22,6 +17,9 @@
public interface GroupsRest {
+ @GET("groups")
+ Call getGroups(@Query("uId") String uId, @Query("token") String token);
+
@POST("groups")
@FormUrlEncoded
Call createGroup(@Field("name") String name, @Field("uId") String uId, @Field("token") String token);
@@ -31,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/resources/UsersRest.java b/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java
index 608b4f8..55e6651 100644
--- a/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java
+++ b/app/src/main/java/com/example/cosmosclient/resources/UsersRest.java
@@ -2,10 +2,12 @@
import com.example.cosmosclient.entities.SigninResponse;
import com.example.cosmosclient.entities.SignupResponse;
+import com.example.cosmosclient.entities.UserResponse;
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
@@ -15,6 +17,9 @@
@FormUrlEncoded
Call login(@Path("uId") String uId,@Field("pw") String pw);
+ @GET("users/{uId}")
+ Call getName(@Path("uId") String uId, @Query("token") String token);
+
@POST("users")
@FormUrlEncoded
Call createUser(@Field("name") String name, @Field("pw") String pw, @Field("iconImage") String icon_image);
diff --git a/app/src/main/java/com/example/cosmosclient/services/CosomosBackgroundService.java b/app/src/main/java/com/example/cosmosclient/services/CosomosBackgroundService.java
new file mode 100644
index 0000000..4ce93a6
--- /dev/null
+++ b/app/src/main/java/com/example/cosmosclient/services/CosomosBackgroundService.java
@@ -0,0 +1,178 @@
+package com.example.cosmosclient.services;
+
+import android.Manifest;
+import android.app.IntentService;
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.graphics.Color;
+import android.location.Location;
+import android.location.LocationListener;
+import android.location.LocationManager;
+import android.os.Build;
+import android.os.Bundle;
+import android.support.annotation.RequiresApi;
+import android.support.v4.app.ActivityCompat;
+import android.util.Log;
+
+import com.example.cosmosclient.R;
+
+
+public class CosomosBackgroundService extends IntentService implements LocationListener {
+ private Context context;
+ private LocationManager locationManager;
+
+ public CosomosBackgroundService() {
+ super("CosomosBackgroundService");
+ }
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ Log.d("debug", "onCreate");
+ context = getApplicationContext();
+ // LocationManager インスタンス生成
+ locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
+ }
+
+ @RequiresApi(api = Build.VERSION_CODES.O)
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+
+ Log.d("debug", "onStartCommand");
+
+// Thread thread = new Thread() {
+// public void run() {
+// int count = 10;
+//
+// try {
+// for(int i=0 ; i< count ; i++) {
+// Thread.sleep(1000);
+//
+// Log.d("debug", "sleep: " + String.valueOf(i));
+// }
+//
+// } catch (InterruptedException e) {
+// Thread.currentThread().interrupt();
+// }
+// }
+// };
+// thread.start();
+ int requestCode = 0;
+ String channelId = "default";
+ String title = context.getString(R.string.app_name);
+ PendingIntent pendingIntent =
+ PendingIntent.getActivity(context, requestCode,
+ intent, PendingIntent.FLAG_UPDATE_CURRENT);
+ // ForegroundにするためNotificationが必要、Contextを設定
+ NotificationManager notificationManager =
+ (NotificationManager)context.
+ getSystemService(Context.NOTIFICATION_SERVICE);
+ // Notification Channel 設定
+ NotificationChannel channel = new NotificationChannel(
+ channelId, title , NotificationManager.IMPORTANCE_DEFAULT);
+ channel.setDescription("Silent Notification");
+ // 通知音を消さないと毎回通知音が出てしまう
+ // この辺りの設定はcleanにしてから変更
+ channel.setSound(null,null);
+ // 通知ランプを消す
+ channel.enableLights(false);
+ channel.setLightColor(Color.BLUE);
+ // 通知バイブレーション無し
+ channel.enableVibration(false);
+ if(notificationManager != null) {
+ notificationManager.createNotificationChannel(channel);
+ Notification notification = new Notification.Builder(context, channelId)
+ .setContentTitle(title)
+ // 本来なら衛星のアイコンですがandroid標準アイコンを設定
+ .setSmallIcon(android.R.drawable.btn_star)
+ .setContentText("GPS")
+ .setAutoCancel(true)
+ .setContentIntent(pendingIntent)
+ .setWhen(System.currentTimeMillis())
+ .build();
+
+ // startForeground
+ startForeground(1, notification);
+ }
+// startGPS();
+
+ return super.onStartCommand(intent,flags,startId);
+ }
+
+ @Override
+ protected void onHandleIntent(Intent intent) {
+
+ Log.d("debug", "onHandleIntent");
+ int count = 10;
+
+ try {
+ for(int i=0 ; i< count ; i++) {
+ Thread.sleep(1000);
+
+ Log.d("debug", "sleep: " + String.valueOf(i));
+ }
+
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ }
+// protected void startGPS() {
+// StringBuilder strBuf = new StringBuilder();
+// strBuf.append("startGPS\n");
+//
+// final boolean gpsEnabled
+// = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
+// if (!gpsEnabled) {
+// // GPSを設定するように促す
+// enableLocationSettings();
+// }
+//
+// if (locationManager != null) {
+// try {
+// if (ActivityCompat.checkSelfPermission(this,
+// Manifest.permission.ACCESS_FINE_LOCATION)!=
+// PackageManager.PERMISSION_GRANTED) {
+// return;
+// }
+//
+// locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
+// MinTime, MinDistance, this);
+// } catch (Exception e) {
+// e.printStackTrace();
+// }
+// } else {
+// strBuf.append("locationManager=null\n");
+// }
+// }
+ @Override
+ public void onDestroy() {
+ Log.d("debug", "onDestroy");
+
+ super.onDestroy();
+ }
+
+ @Override
+ public void onLocationChanged(Location location) {
+
+ }
+
+ @Override
+ public void onStatusChanged(String provider, int status, Bundle extras) {
+
+ }
+
+ @Override
+ public void onProviderEnabled(String provider) {
+
+ }
+
+ @Override
+ public void onProviderDisabled(String provider) {
+
+ }
+}
diff --git a/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java b/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java
index 0446342..857101d 100644
--- a/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java
@@ -1,5 +1,6 @@
package com.example.cosmosclient.views;
+import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.net.Uri;
@@ -39,7 +40,6 @@
setContentView(R.layout.activity_add_member);
/*ここからグループ名表示*/
TextView groupName = findViewById(R.id.groupName);
- //現在のグループ情報を格納しているものからgIdを取得
Cosmos app = (Cosmos) getApplication();
Group curentGroup = app.getCurentGroup();
groupName.setText(curentGroup.getName());
@@ -64,7 +64,8 @@
@Override
public void onItemClick(AdapterView> parent, View v,
int position, long id) {
-
+ Cosmos app = (Cosmos) getApplication();
+ Group curentGroup = app.getCurentGroup();
Intent intent = null;
// clickされたpositionのtextとphotoのID
@@ -75,47 +76,24 @@
intent = new Intent(this.getApplicationContext(), DisplayGroupIDActivity.class);
}else{
// intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class);
- intent = new Intent(Intent.ACTION_VIEW, Uri.parse("line://msg/text/?GroupID"));
+ String URL="line://msg/text/あなたは"+curentGroup.getName()+"に招待されています。%0D%0A今すぐアプリを立ち上げて、下記のIDを入力して今すぐ参加しよう!%0D%0A"+curentGroup.getgId();
+ intent = new Intent(Intent.ACTION_VIEW, Uri.parse(URL));
+
}
// Intent intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class);
// SubActivityへ遷移
+ try {
startActivity(intent);
+ }
+ //Lineがダウンロードされいない場合に入る
+ catch (ActivityNotFoundException e) {
+ // ブラウザアプリが有効でない場合はここに入る
+ // 必要ならエラー表示とかする
+ intent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=jp.naver.line.android&hl=ja"));
+ startActivity(intent);
+
+ }
}
-// @Override
-// protected void onCreate(Bundle savedInstanceState) {
-// super.onCreate(savedInstanceState);
-// setContentView(R.layout.activity_add_member);
-// //各種idを取得
-// Button qrButton = findViewById(R.id.addQR);
-// Button idButton = findViewById(R.id.addID);
-// Button mailButton = findViewById(R.id.addMail);
-// TextView groupText=findViewById(R.id.groupName);
-//
-// //QRからメンバー追加の画面遷移処理画面を記述
-// qrButton.setOnClickListener(new View.OnClickListener() {
-// @Override
-// public void onClick(View v) {
-// Intent intent = new Intent(getApplication(), DisplayQRActivity.class);
-// startActivity(intent);
-// }
-// });
-// //IDからメンバー追加の画面遷移処理画面を記述
-// idButton.setOnClickListener(new View.OnClickListener() {
-// @Override
-// public void onClick(View v) {
-// Intent intent = new Intent(getApplication(), DisplayQRActivity.class);
-// startActivity(intent);
-// }
-// });
-// //Mailからメンバー追加の画面遷移処理画面を記述
-// mailButton.setOnClickListener(new View.OnClickListener() {
-// @Override
-// public void onClick(View v) {
-// Intent intent = new Intent(getApplication(), DisplayQRActivity.class);
-// startActivity(intent);
-// }
-// });
-//
-// }
+
}
diff --git a/app/src/main/java/com/example/cosmosclient/views/AddRequestActivity.java b/app/src/main/java/com/example/cosmosclient/views/AddRequestActivity.java
index 465353e..425b4b6 100644
--- a/app/src/main/java/com/example/cosmosclient/views/AddRequestActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/AddRequestActivity.java
@@ -137,7 +137,7 @@
//retrofitの処理
final Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/")
// .baseUrl("http://10.0.2.2:8080/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
diff --git a/app/src/main/java/com/example/cosmosclient/views/CheeseDynamicAdapter.java b/app/src/main/java/com/example/cosmosclient/views/CheeseDynamicAdapter.java
index b2e17db..f6131ad 100644
--- a/app/src/main/java/com/example/cosmosclient/views/CheeseDynamicAdapter.java
+++ b/app/src/main/java/com/example/cosmosclient/views/CheeseDynamicAdapter.java
@@ -7,6 +7,7 @@
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
+import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
@@ -69,12 +70,13 @@
itemList = (ListView) view.findViewById(R.id.listview);
//image = (ImageView) view.findViewById(R.id.item_img);
+ /*
ArrayList items = new ArrayList<>();
items.add("からし");
items.add("わさび");
items.add("砂糖");
-
- ArrayAdapter adapter = new ArrayAdapter(getContext(), R.layout.item_list, items);
+ */
+ //ArrayAdapter adapter = new ArrayAdapter(getContext(), R.layout.item_list, items);
//itemList.setAdapter(adapter);
}
diff --git a/app/src/main/java/com/example/cosmosclient/views/Cheeses.java b/app/src/main/java/com/example/cosmosclient/views/Cheeses.java
index a1386ac..d02cdc2 100644
--- a/app/src/main/java/com/example/cosmosclient/views/Cheeses.java
+++ b/app/src/main/java/com/example/cosmosclient/views/Cheeses.java
@@ -1,13 +1,16 @@
package com.example.cosmosclient.views;
+import com.example.cosmosclient.resources.GroupsRest;
+import retrofit2.Call;
+
public class Cheeses {
public static final String[] sCheeseStrings = {
- "ファミリー\n 紙コップ\n 延長ケーブル",
- "会社\n からし",
- "Group3\n ケーキ\n ほげほげ",
- "Group4\n ほげほげ\n ほげほげ",
- "Group5\n ほげほげ\n ほげほげ\n ほげほげ\n ほげほげ",
- "Group6\n ほげほげ\n ほげほげ\n ほげほげ",
+ "ファミリー",
+ "会社",
+ "Group3",
+ "Group4",
+ "Group5",
+ "Group6",
"Group7"
};
}
diff --git a/app/src/main/java/com/example/cosmosclient/views/CreateGroupActivity.java b/app/src/main/java/com/example/cosmosclient/views/CreateGroupActivity.java
index 5580a7e..cea6b8e 100644
--- a/app/src/main/java/com/example/cosmosclient/views/CreateGroupActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/CreateGroupActivity.java
@@ -48,7 +48,7 @@
//retrofitの処理
final Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
//interfaceから実装を取得
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 22b50ec..08b6688 100644
--- a/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java
@@ -1,8 +1,13 @@
package com.example.cosmosclient.views;
import android.content.Intent;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.nfc.Tag;
import android.os.Bundle;
+import android.provider.MediaStore;
+import android.support.v4.app.ActivityCompat;
+import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.support.v4.view.GravityCompat;
@@ -16,15 +21,32 @@
import android.view.Menu;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
+import android.widget.BaseAdapter;
import android.widget.GridView;
+import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.TextView;
import android.widget.Toast;
+import com.example.cosmosclient.app.Cosmos;
+import com.example.cosmosclient.entities.Group;
+import com.example.cosmosclient.entities.GroupListResponse;
+import com.example.cosmosclient.entities.MemberListResponse;
+import com.example.cosmosclient.entities.User;
+import com.example.cosmosclient.entities.UserResponse;
+import com.example.cosmosclient.entities.jsons.GroupJson;
+import com.example.cosmosclient.resources.UsersRest;
import com.example.cosmosclient.views.DynamicGridView;
+import com.example.cosmosclient.resources.GroupsRest;
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.jackson.JacksonConverterFactory;
import com.example.cosmosclient.R;
+import java.io.ByteArrayOutputStream;
import java.util.ArrayList;
import java.util.Arrays;
@@ -33,6 +55,7 @@
private static final String TAG = GroupListActivity.class.getName();
private DynamicGridView gridView;
+ private GroupListResponse result;
@Override
@@ -41,13 +64,97 @@
setContentView(R.layout.activity_group_list);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
+ final String uId,token;
+ final Cosmos app = (Cosmos) getApplication();
+ uId = app.getuId();
+ token = app.getToken();
- String[] list = {"ファミリー\n 紙コップ\n 延長ケーブル", "Group2\n からし", "Group3\n ケーキ\n something"};
+
+
+ //retrofitの処理
+ final Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/")
+ .addConverterFactory(JacksonConverterFactory.create())
+ .build();
+
+ final UsersRest getUsersService = retrofit.create(UsersRest.class);
+ //APIに値を送信
+ Call call = getUsersService.getName(uId,token);
+ //サーバからデータ受け取り
+ call.enqueue(new Callback() {
+ //成功時
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ UserResponse result = response.body();
+
+ //アイコンとユーザ名とユーザIDを表示したい
+ final String uName;
+ final String uIcon;
+ NavigationView navView = (NavigationView) findViewById(R.id.nav_view);
+ View headerView = navView.getHeaderView(0);
+ TextView userNameTextView = navView.getHeaderView(0).findViewById(R.id.userName);
+ TextView userIDTextView = navView.getHeaderView(0).findViewById(R.id.userID);
+ ImageView userIcon = navView.getHeaderView(0).findViewById(R.id.userIcon);
+ userIDTextView.setText("ユーザID:"+uId);
+ uName = result.name;
+ uIcon = result.iconUri;
+ userNameTextView.setText("ユーザ名:"+uName);
+ if (uIcon != null) {
+ byte[] decodedByte = Base64.decode(uIcon, 0);
+ userIcon.setImageBitmap(BitmapFactory.decodeByteArray(decodedByte, 0, decodedByte.length));
+ }
+
+// //画像をBase64に変換
+// Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.default_icon_image);
+// ByteArrayOutputStream baos = new ByteArrayOutputStream();
+// icon.compress(Bitmap.CompressFormat.JPEG,100, baos);
+// byte[] b = baos.toByteArray();
+// String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
+//// Toast.makeText(GroupListActivity.this,"接続できたよ",Toast.LENGTH_LONG).show();
+
+
+ //アイコンが未設定ならデフォルト画像を設定
+// for(int i = 0; i call, Throwable t) {
+ t.printStackTrace();
+ Toast.makeText(GroupListActivity.this,
+ "ユーザー情報取得失敗", Toast.LENGTH_SHORT).show();
+ }
+ });
+
+// ArrayList GroupList = new ArrayList<>();
+// for (int i = 0; i < result.getGroupCount(); i++) {
+// GroupList.add(result.getGroup(i).getName());
+// }
gridView = (DynamicGridView) findViewById(R.id.dynamic_grid);
- gridView.setAdapter((ListAdapter) new CheeseDynamicAdapter(this,
- new ArrayList(Arrays.asList(Cheeses.sCheeseStrings)),
- getResources().getInteger(R.integer.column_count)));
gridView.setOnDragListener(new DynamicGridView.OnDragListener() {
@Override
@@ -70,26 +177,30 @@
}
});
+ // グループの中にはいる(リクエスト一覧画面へ)
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
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);
+ ((Cosmos)getApplication()).setCurrentGroup(new Group(group));
+
Intent intent=new Intent(GroupListActivity.this, com.example.cosmosclient.views.RequestListActivity.class);
startActivity(intent);
}
});
/* とりあえずの画面遷移なので変更するかも */
- TextView group1 = findViewById(R.id.group1);
- group1.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- gridView.stopEditMode();
- Intent intent=new Intent(GroupListActivity.this, com.example.cosmosclient.views.RequestListActivity.class);
- startActivity(intent);
- }
- });
+// TextView group1 = findViewById(R.id.group1);
+// group1.setOnClickListener(new View.OnClickListener() {
+// @Override
+// public void onClick(View view) {
+// gridView.stopEditMode();
+// Intent intent=new Intent(GroupListActivity.this, com.example.cosmosclient.views.RequestListActivity.class);
+// startActivity(intent);
+// }
+// });
DrawerLayout drawer = findViewById(R.id.drawer_layout);
@@ -102,6 +213,90 @@
}
@Override
+ protected void onStart() {
+ super.onStart();
+ final String uId,token;
+ final Cosmos app = (Cosmos) getApplication();
+ uId = app.getuId();
+ token = app.getToken();
+
+ //retrofitの処理
+ final Retrofit retrofit = new Retrofit.Builder()
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/")
+ .addConverterFactory(JacksonConverterFactory.create())
+ .build();
+ //interfaceから実装を取得
+ final GroupsRest getGroupsService = retrofit.create(GroupsRest.class);
+
+ //API呼び出しのための値入力
+ final Call call = getGroupsService.getGroups(uId,token);
+
+ //サーバからデータ受け取り
+ call.enqueue(new Callback() {
+ //成功時
+ @Override
+ public void onResponse(Call call, Response response) {
+ if (response.isSuccessful()) {
+ GroupListResponse result2 = response.body();
+ result = result2;
+// Iterator it = result.member.iterator();
+// int i = 0;
+
+// for (int i = 0; i < result.getGroupCount(); i++) {
+// groupList.add(result.getGroup(i).getName());
+// }
+
+ // グループ名一覧の表示
+ gridView.setAdapter((ListAdapter) new CheeseDynamicAdapter(GroupListActivity.this,
+ result.getGroups(),
+ getResources().getInteger(R.integer.column_count)));
+
+ //画像をBase64に変換
+ Bitmap icon = BitmapFactory.decodeResource(getResources(),R.drawable.default_icon_image);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ icon.compress(Bitmap.CompressFormat.JPEG,100, baos);
+ byte[] b = baos.toByteArray();
+ String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
+// Toast.makeText(GroupListActivity.this,"接続できたよ",Toast.LENGTH_LONG).show();
+
+
+ //アイコンが未設定ならデフォルト画像を設定
+// for(int i = 0; i call, Throwable t) {
+ t.printStackTrace();
+ Toast.makeText(GroupListActivity.this,
+ "グループ情報取得失敗", Toast.LENGTH_SHORT).show();
+ }
+ });
+ }
+
+ @Override
public void onBackPressed() {
DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
@@ -152,6 +347,7 @@
} else if (id == R.id.signOutButton){
gridView.stopEditMode();
Intent intent=new Intent(GroupListActivity.this, com.example.cosmosclient.views.SigninActivity.class);
+ ActivityCompat.finishAffinity(GroupListActivity.this);
startActivity(intent);
}
/*
@@ -172,5 +368,7 @@
DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
+
+
}
}
diff --git a/app/src/main/java/com/example/cosmosclient/views/JoinGroupByIDActivity.java b/app/src/main/java/com/example/cosmosclient/views/JoinGroupByIDActivity.java
index d6c8dda..baea2a8 100644
--- a/app/src/main/java/com/example/cosmosclient/views/JoinGroupByIDActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/JoinGroupByIDActivity.java
@@ -40,7 +40,7 @@
test.setText(GroupID);
//retrofitの処理
Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
//interfaceから実装を取得
diff --git a/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java b/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java
index 99f0054..64113fa 100644
--- a/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java
+++ b/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java
@@ -42,7 +42,7 @@
convertView = inflater.inflate(itemLayoutId, parent, false);
// ViewHolder を生成
holder = new ViewHolder();
- holder.textView = convertView.findViewById(R.id.textView);
+ holder.textView = convertView.findViewById(R.id.userID);
holder.imageView = convertView.findViewById(R.id.imageView);
convertView.setTag(holder);
}
diff --git a/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java b/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java
index ad97c66..0bcd81d 100644
--- a/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/MemberListActivity.java
@@ -5,6 +5,7 @@
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
+import android.os.Handler;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
@@ -48,10 +49,18 @@
TextView groupName = findViewById(R.id.groupName);
//メンバー追加ボタン処理
- FloatingActionButton fab = findViewById(R.id.addrequest_button);
+ final FloatingActionButton fab = findViewById(R.id.addrequest_button);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
+ //ボタン連打防止
+ fab.setEnabled(false);
+ new Handler().postDelayed(new Runnable() {
+ public void run() {
+ fab.setEnabled(true);
+ }
+ }, 1000L);
+
startActivity(new Intent(MemberListActivity.this,
AddMemberActivity.class));
finish();
@@ -71,7 +80,7 @@
//retrofitの処理
final Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
//interfaceから実装を取得
diff --git a/app/src/main/java/com/example/cosmosclient/views/MemberListAdapter.java b/app/src/main/java/com/example/cosmosclient/views/MemberListAdapter.java
index c532a6c..42e1f48 100644
--- a/app/src/main/java/com/example/cosmosclient/views/MemberListAdapter.java
+++ b/app/src/main/java/com/example/cosmosclient/views/MemberListAdapter.java
@@ -66,7 +66,7 @@
convertView = inflater.inflate(itemLayoutId, parent, false);
// ViewHolder を生成
holder = new MemberListAdapter.ViewHolder();
- holder.textView = convertView.findViewById(R.id.textView);
+ holder.textView = convertView.findViewById(R.id.userID);
holder.imageView = convertView.findViewById(R.id.imageView);
convertView.setTag(holder);
}
diff --git a/app/src/main/java/com/example/cosmosclient/views/QRcodeReadingActivity.java b/app/src/main/java/com/example/cosmosclient/views/QRcodeReadingActivity.java
index 957fee5..9166772 100644
--- a/app/src/main/java/com/example/cosmosclient/views/QRcodeReadingActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/QRcodeReadingActivity.java
@@ -61,7 +61,7 @@
//retrofitの処理
final Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
//interfaceから実装を取得
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..34394ac 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;
@@ -56,7 +56,7 @@
//retrofitの処理
final Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/")
// .baseUrl("http://10.0.2.2:8080/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
@@ -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
diff --git a/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java b/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java
index 371839f..59da57b 100644
--- a/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java
@@ -6,7 +6,10 @@
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
+import android.os.Build;
import android.os.Handler;
+import android.os.HandlerThread;
+import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
@@ -16,11 +19,13 @@
import android.widget.EditText;
import android.widget.Toast;
+import com.example.cosmosclient.MainActivity;
import com.example.cosmosclient.R;
import com.example.cosmosclient.app.Cosmos;
import com.example.cosmosclient.entities.AreaInformation;
import com.example.cosmosclient.entities.SigninResponse;
import com.example.cosmosclient.resources.UsersRest;
+import com.example.cosmosclient.services.CosomosBackgroundService;
import retrofit2.Call;
import retrofit2.Callback;
@@ -32,12 +37,40 @@
private boolean uIdEnable;
private boolean pwEnable;
private Button SigninButton;
+ private Intent intentservice;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signin);
+// // 別スレ生成 -> 開始
+// HandlerThread handlerThread = new HandlerThread("other");
+// handlerThread.start();
+//
+// //作成したHandlerThread(別スレ)内部のLooperを引数として、HandlerThread(のLooper)にメッセージを送るHandlerを生成する。
+// Handler handler = new Handler(handlerThread.getLooper());
+// //Handlerのpostメソッドでメッセージ(タスク:重たい処理)を送信する。
+// handler.post(new Runnable() {
+// @RequiresApi(api = Build.VERSION_CODES.O)
+// @Override
+// public void run() {
+// //重たい処理を記述
+// intentservice = new Intent(SigninActivity.this, CosomosBackgroundService.class);
+// startForegroundService(intentservice);
+// }
+// });
+
+ Thread thread = new Thread() {
+ @RequiresApi(api = Build.VERSION_CODES.O)
+ public void run() {
+ intentservice = new Intent(SigninActivity.this, CosomosBackgroundService.class);
+ startForegroundService(intentservice);
+
+ }
+ };
+ thread.start();
//各種IDを取得
SigninButton = findViewById(R.id.SigninButton);
Button SignupButton = findViewById(R.id.SignupButton);
@@ -67,7 +100,7 @@
//retrofitの処理
final Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
//interfaceから実装を取得
@@ -94,60 +127,25 @@
@Override
public void onResponse(Call call, Response response) {
if (response.isSuccessful()) {
- SigninResponse result = response.body();
+ if(response.body() == null){
+ //パスワードが違う際、アプリが落ちてしまうため
+ Toast.makeText(SigninActivity.this,
+ "パスワードが違います",Toast.LENGTH_LONG).show();
+ }else{
+ SigninResponse result = response.body();
- //app/Cosmosに情報保存
- Cosmos app = (Cosmos)getApplication();
- app.setToken(result.token);
- app.setuId(UserIdText.getText().toString());
+ //app/Cosmosに情報保存
+ Cosmos app = (Cosmos) getApplication();
+ app.setToken(result.token);
+ app.setuId(UserIdText.getText().toString());
-// AreaInformation area = new AreaInformation();
-// area.location.longitude = 23.222;
-// area.location.latitude = 23.333;
-// app.setAreaInfo(area.location.hashCode(),area);
-// AreaInformation aaa = app.getAreaInfo(123456);
-
- //画面遷移
- Intent intent = new Intent(getApplication(), GroupListActivity.class);
- startActivity(intent);
- Toast.makeText(SigninActivity.this,
- "ログインしました", Toast.LENGTH_SHORT).show();
-
-// //通知オブジェクトの用意と初期化
-// Notification notification = null;
-//
-// //システムから通知マネージャー取得
-// NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
-// //アプリ名をチャンネルIDとして利用
-// String chID = getString(R.string.app_name);
-//
-// //アンドロイドのバージョンで振り分け
-// if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { //APIが「26」以上の場合
-//
-// //通知チャンネルIDを生成してインスタンス化
-// NotificationChannel notificationChannel = new NotificationChannel(chID, chID, NotificationManager.IMPORTANCE_DEFAULT);
-// //通知の説明のセット
-// notificationChannel.setDescription(chID);
-// //通知チャンネルの作成
-// notificationManager.createNotificationChannel(notificationChannel);
-// //通知の生成と設定とビルド
-// notification = new Notification.Builder(SigninActivity.this, chID)
-// .setContentTitle(getString(R.string.app_name)) //通知タイトル
-// .setContentText("通知確認") //通知内容
-// .setSmallIcon(R.drawable.default_icon_image) //通知用アイコン
-// .build(); //通知のビルド
-// } else {
-// //APIが「25」以下の場合
-// //通知の生成と設定とビルド
-//// notification = new Notification.Builder(SigninActivity.this)
-//// .setContentTitle(getString(R.string.app_name))
-//// .setContentText("アプリ通知テスト25まで")
-//// .setSmallIcon(R.drawable.default_icon_image)
-//// .build();
-// }
-// //通知の発行
-// notificationManager.notify(1, notification);
- finish();
+ //画面遷移
+ Intent intent = new Intent(getApplication(), GroupListActivity.class);
+ startActivity(intent);
+ Toast.makeText(SigninActivity.this,
+ "ログインしました", Toast.LENGTH_SHORT).show();
+ finish();
+ }
}else{
//onFailureでキャッチできないエラーの処理
@@ -159,7 +157,7 @@
//失敗時
@Override
public void onFailure(Call call, Throwable t) {
- //t.printStackTrace();
+ t.printStackTrace();
Toast.makeText(SigninActivity.this,
"ユーザIDもしくはパスワードが間違っています",Toast.LENGTH_SHORT).show();
}
@@ -188,6 +186,8 @@
}
});
}
+
+
private class GenericTextWatcher implements TextWatcher{
private View view;
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 5770dcc..32a05c0 100644
--- a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java
+++ b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java
@@ -41,6 +41,7 @@
private Button MakeAccountButton;
private ImageView iconChoice;
private String iconImageBase64;
+ private int quality = 70;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -49,7 +50,7 @@
//retrofitの処理
final Retrofit retrofit = new Retrofit.Builder()
- .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/")
+ .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/rest/")
.addConverterFactory(JacksonConverterFactory.create())
.build();
//interfaceから実装を取得
@@ -185,18 +186,21 @@
//画像をBase64に変換
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Bitmap afterResizeBitmap = Bitmap.createScaledBitmap(image,50,50,true);
- afterResizeBitmap.compress(Bitmap.CompressFormat.JPEG,70, baos);
+ afterResizeBitmap.compress(Bitmap.CompressFormat.JPEG,quality, baos);
byte[] b = baos.toByteArray();
String imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
- if(imageEncoded.length() <= 2000){
- iconChoice.setImageBitmap(image);
- iconImageBase64 = imageEncoded;
- }else{
- Toast.makeText(SignupActivity.this,
- "この画像は使用できません。\n別の画像を選択してください。",Toast.LENGTH_LONG).show();
+ while (imageEncoded.length() >2000){
+ //文字数の2000文字以下になるまで圧縮率を上げて再度変換
+ baos = new ByteArrayOutputStream();
+ quality -=5;
+ afterResizeBitmap.compress(Bitmap.CompressFormat.JPEG,quality, baos);
+ b = baos.toByteArray();
+ imageEncoded = Base64.encodeToString(b, Base64.DEFAULT);
}
+ iconChoice.setImageBitmap(image);
+ iconImageBase64 = imageEncoded;
}catch(IOException e){
e.printStackTrace();
}
diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml
index c0b617e..ea37005 100644
--- a/app/src/main/res/layout/activity_signup.xml
+++ b/app/src/main/res/layout/activity_signup.xml
@@ -44,7 +44,7 @@
android:layout_height="1dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="50dp"
- android:layout_marginTop="32dp"
+ android:layout_marginTop="24dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="50dp"
android:background="@android:color/darker_gray"
@@ -59,7 +59,7 @@
android:layout_height="28dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
- android:layout_marginTop="18dp"
+ android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:background="#FFFFFF"
@@ -77,15 +77,15 @@
android:layout_height="66dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
- android:layout_marginTop="16dp"
+ android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
- android:textAllCaps="false"
android:text="@string/make_account"
+ android:textAllCaps="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.445"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/ConfirmPasswordText" />
+ app:layout_constraintTop_toBottomOf="@+id/choiceImage" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_grid.xml b/app/src/main/res/layout/item_grid.xml
index 829341c..4fc0f67 100644
--- a/app/src/main/res/layout/item_grid.xml
+++ b/app/src/main/res/layout/item_grid.xml
@@ -2,6 +2,7 @@
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_list.xml b/app/src/main/res/layout/item_list.xml
index 21d5116..5037c41 100644
--- a/app/src/main/res/layout/item_list.xml
+++ b/app/src/main/res/layout/item_list.xml
@@ -2,11 +2,10 @@
-
\ No newline at end of file
diff --git a/app/src/main/res/layout/list.xml b/app/src/main/res/layout/list.xml
index f7142e2..5bb4578 100644
--- a/app/src/main/res/layout/list.xml
+++ b/app/src/main/res/layout/list.xml
@@ -15,7 +15,7 @@
android:contentDescription="picture"/>