diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e83b75f..1de6c3b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -70,8 +70,9 @@ android:label="メンバー追加" /> + android:label="グループ一覧" + android:theme="@style/AppTheme.NoActionBar"> + 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/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..1e62250 100644 --- a/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java +++ b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java @@ -3,6 +3,7 @@ import com.example.cosmosclient.entities.AddRequestsResponse; import com.example.cosmosclient.entities.CreateGroupResponse; import com.example.cosmosclient.entities.Group; +import com.example.cosmosclient.entities.GroupListResponse; import com.example.cosmosclient.entities.MemberListResponse; import com.example.cosmosclient.entities.Request; import com.example.cosmosclient.entities.Requests; @@ -22,6 +23,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); 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..b05522c 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.User; 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, @Field("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/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/GroupListActivity.java b/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java index 22b50ec..16bd164 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,11 @@ 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.util.Base64; import android.util.Log; import android.view.View; import android.support.v4.view.GravityCompat; @@ -16,15 +19,27 @@ import android.view.Menu; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.BaseAdapter; import android.widget.GridView; 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.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 +48,7 @@ private static final String TAG = GroupListActivity.class.getName(); private DynamicGridView gridView; + GroupListResponse result; @Override @@ -42,12 +58,101 @@ Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); - String[] list = {"ファミリー\n 紙コップ\n 延長ケーブル", "Group2\n からし", "Group3\n ケーキ\n something"}; + final String uId,token; + Cosmos app = (Cosmos) getApplication(); + uId = app.getuId(); + token = app.getToken(); + //ユーザ名とユーザIDを表示したい + final String uName; + uName = "hogehoge"; + 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); + userNameTextView.setText("ユーザ名:"+uName); + userIDTextView.setText("ユーザID:"+uId); + final ArrayList groupList = new ArrayList<>(); + + //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 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(); + } + }); + +// 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 @@ -81,15 +186,15 @@ }); /* とりあえずの画面遷移なので変更するかも */ - 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); @@ -172,5 +277,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/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/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/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"/>