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/rest/")
.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("超失敗");
}
});
}
});
}
}