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/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 b4ccf6e..8524945 100644 --- a/app/src/main/java/com/example/cosmosclient/entities/Request.java +++ b/app/src/main/java/com/example/cosmosclient/entities/Request.java @@ -4,18 +4,32 @@ public class Request { + private String rId; + private String uri; + private Date date; + private String IssuerUid; private String product; private Date deadline; - private String location; - private String name; + // private String location; + private int location; + private String name; //消 + private boolean done = false; - public Request(String product, Date deadline, String location, String name) { + public Request(String product, Date deadline, int location, String name) { this.product = product; this.deadline = deadline; this.location = location; this.name = name; } + public String getrId() { + return rId; + } + + public void setrId(String rId) { + this.rId = rId; + } + public String getProduct() { return product; } @@ -32,11 +46,11 @@ this.deadline = deadline; } - public String getLocation() { + public int getLocation() { return location; } - public void setLocation(String location) { + public void setLocation(int location) { this.location = location; } @@ -47,4 +61,5 @@ public void setName(String name) { this.name = name; } -} + +} \ No newline at end of file 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/resources/GroupsRest.java b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java index 52bbefd..d364c4e 100644 --- a/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java +++ b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java @@ -1,14 +1,28 @@ package com.example.cosmosclient.resources; +import com.example.cosmosclient.entities.CreateGroupResponse; import com.example.cosmosclient.entities.Group; +import com.example.cosmosclient.entities.Request; + +import java.util.ArrayList; 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; 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("/{gId}/requests") +// Call> getRequestsListByGid(@Path("gid") String gid, @Query("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 a9307f1..5a1622f 100644 --- a/app/src/main/java/com/example/cosmosclient/views/AddRequestActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/AddRequestActivity.java @@ -63,36 +63,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() { @@ -111,17 +111,53 @@ }); // 追加ボタン - addButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - // エディットテキストのテキストを取得 - String inputProduct = editTextProduct.getText().toString(); + 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(); +// } +// }); - // 取得したテキストを TextView に張り付ける - RequestListActivity.requestlist.add(0, (new Request(inputProduct, new Date(curYear, curMonth, curDayOfMonth), selectedSubCategory, "a-hongo"))); - finish(); - } - }); + // エディットテキストのテキストを取得 + String inputProduct = editTextProduct.getText().toString(); + + // 取得したテキストを TextView に張り付ける + RequestListActivity.requestlist.add(0, (new Request(inputProduct, new Date(curYear, curMonth, curDayOfMonth), Yolp.getInstance().getCodeBySubcategory(selectedSubCategory), "a-hongo"))); + finish(); + } + }); // リスナーを登録 category.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @@ -172,4 +208,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 de4d635..4e4afcd 100644 --- a/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/RequestListActivity.java @@ -1,6 +1,8 @@ package com.example.cosmosclient.views; +import android.annotation.TargetApi; import android.content.Intent; +import android.os.Build; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; @@ -13,6 +15,7 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.MenuItem; +import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TableLayout; @@ -21,7 +24,10 @@ import android.widget.Toast; import com.example.cosmosclient.R; +import com.example.cosmosclient.app.Cosmos; import com.example.cosmosclient.entities.Request; +import com.example.cosmosclient.resources.GroupsRest; +import com.example.cosmosclient.yolp.Yolp; import java.text.Collator; import java.util.ArrayList; @@ -30,6 +36,12 @@ import java.util.Date; import java.util.Locale; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + import static android.graphics.Color.BLACK; public class RequestListActivity extends AppCompatActivity @@ -37,6 +49,8 @@ Toast toast; //動作テスト用 + + //Request List public static ArrayList requestlist = new ArrayList<>(); @@ -49,6 +63,11 @@ //Rotation制御 boolean deadlineRotationFlag = false; //(true:回転, false:未回転) + LinearLayout productView; + LinearLayout deadlineView; + LinearLayout locationView; + LinearLayout nameView; + Collator collator = Collator.getInstance(Locale.JAPANESE); //productOnClick @@ -228,7 +247,7 @@ public Comparator locationSortComparator = new Comparator() { @Override public int compare(Request r1, Request r2) { - return r1.getLocation().compareTo(r2.getLocation()); + return Yolp.getInstance().getSubCategoryByCode(r1.getLocation()).getSubName().compareTo(Yolp.getInstance().getSubCategoryByCode(r2.getLocation()).getSubName()); } }; @@ -244,6 +263,69 @@ protected void onCreate(Bundle savedInstanceState) { 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(); +// } +// }); + Toolbar toolbar = (Toolbar) findViewById(R.id.requestlist_toolbar); setSupportActionBar(toolbar); @@ -261,9 +343,9 @@ requestlist.clear(); //Add Request - requestlist.add(new Request("わさび", new Date(2019, 6, 7), "スーパー", "a-hongo")); - requestlist.add(new Request("ケーキ" , new Date(2019, 6, 6), "ダニエル", "t-sugisawa")); - requestlist.add(new Request("からし", new Date(2018, 6, 4), "コンビニ", "n-kande")); + 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")); //Add RequestList Table AddRequestListTable(requestlist); @@ -271,23 +353,23 @@ //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(); NavigationView navigationView = (NavigationView) findViewById(R.id.request_list_nav_view); navigationView.setNavigationItemSelectedListener(this); - LinearLayout productView = (LinearLayout) findViewById(R.id.product); + productView = (LinearLayout) findViewById(R.id.product); productView.setOnClickListener(productOnClick); - LinearLayout deadlineView = (LinearLayout)findViewById(R.id.deadline); + deadlineView = (LinearLayout)findViewById(R.id.deadline); deadlineView.setOnClickListener(deadlineOnClick); - LinearLayout locationView = (LinearLayout)findViewById(R.id.location); + locationView = (LinearLayout)findViewById(R.id.location); locationView.setOnClickListener(locationOnClick); - LinearLayout nameView = (LinearLayout)findViewById(R.id.name); + nameView = (LinearLayout)findViewById(R.id.name); nameView.setOnClickListener(nameOnClick); } @@ -333,8 +415,12 @@ return requestList.get(i).getDeadline().getMonth() + 1; } + @TargetApi(Build.VERSION_CODES.O) private void AddRequestListTable(ArrayList requestList) { Date now = new Date(); + TableLayout requesttable = (TableLayout)findViewById(R.id.RequestList); + requesttable.setShrinkAllColumns(true); + for (int i = 0; i < requestList.size(); i++) { TableRow tableRow = new TableRow(this); @@ -343,7 +429,7 @@ textProduct.setTextSize(20); textProduct.setHeight(150); textProduct.setGravity(Gravity.CENTER); - tableRow.addView(textProduct); + tableRow.addView(textProduct, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT)); TextView textDeadline = new TextView(this); // if(now.after(requestList.get(i).getDeadline())) { @@ -360,23 +446,22 @@ textDeadline.setTextSize(20); textDeadline.setHeight(150); textDeadline.setGravity(Gravity.CENTER); - tableRow.addView(textDeadline); + tableRow.addView(textDeadline, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT)); TextView textLocation = new TextView(this); - textLocation.setText(requestList.get(i).getLocation()); + textLocation.setText(Yolp.getInstance().getSubCategoryByCode(requestList.get(i).getLocation()).getSubName()); textLocation.setTextSize(20); textLocation.setHeight(150); textLocation.setGravity(Gravity.CENTER); - tableRow.addView(textLocation); + tableRow.addView(textLocation, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT)); TextView textName = new TextView(this); textName.setText(requestList.get(i).getName()); textName.setTextSize(20); textName.setHeight(150); textName.setGravity(Gravity.CENTER); - tableRow.addView(textName); + tableRow.addView(textName, new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT)); - TableLayout requesttable = (TableLayout)findViewById(R.id.RequestList); requesttable.addView(tableRow); } } @@ -425,8 +510,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 1532db5..f317028 100644 --- a/app/src/main/java/com/example/cosmosclient/yolp/Yolp.java +++ b/app/src/main/java/com/example/cosmosclient/yolp/Yolp.java @@ -45,6 +45,17 @@ return codeToSubcategory; } + public int getCodeBySubcategory(String selectedSubCategory) { + int code = 0; + for(SubCategory subCategory : codeToSubcategory.values()) { + if(subCategory.getSubName().equals(selectedSubCategory)) { + code = subCategory.getCode(); + break; + } + } + return code; + } + public void setCodeToSubcategory(HashMap codeToSubcategory) { this.codeToSubcategory = codeToSubcategory; } @@ -84,4 +95,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 cc9ddf1..7699cd2 100644 --- a/app/src/main/res/layout/content_request_list.xml +++ b/app/src/main/res/layout/content_request_list.xml @@ -45,28 +45,36 @@ android:id="@+id/RequestList" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:stretchColumns="0, 1, 2, 3" + android:shrinkColumns="0, 1, 2, 3" android:layout_marginStart="15dp" android:layout_marginTop="20dp" - android:layout_marginLeft="15dp"> + android:layout_marginLeft="15dp" + android:layout_marginRight="15dp"> + android:layout_height="wrap_content" + android:layout_marginRight="20dp"> + + + \ 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