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; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_join_group_by_id); //テストでグループIDを出力 final TextView test = (TextView)findViewById(R.id.IDresult); //buttonを取得 Button btn = (Button)findViewById(R.id.button); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //ボタンを押されると入力されたグループIDを取得 EditText inputGroupID = (EditText)findViewById(R.id.inputGroupID); GroupID = inputGroupID.getText().toString(); 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(); //uid,tokenを取得完了 final String uId=app.getuId(); String token=app.getToken(); //テスト値 String gId=GroupID; // String uId="asdf"; // String token="sggh"; //API呼び出しのための値入力 final 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()) { //成功時 final JoinGroupResponse result = response.body(); //追加ボタンに関する記述 test.setText(result.name); Button AddBtn = (Button)findViewById(R.id.Addbutton); AddBtn.setVisibility(View.VISIBLE); AddBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Group g = new Group(result.gId, result.uri, result.name, uId); //app/CosmosにgIdを保存 Cosmos app = (Cosmos) getApplication(); app.setCurrentGroup(g); Intent intent = new Intent(getApplication(), RequestListActivity.class); startActivity(intent); finish(); } }); }else { //onFailureでキャッチできないエラー用 //ここでエラーの処理を記述 test.setText("失敗"); } } //失敗時 @Override public void onFailure(Call<JoinGroupResponse> call, Throwable t) { t.printStackTrace(); Toast.makeText(JoinGroupByIDActivity.this, "アカウント作成失敗",Toast.LENGTH_SHORT); test.setText("超失敗"); } }); } }); } }