package com.example.cosmosclient.views; import android.content.Intent; import android.support.v7.app.AppCompatActivity; 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.entities.User; 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 java.lang.reflect.Member; import java.util.List; 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); setContentView(R.layout.activity_qrcode_reading); QRcodeResult = findViewById(R.id.QRcodeResult); //ここでQRコードリーダーオブジェクト生成 IntentIntegrator integrator = new IntentIntegrator(this); // new IntentIntegrator(QRcodeReadingActivity.this).initiateScan(); // スキャン画面の回転の制御 integrator.setOrientationLocked(false); //バーコードリーダーの起動 integrator.initiateScan(); } //QRコードから読み取った結果の取得 @Override protected void onActivityResult(int requestCode, int resultCode, Intent 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="df6cddf2-7aff-4601-9ba7-d32bdc5d7e75"; // String uId="dnjewvhfgoirae"; // String token="dnjewvhoidgfrae"; //API呼び出しのための値入力 Call<JoinGroupResponse> call = joinGroupService.JoinGroup(gId, uId, token); //サーバからデータ受け取り call.enqueue(new Callback<JoinGroupResponse>() { //成功時 @Override public void onResponse(Call<JoinGroupResponse> call, Response<JoinGroupResponse> response) { if (response.isSuccessful()) { List<User> listMembers= response.body().getListMembers(); int s = listMembers.size(); // for(int i = 0; i < s; i++){ // Log.d("debug3", String.valueOf(listMembers.get(i))); // } 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<JoinGroupResponse> call, Throwable t) { t.printStackTrace(); Toast.makeText(QRcodeReadingActivity.this, "アカウント作成失敗",Toast.LENGTH_SHORT); } }); } }