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);
}
});
}
}