diff --git a/app/src/main/java/com/example/cosmosclient/entities/JoinGroupResponse.java b/app/src/main/java/com/example/cosmosclient/entities/JoinGroupResponse.java new file mode 100644 index 0000000..b98a746 --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/entities/JoinGroupResponse.java @@ -0,0 +1,11 @@ +package com.example.cosmosclient.entities; + +import java.util.List; + +public class JoinGroupResponse { + public String gId; + public String uId; + public String token; + public String uri; + +} diff --git a/app/src/main/java/com/example/cosmosclient/resources/JoinGroupRest.java b/app/src/main/java/com/example/cosmosclient/resources/JoinGroupRest.java new file mode 100644 index 0000000..8472bfb --- /dev/null +++ b/app/src/main/java/com/example/cosmosclient/resources/JoinGroupRest.java @@ -0,0 +1,18 @@ +package com.example.cosmosclient.resources; + +import com.example.cosmosclient.entities.JoinGroupResponse; +import com.example.cosmosclient.entities.SigninResponse; + +import retrofit2.Call; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.POST; +import retrofit2.http.Path; +import retrofit2.http.Query; + +public interface JoinGroupRest { + @POST("groups/{gId}/members") + @FormUrlEncoded + Call JoinGroup(@Path("gId") String gId, @Field("uId ") String uId , @Field("token ") String token); + +} diff --git a/app/src/main/java/com/example/cosmosclient/views/JoinGroupActionsActivity.java b/app/src/main/java/com/example/cosmosclient/views/JoinGroupActionsActivity.java index 321bf48..ecde6ec 100644 --- a/app/src/main/java/com/example/cosmosclient/views/JoinGroupActionsActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/JoinGroupActionsActivity.java @@ -15,14 +15,12 @@ private static final String[] scenes = { "QRコードでグループに入る", "IDでグループに入る", - "メールでグループに入る" }; // ちょっと冗長的ですが分かり易くするために private static final int[] photos = { R.drawable.camera_image, R.drawable.search_image, - R.drawable.mail_image, }; @Override @@ -57,8 +55,6 @@ intent = new Intent(this.getApplicationContext(), QRcodeReadingActivity.class); }else if(selectedText.contains("ID")==true){ intent = new Intent(this.getApplicationContext(), JoinGroupByIDActivity.class); - }else{ - intent = new Intent(this.getApplicationContext(), QRcodeReadingActivity.class); } // Intent intent = new Intent(this.getApplicationContext(), DisplayQRActivity.class); 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 b861a8e..df0f054 100644 --- a/app/src/main/java/com/example/cosmosclient/views/JoinGroupByIDActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/JoinGroupByIDActivity.java @@ -1,13 +1,25 @@ package com.example.cosmosclient.views; +import android.content.Intent; 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; +import com.example.cosmosclient.entities.JoinGroupResponse; +import com.example.cosmosclient.resources.JoinGroupRest; + +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; public class JoinGroupByIDActivity extends AppCompatActivity { private String GroupID=null; @@ -16,7 +28,7 @@ super.onCreate(savedInstanceState); setContentView(R.layout.activity_join_group_by_id); //テストでグループIDを出力 - final TextView result = (TextView)findViewById(R.id.IDresult); + final TextView test = (TextView)findViewById(R.id.IDresult); //buttonを取得 Button btn = (Button)findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() { @@ -25,7 +37,73 @@ //ボタンを押されると入力されたグループIDを取得 EditText inputGroupID = (EditText)findViewById(R.id.inputGroupID); GroupID = inputGroupID.getText().toString(); - result.setText(GroupID); + test.setText(GroupID); + //retrofitの処理 + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + //interfaceから実装を取得 + JoinGroupRest joinGroupService = retrofit.create(JoinGroupRest.class); + + + //* 必要値取得 *// + //現在のグループ情報を格納しているものからuid,tokenを取得 +// Cosmos app = (Cosmos) getApplication(); + //元となるgId,uid,tokenを取得完了 +// String gId = GroupID; +// String uId=app.getuId(); +// String token=app.getToken(); + + //テスト値 + String gId="qwer"; + String uId="asdf"; + String token="sggh"; + //API呼び出しのための値入力 + Call call = joinGroupService.JoinGroup(gId, uId, token); + + //サーバからデータ受け取り + call.enqueue(new Callback() { + //成功時 + @Override + 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); + + //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); + + //ここで成功の処理を記述 +// finish(); + + } else { + //onFailureでキャッチできないエラー用 + //ここでエラーの処理を記述 + test.setText("失敗"); + + } + } + + + //失敗時 + @Override + public void onFailure(Call call, Throwable t) { + t.printStackTrace(); + Toast.makeText(JoinGroupByIDActivity.this, + "アカウント作成失敗",Toast.LENGTH_SHORT); + test.setText("超失敗"); + + } + }); } }); } 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 af17d80..c49cee9 100644 --- a/app/src/main/java/com/example/cosmosclient/views/QRcodeReadingActivity.java +++ b/app/src/main/java/com/example/cosmosclient/views/QRcodeReadingActivity.java @@ -5,16 +5,28 @@ import android.os.Bundle; import android.util.Log; import android.view.View; +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.JoinGroupResponse; +import com.example.cosmosclient.resources.JoinGroupRest; import com.google.zxing.integration.android.IntentIntegrator; import com.google.zxing.integration.android.IntentResult; import com.journeyapps.barcodescanner.CaptureActivity; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; +import retrofit2.Retrofit; +import retrofit2.converter.jackson.JacksonConverterFactory; + public class QRcodeReadingActivity extends CaptureActivity { public String QRcodeData = null; TextView QRcodeResult; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -34,12 +46,78 @@ //QRコードから読み取った結果の取得 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { - IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); + final IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data); if(result != null) { QRcodeData = (String)result.getContents(); QRcodeResult.setText(QRcodeData); } else { super.onActivityResult(requestCode, resultCode, data); } + + //テストでグループIDを出力 + final TextView testtxt = (TextView)findViewById(R.id.result); + + //retrofitの処理 + final Retrofit retrofit = new Retrofit.Builder() + .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/cosmos/") + .addConverterFactory(JacksonConverterFactory.create()) + .build(); + //interfaceから実装を取得 + final JoinGroupRest joinGroupService = retrofit.create(JoinGroupRest.class); + + //* 必要値取得 *// + //現在のグループ情報を格納しているものからuid,tokenを取得 +// Cosmos app = (Cosmos) getApplication(); + //元となるgId,uid,tokenを取得完了 +// String gId = (String)result.getContents(); +// String uId=app.getuId(); +// String token=app.getToken(); + + String gId="dnjewvhoirae"; + String uId="dnjewvhfgoirae"; + String token="dnjewvhoidgfrae"; + //API呼び出しのための値入力 + Call call = joinGroupService.JoinGroup(gId, uId, token); + + //サーバからデータ受け取り + call.enqueue(new Callback() { + + //成功時 + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + JoinGroupResponse result = response.body(); + + 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); + + //ここで成功の処理を記述 + testtxt.setText("成功"); + + finish(); + + } else { + //onFailureでキャッチできないエラー用 + //ここでエラーの処理を記述 + testtxt.setText("失敗"); + + } + } + + + //失敗時 + @Override + public void onFailure(Call call, Throwable t) { + t.printStackTrace(); + Toast.makeText(QRcodeReadingActivity.this, + "アカウント作成失敗",Toast.LENGTH_SHORT); + } + }); } } diff --git a/app/src/main/res/layout/activity_qrcode_reading.xml b/app/src/main/res/layout/activity_qrcode_reading.xml index 3a7780e..5fb778a 100644 --- a/app/src/main/res/layout/activity_qrcode_reading.xml +++ b/app/src/main/res/layout/activity_qrcode_reading.xml @@ -17,4 +17,17 @@ app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + + \ No newline at end of file