diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8dfbd57..e7f88df 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,24 +3,22 @@ xmlns:tools="http://schemas.android.com/tools" package="com.example.cosmosclient"> - - - - - + + android:label="グループ作成" /> @@ -34,7 +32,7 @@ + tools:replace="screenOrientation" /> @@ -49,7 +47,7 @@ android:theme="@style/AppTheme.NoActionBar" /> + android:theme="@style/Base.Theme.AppCompat" /> @@ -73,5 +71,10 @@ android:theme="@style/AppTheme.NoActionBar"> + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/example/cosmosclient/entities/JoinGroupResponse.java b/app/src/main/java/com/example/cosmosclient/entities/JoinGroupResponse.java index b98a746..496e753 100644 --- a/app/src/main/java/com/example/cosmosclient/entities/JoinGroupResponse.java +++ b/app/src/main/java/com/example/cosmosclient/entities/JoinGroupResponse.java @@ -1,11 +1,12 @@ package com.example.cosmosclient.entities; -import java.util.List; +import java.util.ArrayList; public class JoinGroupResponse { public String gId; - public String uId; - public String token; 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/resources/GroupsRest.java b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java index d364c4e..95244ff 100644 --- a/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java +++ b/app/src/main/java/com/example/cosmosclient/resources/GroupsRest.java @@ -15,6 +15,9 @@ import retrofit2.http.Query; public interface GroupsRest { + @GET("groups") + Call getGroups(@Field("uId") String uId, @Field("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/JoinGroupRest.java b/app/src/main/java/com/example/cosmosclient/resources/JoinGroupRest.java index 8472bfb..54d994b 100644 --- a/app/src/main/java/com/example/cosmosclient/resources/JoinGroupRest.java +++ b/app/src/main/java/com/example/cosmosclient/resources/JoinGroupRest.java @@ -13,6 +13,6 @@ public interface JoinGroupRest { @POST("groups/{gId}/members") @FormUrlEncoded - Call JoinGroup(@Path("gId") String gId, @Field("uId ") String uId , @Field("token ") String token); + Call JoinGroup(@Path("gId") String gId, @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 205b4a2..754b307 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("icon-image") String icon_image); 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 5ef1453..92cc9ec 100644 --- a/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/AddMemberActivity.java @@ -19,8 +19,8 @@ public class AddMemberActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { private static final String[] scenes = { - "QRコードで追加", - "IDで追加", + "QRコードで招待", + "IDで招待", "LINEで招待" }; @@ -64,11 +64,10 @@ if(selectedText.contains("QR")==true){ intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); }else if(selectedText.contains("ID")==true){ - intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); + intent = new Intent(this.getApplicationContext(), DisplayGroupIDActivity.class); }else{ // intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); - Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("line://msg/text/?GroupID")); - startActivity(i); + intent = new Intent(Intent.ACTION_VIEW, Uri.parse("line://msg/text/?GroupID")); } // Intent intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); diff --git a/app/src/main/java/com/example/cosmosclient/views/DisplayGroupIDActivity.java b/app/src/main/java/com/example/cosmosclient/views/DisplayGroupIDActivity.java new file mode 100644 index 0000000..09cc020 --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/views/DisplayGroupIDActivity.java @@ -0,0 +1,50 @@ +package com.example.cosmosclient.views; + +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; +import android.os.Build; +import android.support.v7.app.AppCompatActivity; +import android.os.Bundle; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import com.example.cosmosclient.R; +import com.example.cosmosclient.app.Cosmos; +import com.example.cosmosclient.entities.Group; + +public class DisplayGroupIDActivity extends AppCompatActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_display_group_id); + + EditText groupID = (EditText)findViewById(R.id.groupID); + // ボタンを設定 + Button copyButton = findViewById(R.id.copy_Button); + //読み取り専用にする設定 + groupID.setEnabled(false); +// //現在のグループ情報を格納しているものからgIdを取得 + Cosmos app = (Cosmos) getApplication(); + Group curentGroup = app.getCurentGroup(); +// //元となるgIdを取得完了 + final String gId = curentGroup.getgId(); +// final String gId = "vrehngortis"; + groupID.setText(gId); + + copyButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipboardManager clipboard + = (ClipboardManager) getSystemService( + Context.CLIPBOARD_SERVICE); + clipboard.setPrimaryClip(ClipData.newPlainText("", gId)); + } + }); + + } + +} diff --git a/app/src/main/java/com/example/cosmosclient/views/DisplayQRActivity.java b/app/src/main/java/com/example/cosmosclient/views/DisplayQRActivity.java index f02fa63..6daa9d1 100644 --- a/app/src/main/java/com/example/cosmosclient/views/DisplayQRActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/DisplayQRActivity.java @@ -19,14 +19,14 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_qr); -// //現在のグループ情報を格納しているものからgIdを取得 -// Cosmos app = (Cosmos) getApplication(); -// Group curentGroup = app.getCurentGroup(); -// //元となるgIdを取得完了 -// String data = curentGroup.getgId(); + //現在のグループ情報を格納しているものからgIdを取得 + Cosmos app = (Cosmos) getApplication(); + Group curentGroup = app.getCurentGroup(); + //元となるgIdを取得完了 + String data = curentGroup.getgId(); //テスト値 - String data = "http://researchers.adm.konan-u.ac.jp/html/130_ja.html"; +// String data = "http://researchers.adm.konan-u.ac.jp/html/130_ja.html"; //QRコード画像の大きさを指定(pixel) int size = 500; 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 100eaa8..d604bfd 100644 --- a/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/GroupListActivity.java @@ -21,7 +21,12 @@ import android.widget.TextView; import android.widget.Toast; +import com.example.cosmosclient.app.Cosmos; import com.example.cosmosclient.views.DynamicGridView; +import com.example.cosmosclient.resources.GroupsRest; +import retrofit2.Call; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; import com.example.cosmosclient.R; @@ -42,6 +47,31 @@ Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); + final String uId,token; + Cosmos app = (Cosmos) getApplication(); + uId = app.getuId(); + token = app.getToken(); + + //ユーザ名とユーザIDを表示したい + final String uName; + uName = "hogehoge"; + //Call + 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); + + + //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); + //String[] list = {"ファミリー\n 紙コップ\n 延長ケーブル", "Group2\n からし", "Group3\n ケーキ\n something"}; gridView = (DynamicGridView) findViewById(R.id.dynamic_grid); @@ -172,5 +202,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 df0f054..d62ef21 100644 --- a/app/src/main/java/com/example/cosmosclient/views/JoinGroupByIDActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/JoinGroupByIDActivity.java @@ -49,18 +49,17 @@ //* 必要値取得 *// //現在のグループ情報を格納しているものからuid,tokenを取得 -// Cosmos app = (Cosmos) getApplication(); - //元となるgId,uid,tokenを取得完了 -// String gId = GroupID; -// String uId=app.getuId(); -// String token=app.getToken(); + Cosmos app = (Cosmos) getApplication(); + //uid,tokenを取得完了 + final String uId=app.getuId(); + String token=app.getToken(); //テスト値 - String gId="qwer"; - String uId="asdf"; - String token="sggh"; + String gId=GroupID; +// String uId="asdf"; +// String token="sggh"; //API呼び出しのための値入力 - Call call = joinGroupService.JoinGroup(gId, uId, token); + final Call call = joinGroupService.JoinGroup(gId, uId, token); //サーバからデータ受け取り call.enqueue(new Callback() { @@ -69,21 +68,18 @@ public void onResponse(Call call, Response response) { if (response.isSuccessful()) { // JoinGroupResponse result = response.body(); - test.setText("成功"); - Cosmos app = (Cosmos) getApplication(); -// Intent intent = new Intent(getApplication(), GroupListActivity.class); + //成功時 + JoinGroupResponse result = response.body(); + Group g = new Group(result.gId,result.uri,result.name,uId); - //test -// System.out.println(result.gId); -// 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); + //app/CosmosにgIdを保存 + Cosmos app = (Cosmos)getApplication(); + app.setCurrentGroup(g); + Intent intent = new Intent(getApplication(), RequestListActivity.class); + startActivity(intent); //ここで成功の処理を記述 -// finish(); + finish(); } else { //onFailureでキャッチできないエラー用 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 31b2691..850be3f 100644 --- a/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java +++ b/app/src/main/java/com/example/cosmosclient/views/ListViewAdapter.java @@ -40,7 +40,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/QRcodeReadingActivity.java b/app/src/main/java/com/example/cosmosclient/views/QRcodeReadingActivity.java index c49cee9..94c6750 100644 --- a/app/src/main/java/com/example/cosmosclient/views/QRcodeReadingActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/QRcodeReadingActivity.java @@ -11,6 +11,7 @@ import com.example.cosmosclient.R; import com.example.cosmosclient.app.Cosmos; +import com.example.cosmosclient.entities.Group; import com.example.cosmosclient.entities.JoinGroupResponse; import com.example.cosmosclient.resources.JoinGroupRest; import com.google.zxing.integration.android.IntentIntegrator; @@ -67,15 +68,15 @@ //* 必要値取得 *// //現在のグループ情報を格納しているものからuid,tokenを取得 -// Cosmos app = (Cosmos) getApplication(); + Cosmos app = (Cosmos) getApplication(); //元となるgId,uid,tokenを取得完了 -// String gId = (String)result.getContents(); -// String uId=app.getuId(); -// String token=app.getToken(); + String gId = (String)result.getContents(); + final String uId=app.getuId(); + String token=app.getToken(); - String gId="dnjewvhoirae"; - String uId="dnjewvhfgoirae"; - String token="dnjewvhoidgfrae"; +// String gId="dnjewvhoirae"; +// String uId="dnjewvhfgoirae"; +// String token="dnjewvhoidgfrae"; //API呼び出しのための値入力 Call call = joinGroupService.JoinGroup(gId, uId, token); @@ -86,22 +87,21 @@ @Override public void onResponse(Call call, Response response) { if (response.isSuccessful()) { + //成功時 JoinGroupResponse result = response.body(); + Group g = new Group(result.gId,result.uri,result.name,uId); - Cosmos app = (Cosmos) getApplication(); - //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); + //app/CosmosにgIdを保存 + Cosmos app = (Cosmos)getApplication(); + app.setCurrentGroup(g); + Intent intent = new Intent(getApplication(), RequestListActivity.class); + startActivity(intent); //ここで成功の処理を記述 - testtxt.setText("成功"); - finish(); + + } else { //onFailureでキャッチできないエラー用 //ここでエラーの処理を記述 diff --git a/app/src/main/res/layout/activity_add_member.xml b/app/src/main/res/layout/activity_add_member.xml index 7274a61..242f8aa 100644 --- a/app/src/main/res/layout/activity_add_member.xml +++ b/app/src/main/res/layout/activity_add_member.xml @@ -18,8 +18,8 @@ tools:layout_editor_absoluteX="0dp" /> + + + + + + +