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 632820b..367fb6e 100644 --- a/app/src/main/java/com/example/cosmosclient/app/Cosmos.java +++ b/app/src/main/java/com/example/cosmosclient/app/Cosmos.java @@ -6,8 +6,9 @@ public class Cosmos extends Application { private String token=null; - private Group curGroup=null; + private String curGroup=null; private String uId=null; + private String gId=null; //token処理 public void setToken(String token){ @@ -18,10 +19,10 @@ } //Group処理 - public void setCurrentGroup(Group g){ + public void setCurrentGroup(String g){ curGroup = g; } - public Group getCurentGroup(){ + public String getCurentGroup(){ return curGroup; } @@ -32,4 +33,12 @@ public String getuId(){ return uId; } + + //gId処理 + public void setgId(String gId){ + this.gId = gId; + } + public String getgId(){ + return gId; + } } diff --git a/app/src/main/java/com/example/cosmosclient/entities/AddRequestsResponse.java b/app/src/main/java/com/example/cosmosclient/entities/AddRequestsResponse.java new file mode 100644 index 0000000..e7d164d --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/entities/AddRequestsResponse.java @@ -0,0 +1,16 @@ +package com.example.cosmosclient.entities; + +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +public class AddRequestsResponse { + public String rId; + public String uri; + public String product; + public Date date; + public Date deadline; + public int location; + public boolean done; + public String issuerUid; +} diff --git a/app/src/main/java/com/example/cosmosclient/entities/CreateGroupResponse.java b/app/src/main/java/com/example/cosmosclient/entities/CreateGroupResponse.java new file mode 100644 index 0000000..3f34654 --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/entities/CreateGroupResponse.java @@ -0,0 +1,11 @@ +package com.example.cosmosclient.entities; + +import java.util.ArrayList; + +public class CreateGroupResponse { + public String gId; + public String uri; + public String name; + public ArrayList members= new ArrayList<>(); + public ArrayList requests = new ArrayList<>(); +} diff --git a/app/src/main/java/com/example/cosmosclient/entities/Request.java b/app/src/main/java/com/example/cosmosclient/entities/Request.java index f3e49a6..5d98ea0 100644 --- a/app/src/main/java/com/example/cosmosclient/entities/Request.java +++ b/app/src/main/java/com/example/cosmosclient/entities/Request.java @@ -6,21 +6,26 @@ private String rId; private String uri; - private Date date; - private String IssuerUid; +// private String IssuerUid; + private UserJsonforRequests issuer; private String product; + private Date date; private Date deadline; // private String location; private int location; private String name; //消 private boolean done = false; - - public Request(String product, Date deadline, int location, String name) { + public Request(String rId, String uri/*, UserJsonforRequests issuer*/, String product, Date date, Date deadline, int location, String name, boolean done) { + this.rId = rId; + this.uri = uri; +// this.issuer = issuer; this.product = product; + this.date = date; this.deadline = deadline; this.location = location; this.name = name; + this.done = done; } public String getrId() { @@ -31,6 +36,22 @@ this.rId = rId; } + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + + public UserJsonforRequests getIssuer() { + return issuer; + } + + public void setIssuer(UserJsonforRequests issuer) { + this.issuer = issuer; + } + public String getProduct() { return product; } @@ -39,6 +60,14 @@ this.product = product; } + public Date getDate() { + return date; + } + + public void setDate(Date date) { + this.date = date; + } + public Date getDeadline() { return deadline; } @@ -63,4 +92,11 @@ this.name = name; } + public boolean isDone() { + return done; + } + + public void setDone(boolean done) { + this.done = done; + } } diff --git a/app/src/main/java/com/example/cosmosclient/entities/SignupResponse.java b/app/src/main/java/com/example/cosmosclient/entities/SignupResponse.java index 712e2fd..ca8e0db 100644 --- a/app/src/main/java/com/example/cosmosclient/entities/SignupResponse.java +++ b/app/src/main/java/com/example/cosmosclient/entities/SignupResponse.java @@ -1,5 +1,7 @@ package com.example.cosmosclient.entities; +import java.util.ArrayList; + public class SignupResponse { public String uId; public String name; @@ -7,6 +9,7 @@ public String token; public String iconUri; public boolean login; + public ArrayList groups; } diff --git a/app/src/main/java/com/example/cosmosclient/entities/User.java b/app/src/main/java/com/example/cosmosclient/entities/User.java new file mode 100644 index 0000000..7d07fa4 --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/entities/User.java @@ -0,0 +1,118 @@ +package com.example.cosmosclient.entities; + +import java.util.HashSet; +import java.util.Set; + +public class User { + /** + * USER用のクラス + * + * @param uId string //LONGに変更 + * @param uri String + * @param name String + * @param iconUri String iconの保存先 + * @param login Boolean トークンが存在するか否か + * @param groups Set 所属するグループ + * @param tokens String userが持トークン一覧 + * + * TODO: Tokenのデータベース接続 + * TODO: tokenの持ち方要検討 + */ + + public String uId, uri, name, iconUri; + public boolean login = true; + public Set groups = new HashSet<>();//HashSetでいいのかな? + //仕様ではStringを返すため + //public Set tokens = new HashSet<>(); + //public Set tokens = new HashSet<>(); + public String token; + private String dummyToken = "a9965652-c2ec-4a0d-a78a-b457e8b2deca"; + + public User() { + + } + public User(String name, String uId, String uri, String iconUri) { + setuId(uId); + setUri(uri); + setName(name); + setIconUri(iconUri); + setToken(this.dummyToken); + //addToken(this.dummyToken); + this.login = true; + } + + public String getuId() { + return uId; + } + + public void setuId(String uId) { + this.uId = uId; + } + + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIconUri() { + return iconUri; + } + + public void setIconUri(String iconUri) { + this.iconUri = iconUri; + } + + public boolean getLogin() { + return login; + } + + public void setLogin(boolean login) { + this.login = login; + } + + public void setToken(String token) { + this.token = token; + } + + public String getToken() { + return token; + } + + /* + * //仕様ではStringで返すため + * public Set getTokens(){ + * return tokens; + * } + * public void setTokens(Set tokens){ + * this.tokens=tokens; + * } + * public void addToken (String token){ + * tokens.add(token); + * } + */ + + public Set getGroups() { + return groups; + } + + public void setGroups(Set groups) { + this.groups = groups; + } + + public void addGroups(Group group){ + //テスト用 + //Group group = Groups.getInstance().getGroupByGid(gId); + groups.add(group); + } +} diff --git a/app/src/main/java/com/example/cosmosclient/entities/UserJsonforRequests.java b/app/src/main/java/com/example/cosmosclient/entities/UserJsonforRequests.java new file mode 100644 index 0000000..aa1b1c4 --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/entities/UserJsonforRequests.java @@ -0,0 +1,102 @@ +package com.example.cosmosclient.entities; + +import java.util.HashSet; +import java.util.Set; + +public class UserJsonforRequests { + + /** + * USER用のクラス + * + * @param uId string //LONGに変更 + * @param uri String + * @param name String + * @param iconUri String iconの保存先 + * @param login Boolean トークンが存在するか否か + * @param tokens String userが持トークン一覧 + * + */ + + public String uId, uri, name, iconUri; + public boolean login = true; + //仕様ではStringを返すため + //public Set tokens = new HashSet<>(); + //public Set tokens = new HashSet<>(); + public String token; + private String dummyToken = "a9965652-c2ec-4a0d-a78a-b457e8b2deca"; + + public UserJsonforRequests() { + + } + + public UserJsonforRequests(String name, String uId, String uri, String iconUri) { + setuId(uId); + setUri(uri); + setName(name); + setIconUri(iconUri); + setToken(this.dummyToken); + //addToken(this.dummyToken); + this.login = true; + } + + public String getuId() { + return uId; + } + + public void setuId(String uId) { + this.uId = uId; + } + + public String getUri() { + return uri; + } + + public void setUri(String uri) { + this.uri = uri; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getIconUri() { + return iconUri; + } + + public void setIconUri(String iconUri) { + this.iconUri = iconUri; + } + + public boolean getLogin() { + return login; + } + + public void setLogin(boolean login) { + this.login = login; + } + + public void setToken(String token) { + this.token = token; + } + + public String getToken() { + return token; + } + + /* + * //仕様ではStringで返すため + * public Set getTokens(){ + * return tokens; + * } + * public void setTokens(Set tokens){ + * this.tokens=tokens; + * } + * public void addToken (String token){ + * tokens.add(token); + * } + */ +} 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 0e56570..1b0e6fe 100644 --- a/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java +++ b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java @@ -1,9 +1,13 @@ package com.example.cosmosclient.resources; +import com.example.cosmosclient.entities.AddRequestsResponse; +import com.example.cosmosclient.entities.CreateGroupResponse; import com.example.cosmosclient.entities.Group; import com.example.cosmosclient.entities.Request; +import com.example.cosmosclient.entities.User; import java.util.ArrayList; +import java.util.Date; import retrofit2.Call; import retrofit2.http.Field; @@ -17,12 +21,15 @@ public interface GroupsRest { @POST("groups") @FormUrlEncoded - Call createGroup(@Field("name") String name,@Field("uId") String uId,@Field("token") String token); + Call createGroup(@Field("name") String name, @Field("uId") String uId, @Field("token") String token); + @GET("groups/{gId}/requests") + Call> getRequestsListByGid(@Path("gId") String gId, @Query("token") String token, @Query("detail") boolean detail); -// @GET("/{gId}/requests") -// Call> getRequestsListByGid(@Path("gid") String gid, @Query("token") String token); -// + @POST("groups/{gId}/requests") + @FormUrlEncoded + Call addRequests(@Path("gId") String gId, @Field("uId") String uId, @Field("product") String product, @Field("deadline") Date deadline, @Field("location") int location, @Field("token") String token); + // @GET("{gId}/requests/{rId}") // Call getRequestsDetailByGidAndRid(@Path("gid") String gid, @Path("rid") String rid, @Query("token") String token); 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 056ae8d..934bfa0 100644 --- a/app/src/main/java/com/example/cosmosclient/views/AddRequestActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/AddRequestActivity.java @@ -14,14 +14,25 @@ import android.widget.EditText; import android.widget.ImageButton; import android.widget.Spinner; +import android.widget.Toast; 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.resources.GroupsRest; import com.example.cosmosclient.yolp.Yolp; +import java.io.IOException; import java.sql.Date; import java.util.Calendar; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + public class AddRequestActivity extends AppCompatActivity { private InputMethodManager inputMethodManager; @@ -42,8 +53,6 @@ private Button addButton; - - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -65,36 +74,36 @@ addButton = findViewById(R.id.buttonAdd); calenderButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - //キーボードを閉じる - inputMethodManager.hideSoftInputFromWindow(editTextProduct.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN); + @Override + public void onClick(View v) { + //キーボードを閉じる + inputMethodManager.hideSoftInputFromWindow(editTextProduct.getWindowToken(), InputMethodManager.RESULT_UNCHANGED_SHOWN); - //Calendarインスタンスを取得 - final Calendar calender = Calendar.getInstance(); + //Calendarインスタンスを取得 + final Calendar calender = Calendar.getInstance(); - //DatePickerDialogインスタンスを取得 - DatePickerDialog datePickerDialog = new DatePickerDialog(AddRequestActivity.this, new DatePickerDialog.OnDateSetListener() { + //DatePickerDialogインスタンスを取得 + DatePickerDialog datePickerDialog = new DatePickerDialog(AddRequestActivity.this, new DatePickerDialog.OnDateSetListener() { - @Override - public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { - curYear = year; - curMonth = month; - curDayOfMonth = dayOfMonth; + @Override + public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { + curYear = year; + curMonth = month; + curDayOfMonth = dayOfMonth; - //setした日付を取得して表示 - editTextDeadline.setText(String.format("%d / %02d / %02d", year, month+1, dayOfMonth)); - } - }, - calender.get(Calendar.YEAR), - calender.get(Calendar.MONTH), - calender.get(Calendar.DATE) - ); + //setした日付を取得して表示 + editTextDeadline.setText(String.format("%d / %02d / %02d", year, month+1, dayOfMonth)); + } + }, + calender.get(Calendar.YEAR), + calender.get(Calendar.MONTH), + calender.get(Calendar.DATE) + ); - //dialogを表示 - datePickerDialog.show(); - } - }); + //dialogを表示 + datePickerDialog.show(); + } + }); //editTextDeadlineにリスナーをセット editTextDeadline.setOnKeyListener(new View.OnKeyListener() { @@ -113,53 +122,67 @@ }); // 追加ボタン - addButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { -// //retrofitの処理 -// final Retrofit retrofit = new Retrofit.Builder() -// .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/") -// .addConverterFactory(JacksonConverterFactory.create()) -// .build(); -// -// //interfaceから実装を取得 -// final GroupsRest requestsService = retrofit.create(GroupsRest.class); -// -// Call call = requestsService.getRequestsListByGid(); -// //サーバからのレスポンス -// call.enqueue(new Callback() { -// //成功時 -// @Override -// public void onResponse(Call call, Response response) { -// if (response.isSuccessful()) { -// Request result = response.body(); -// -// //app/Cosmosに情報保存 -// Cosmos app = (Cosmos) getApplication(); -// -// Toast.makeText(RequestListActivity.this, "RequestListに追加しました", Toast.LENGTH_SHORT).show(); -// } else { -// //onFailureでキャッチできないエラーの処理 -// Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show(); -// } -// } -// -// //失敗時 -// @Override -// public void onFailure(Call call, Throwable t) { -// //t.printStackTrace(); -// Toast.makeText(RequestListActivity.this, "RequestListの追加失敗しました", Toast.LENGTH_SHORT).show(); -// } -// }); + addButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + // エディットテキストのテキストを取得 + String inputProduct = editTextProduct.getText().toString(); - // エディットテキストのテキストを取得 - String inputProduct = editTextProduct.getText().toString(); + // 取得したテキストを TextView に張り付ける + RequestListActivity.requestlist.add(0, (new Request("d", "d", inputProduct, new Date(curYear, curMonth, curDayOfMonth), new Date(curYear, curMonth, curDayOfMonth), Yolp.getInstance().getCodeBySubcategory(selectedSubCategory), "a-hongo", false))); - // 取得したテキストを TextView に張り付ける - RequestListActivity.requestlist.add(0, (new Request(inputProduct, new Date(curYear, curMonth, curDayOfMonth), Yolp.getInstance().getCodeBySubcategory(selectedSubCategory), "a-hongo"))); - finish(); - } - }); + //retrofitの処理 + final Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + + //interfaceから実装を取得 + final GroupsRest addRequestsService = retrofit.create(GroupsRest.class); + + //RequestList取得するための必要な情報 + Cosmos app = (Cosmos) getApplication(); +// final String uId = app.getuId(); +// final String gid = app.getgId(); + final String uId = "0e6f93d7-a040-4bbb-9b53-9934d4707fb7"; + final String gId = "321da586-7a50-4af4-9cb2-b4f9005051be"; + final String token = app.getToken(); + final boolean detail = true; + + Call call = addRequestsService.addRequests(gId, uId, inputProduct, new Date(curYear, curMonth, curDayOfMonth), Yolp.getInstance().getCodeBySubcategory(selectedSubCategory), token); + + //サーバからのレスポンス + call.enqueue(new Callback() { + //成功時 + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + AddRequestsResponse result = response.body(); + + Toast.makeText(AddRequestActivity.this, "RequestListに追加しました", Toast.LENGTH_SHORT).show(); + } else { + try { + System.out.println(response.errorBody().string()); + } catch (IOException e) { + e.printStackTrace(); + } + + //onFailureでキャッチできないエラーの処理 + Toast.makeText(AddRequestActivity.this, "通信エラー", Toast.LENGTH_SHORT).show(); + } + } + + //失敗時 + @Override + public void onFailure(Call call, Throwable t) { + t.printStackTrace(); + Toast.makeText(AddRequestActivity.this, "RequestListの追加失敗しました", Toast.LENGTH_SHORT).show(); + } + }); + + finish(); + } + }); // リスナーを登録 category.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @@ -210,4 +233,4 @@ } -} +} \ No newline at end of file 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 5c62d2b..b2e17db 100644 --- a/app/src/main/java/com/example/cosmosclient/views/CheeseDynamicAdapter.java +++ b/app/src/main/java/com/example/cosmosclient/views/CheeseDynamicAdapter.java @@ -5,13 +5,16 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.ArrayAdapter; import android.widget.ImageView; +import android.widget.ListView; import android.widget.TextView; import com.example.cosmosclient.R; import org.askerov.dynamicgrid.BaseDynamicGridAdapter; +import java.util.ArrayList; import java.util.List; public class CheeseDynamicAdapter extends BaseDynamicGridAdapter { @@ -58,15 +61,28 @@ private class CheeseViewHolder { private TextView titleText; - private ImageView image; + private ListView itemList; + //private ImageView image; private CheeseViewHolder(View view) { titleText = (TextView) view.findViewById(R.id.item_title); - image = (ImageView) view.findViewById(R.id.item_img); + 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); + //itemList.setAdapter(adapter); } + void build(String title) { titleText.setText(title); + + //itemText.setText(items); //image.setImageResource(R.drawable.ic_launcher); } } 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 d57f508..a1386ac 100644 --- a/app/src/main/java/com/example/cosmosclient/views/Cheeses.java +++ b/app/src/main/java/com/example/cosmosclient/views/Cheeses.java @@ -8,6 +8,6 @@ "Group4\n ほげほげ\n ほげほげ", "Group5\n ほげほげ\n ほげほげ\n ほげほげ\n ほげほげ", "Group6\n ほげほげ\n ほげほげ\n ほげほげ", - "Group7\n ほげほげ\n ほげほげ" + "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 49e3d17..c0cd0b6 100644 --- a/app/src/main/java/com/example/cosmosclient/views/CreateGroupActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/CreateGroupActivity.java @@ -1,6 +1,6 @@ package com.example.cosmosclient.views; -import android.media.Image; +import android.content.Intent; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; @@ -9,12 +9,11 @@ import android.view.View; import android.widget.Button; import android.widget.EditText; -import android.widget.ImageButton; import android.widget.Toast; import com.example.cosmosclient.R; import com.example.cosmosclient.app.Cosmos; -import com.example.cosmosclient.entities.Group; +import com.example.cosmosclient.entities.CreateGroupResponse; import com.example.cosmosclient.resources.GroupsRest; import retrofit2.Call; @@ -24,7 +23,7 @@ import retrofit2.converter.jackson.JacksonConverterFactory; public class CreateGroupActivity extends AppCompatActivity { - Button createGroupButton; + private Button createGroupButton; @Override protected void onCreate(Bundle savedInstanceState) { @@ -44,9 +43,7 @@ //グループ作成に必要な情報の取得 Cosmos app = (Cosmos) getApplication(); uId = app.getuId(); - ////サインアップでトークンが返ってきてないため一時コメントアウト - //token = app.getToken(); - token="abcdef"; + token = app.getToken(); //retrofitの処理 final Retrofit retrofit = new Retrofit.Builder() @@ -70,21 +67,20 @@ } }, 1000L); - Call createGroup = createGroupService.createGroup(groupNameText.getText().toString(), uId, token); + Call createGroup = createGroupService.createGroup(groupNameText.getText().toString(), uId, token); - createGroup.enqueue(new Callback() { + createGroup.enqueue(new Callback() { @Override - public void onResponse(Call call, Response response) { + public void onResponse(Call call, Response response) { if (response.isSuccessful()) { //成功時 - Group result = response.body(); + CreateGroupResponse result = response.body(); + //app/CosmosにgIdを保存 + Cosmos app = (Cosmos)getApplication(); + app.setgId(result.gId); -// //確認用 -// System.out.println(result.getgId()); -// System.out.println(result.getName()); -// System.out.println(result.getRequests()); -// System.out.println(result.getUri()); - + Intent intent = new Intent(getApplication(), RequestListActivity.class); + startActivity(intent); Toast.makeText(CreateGroupActivity.this, "グループを作成しました", Toast.LENGTH_SHORT).show(); finish(); @@ -97,7 +93,7 @@ } @Override - public void onFailure(Call call, Throwable t) { + public void onFailure(Call call, Throwable t) { //失敗時 t.printStackTrace(); Toast.makeText(CreateGroupActivity.this, 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 1c51c9c..22b50ec 100644 --- a/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java @@ -85,6 +85,7 @@ 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); } @@ -141,12 +142,15 @@ // Handle navigation view item clicks here. int id = item.getItemId(); if ( id == R.id.createNewGroupButton){ + gridView.stopEditMode(); Intent intent=new Intent(GroupListActivity.this, com.example.cosmosclient.views.CreateGroupActivity.class); startActivity(intent); } else if (id == R.id.joinGroupButton){ + gridView.stopEditMode(); Intent intent=new Intent(GroupListActivity.this, com.example.cosmosclient.views.JoinGroupActionsActivity.class); startActivity(intent); } else if (id == R.id.signOutButton){ + gridView.stopEditMode(); Intent intent=new Intent(GroupListActivity.this, com.example.cosmosclient.views.SigninActivity.class); startActivity(intent); } 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 32afc67..4cd9ffe 100644 --- a/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java @@ -29,6 +29,7 @@ import com.example.cosmosclient.resources.GroupsRest; import com.example.cosmosclient.yolp.Yolp; +import java.io.IOException; import java.text.Collator; import java.util.ArrayList; import java.util.Collections; @@ -49,8 +50,6 @@ Toast toast; //動作テスト用 - - //Request List public static ArrayList requestlist = new ArrayList<>(); @@ -264,67 +263,50 @@ super.onCreate(savedInstanceState); setContentView(R.layout.activity_request_list); -// //retrofitの処理 -// final Retrofit retrofit = new Retrofit.Builder() -// .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/") -// .addConverterFactory(JacksonConverterFactory.create()) -// .build(); -// -// //interfaceから実装を取得 -// final GroupsRest requestsService = retrofit.create(GroupsRest.class); -// -// //RequestList取得するための必要な情報 -// Cosmos app = (Cosmos) getApplication(); -// final String gid = app.getCurentGroup().getgId(); -// final String token = app.getToken(); -// -// final Call> requestsListByGidCall = requestsService.getRequestsListByGid(gid, token); -// -// //サーバからのレスポンス -// requestsListByGidCall.enqueue(new Callback() { -// //成功時 -// @Override -// public void onResponse(Call call, Response response) { -// if (response.isSuccessful()) { -// Request result = response.body(); -// -// Call requestsDetailByGidAndRidcall = requestsService.getRequestsDetailByGidAndRid(gid, token, result.getrId()); -// //サーバからのレスポンス -// requestsDetailByGidAndRidcall.enqueue(new Callback() { -// //成功時 -// @Override -// public void onResponse(Call call, Response response) { -// if (response.isSuccessful()) { -// Request result = response.body(); -// -// -// Toast.makeText(RequestListActivity.this, "RequestList詳細を取得しました", Toast.LENGTH_SHORT).show(); -// } else { -// //onFailureでキャッチできないエラーの処理 -// Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show(); -// } -// } -// //失敗時 -// @Override -// public void onFailure(Call call, Throwable t) { -// //t.printStackTrace(); -// Toast.makeText(RequestListActivity.this, "RequestList詳細の取得失敗しました", Toast.LENGTH_SHORT).show(); -// } -// }); -// Toast.makeText(RequestListActivity.this, "RequestListを取得しました", Toast.LENGTH_SHORT).show(); -// } else { -// //onFailureでキャッチできないエラーの処理 -// Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show(); -// } -// } -// -// //失敗時 -// @Override -// public void onFailure(Call call, Throwable t) { -// //t.printStackTrace(); -// Toast.makeText(RequestListActivity.this, "RequestListの取得失敗しました", Toast.LENGTH_SHORT).show(); -// } -// }); + //retrofitの処理 + final Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + + //interfaceから実装を取得 + final GroupsRest requestsService = retrofit.create(GroupsRest.class); + + //RequestList取得するための必要な情報 + Cosmos app = (Cosmos) getApplication(); + final String gId = app.getgId(); + final String token = app.getToken(); + final boolean detail = true; + + final Call> requestsListByGidCall = requestsService.getRequestsListByGid(gId, token, detail); + + //サーバからのレスポンス + requestsListByGidCall.enqueue(new Callback>() { + //成功時 + @Override + public void onResponse(Call> call, Response> response) { + if (response.isSuccessful()) { + ArrayList requestlist = response.body(); + + Toast.makeText(RequestListActivity.this, "RequestListを取得しました", Toast.LENGTH_SHORT).show(); + } else { + try { + System.out.println("a" + response.errorBody().string()); + } catch (IOException e) { + e.printStackTrace(); + } + //onFailureでキャッチできないエラーの処理 + Toast.makeText(RequestListActivity.this, "通信エラー", Toast.LENGTH_SHORT).show(); + } + } + + //失敗時 + @Override + public void onFailure(Call> call, Throwable t) { + //t.printStackTrace(); + Toast.makeText(RequestListActivity.this, "RequestListの取得失敗しました", Toast.LENGTH_SHORT).show(); + } + }); Toolbar toolbar = (Toolbar) findViewById(R.id.requestlist_toolbar); setSupportActionBar(toolbar); @@ -343,9 +325,9 @@ requestlist.clear(); //Add Request - requestlist.add(new Request("わさび", new Date(2019, 6, 7), 205002, "a-hongo")); - requestlist.add(new Request("ケーキ" , new Date(2019, 6, 6), 205001, "t-sugisawa")); - requestlist.add(new Request("からし", new Date(2018, 6, 4), 205002, "n-kande")); + requestlist.add(new Request("a", "a", "わさび", new Date(2019, 6, 7), new Date(2019, 6, 7), 205002, "a-hongo", false)); + requestlist.add(new Request("b", "b","ケーキ" , new Date(2019, 6, 6), new Date(2019, 6, 6), 205001, "t-sugisawa", false)); + requestlist.add(new Request("c", "c", "からし", new Date(2018, 6, 4), new Date(2018, 6, 4), 205002, "n-kande", false)); //Add RequestList Table AddRequestListTable(requestlist); @@ -353,7 +335,7 @@ //LEFT hamburger button DrawerLayout requestlistDrawer = (DrawerLayout) findViewById(R.id.request_list_drawer_layout); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( - this, requestlistDrawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); + this, requestlistDrawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); requestlistDrawer.addDrawerListener(toggle); toggle.syncState(); @@ -456,6 +438,7 @@ tableRow.addView(textLocation, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT)); TextView textName = new TextView(this); +// requestList.get(i).getIssuer().getName(); textName.setText(requestList.get(i).getName()); textName.setTextSize(20); textName.setHeight(150); @@ -510,8 +493,4 @@ Collections.sort(namesortRequestlist, nameSortComparator); return 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 799fec0..dbfd08e 100644 --- a/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/SigninActivity.java @@ -1,6 +1,7 @@ package com.example.cosmosclient.views; import android.content.Intent; +import android.content.SharedPreferences; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; @@ -25,7 +26,7 @@ public class SigninActivity extends AppCompatActivity { private boolean uIdEnable; private boolean pwEnable; - Button SigninButton; + private Button SigninButton; @Override protected void onCreate(Bundle savedInstanceState) { @@ -39,12 +40,25 @@ final EditText PasswordText = findViewById(R.id.PasswordText); Button ForgotPasswordButton = findViewById(R.id.ForgotPasswordButton); + // 「pref_data」という設定データファイルを読み込み + SharedPreferences prefData = getSharedPreferences("pref_data", MODE_PRIVATE); + String account = prefData.getString("account", ""); + + // 空チェック + if (account != null && account.length() > 0) { + // 保存済の情報をログインID欄に設定 + UserIdText.setText(account); + uIdEnable=true; + //UserIdText.setEnabled(false); + } + //ボタン無効化 -// SigninButton.setEnabled(false); -// -// //TextWatcherで入力監視 -// UserIdText.addTextChangedListener(new SigninActivity.GenericTextWatcher(UserIdText)); -// PasswordText.addTextChangedListener(new SigninActivity.GenericTextWatcher(PasswordText)); + SigninButton.setEnabled(false); + + //TextWatcherで入力監視 + UserIdText.addTextChangedListener(new SigninActivity.GenericTextWatcher(UserIdText)); + PasswordText.addTextChangedListener(new SigninActivity.GenericTextWatcher(PasswordText)); + //retrofitの処理 final Retrofit retrofit = new Retrofit.Builder() @@ -136,7 +150,9 @@ } @Override - public void beforeTextChanged(CharSequence s, int start, int count,int after){/*記述不要*/}; + public void beforeTextChanged(CharSequence s, int start, int count,int after){ + /*記述不要*/ + }; @Override public void onTextChanged(CharSequence s, int start, int before, int count){/*記述不要*/}; @@ -144,7 +160,7 @@ public void afterTextChanged(Editable s){ switch(view.getId()) { case R.id.UserIdText: - if (s.length() > 0) { + if (s.length()>0) { uIdEnable = true; } else { uIdEnable = false; 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 da8b756..8e5f0b5 100644 --- a/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/SignupActivity.java @@ -2,12 +2,14 @@ import android.content.Intent; +import android.content.SharedPreferences; import android.net.Uri; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; +import android.util.Base64; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -21,7 +23,6 @@ import com.theartofdev.edmodo.cropper.CropImage; import com.theartofdev.edmodo.cropper.CropImageView; - import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -56,14 +57,14 @@ final EditText ConfirmPasswordText = findViewById(R.id.ConfirmPasswordText); iconChoice = findViewById(R.id.choiceImage); -// -// //入力欄監視 -// NameText.addTextChangedListener(new GenericTextWatcher(NameText)); -// PasswordText.addTextChangedListener(new GenericTextWatcher(PasswordText)); -// ConfirmPasswordText.addTextChangedListener(new GenericTextWatcher(ConfirmPasswordText)); -// -// //アカウント登録ボタン無効化 -// MakeAccountButton.setEnabled(false); + + //入力欄監視 + NameText.addTextChangedListener(new GenericTextWatcher(NameText)); + PasswordText.addTextChangedListener(new GenericTextWatcher(PasswordText)); + ConfirmPasswordText.addTextChangedListener(new GenericTextWatcher(ConfirmPasswordText)); + + //アカウント登録ボタン無効化 + MakeAccountButton.setEnabled(false); //Make Accountボタンの処理 MakeAccountButton.setOnClickListener(new View.OnClickListener() { @@ -105,16 +106,17 @@ app.setToken(result.token); app.setuId(result.uId); + // 「pref_data」という設定データファイルを読み込み + SharedPreferences prefData = getSharedPreferences("pref_data", MODE_PRIVATE); + SharedPreferences.Editor editor = prefData.edit(); + + // 入力されたログインIDとログインパスワード + editor.putString("account", result.uId); + + // 保存 + editor.commit(); + Intent intent = new Intent(getApplication(), GroupListActivity.class); - - //test -// System.out.println(result.uId); -// System.out.println(result.name); -// System.out.println(result.uri); -// System.out.println(result.token); -// System.out.println(result.iconUri); -// System.out.println(result.pw); - startActivity(intent); Toast.makeText(SignupActivity.this, "アカウントを作成しました", Toast.LENGTH_SHORT).show(); diff --git a/app/src/main/java/com/example/cosmosclient/yolp/Yolp.java b/app/src/main/java/com/example/cosmosclient/yolp/Yolp.java index 07fa5e2..edcf194 100644 --- a/app/src/main/java/com/example/cosmosclient/yolp/Yolp.java +++ b/app/src/main/java/com/example/cosmosclient/yolp/Yolp.java @@ -97,4 +97,4 @@ // Yolp yolp = (Yolp) o; // return codeToSubcategory.equals(yolp.codeToSubcategory) || nameToCategory.equals(yolp.nameToCategory); // } -} +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_make_group.xml b/app/src/main/res/layout/activity_make_group.xml index 0762055..724ef38 100644 --- a/app/src/main/res/layout/activity_make_group.xml +++ b/app/src/main/res/layout/activity_make_group.xml @@ -27,6 +27,7 @@ android:layout_marginLeft="8dp" android:layout_marginEnd="36dp" android:layout_marginRight="36dp" + android:inputType="text" android:hint="20文字以内" android:maxLength="20" android:textSize="18sp" diff --git a/app/src/main/res/layout/activity_signin.xml b/app/src/main/res/layout/activity_signin.xml index 6b37c3c..831e7ad 100644 --- a/app/src/main/res/layout/activity_signin.xml +++ b/app/src/main/res/layout/activity_signin.xml @@ -36,6 +36,7 @@ android:ems="10" android:hint="@string/password" android:inputType="textPassword" + android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.445" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml index bf45ed6..c0b617e 100644 --- a/app/src/main/res/layout/activity_signup.xml +++ b/app/src/main/res/layout/activity_signup.xml @@ -100,6 +100,7 @@ android:hint="@string/confirm_password" android:inputType="textPassword" android:textSize="18sp" + android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.445" app:layout_constraintStart_toStartOf="parent" @@ -118,6 +119,7 @@ android:hint="@string/password" android:inputType="textPassword" android:textSize="18sp" + android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.445" app:layout_constraintStart_toStartOf="parent" @@ -163,7 +165,11 @@ android:layout_height="100dp" android:layout_marginStart="152dp" android:layout_marginLeft="152dp" - android:layout_marginTop="44dp" + android:layout_marginTop="40dp" + android:layout_marginEnd="8dp" + android:layout_marginRight="8dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView6" app:srcCompat="@drawable/ic_menu_gallery" /> diff --git a/app/src/main/res/layout/content_request_list.xml b/app/src/main/res/layout/content_request_list.xml index 10d03aa..c894494 100644 --- a/app/src/main/res/layout/content_request_list.xml +++ b/app/src/main/res/layout/content_request_list.xml @@ -66,7 +66,6 @@ android:layout_weight="1" android:orientation="horizontal"> - + + \ 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 new file mode 100644 index 0000000..21d5116 --- /dev/null +++ b/app/src/main/res/layout/item_list.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml new file mode 100644 index 0000000..c4f5b5b --- /dev/null +++ b/app/src/main/res/values/ids.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file