diff --git a/app/src/main/java/com/example/tampopo_client/models/User.java b/app/src/main/java/com/example/tampopo_client/models/User.java index 6533361..2c92b82 100644 --- a/app/src/main/java/com/example/tampopo_client/models/User.java +++ b/app/src/main/java/com/example/tampopo_client/models/User.java @@ -1,7 +1,9 @@ package com.example.tampopo_client.models; -public class User { +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +@JsonIgnoreProperties(ignoreUnknown = true) +public class User { private String userId; //ユーザーID private String name; //ニックネーム private String email; //メールアドレス @@ -9,6 +11,7 @@ private String token; //トークン + //コンストラクタ public User(String name, String email, String icon) { this.name = name; @@ -21,10 +24,10 @@ } - public String getId() { + public String getUserId() { return userId; } - public void setId(String userId) { + public void setUserId(String userId) { this.userId = userId; } diff --git a/app/src/main/java/com/example/tampopo_client/viewmodels/UserViewModel.java b/app/src/main/java/com/example/tampopo_client/viewmodels/UserViewModel.java index 779f6f8..2281719 100644 --- a/app/src/main/java/com/example/tampopo_client/viewmodels/UserViewModel.java +++ b/app/src/main/java/com/example/tampopo_client/viewmodels/UserViewModel.java @@ -89,24 +89,34 @@ loading.setValue(true); userResource.createUser(id, password).enqueue(new Callback() { @Override - public void onResponse(Call c, Response res) { - loading.setValue(false); - if (res.isSuccessful()) { - User u = res.body(); - user.setValue(u); - } else { - error.setValue("登録失敗: " + res.code()); - } - } + public void onResponse (Call < User > c, Response < User > res){ + loading.setValue(false); + if (res.isSuccessful() && res.body() != null) { + User u = res.body(); + Log.d("API_RESPONSE", u.getUserId()); - @Override - public void onFailure(Call c, Throwable t) { - loading.setValue(false); - error.setValue("エラー: " + t.getMessage()); - } + user.setValue(res.body()); + } else { + if (res.code() == 409) { + error.setValue("このユーザーIDは既に使用されています"); + user.setValue(null); + } else { + Log.e("API_RESPONSE", "Response error code: " + res.code()); + error.setValue("登録失敗: " + res.code()); + user.setValue(null); + } + } + } + @Override + public void onFailure(Call c, Throwable t){ + loading.setValue(false); + error.setValue("エラー: " + t.getMessage()); + } }); } + + //ログイン public void login(String id, String password) { loading.setValue(true); diff --git a/app/src/main/java/com/example/tampopo_client/views/FriendIconView.java b/app/src/main/java/com/example/tampopo_client/views/FriendIconView.java index f49fa75..da95864 100644 --- a/app/src/main/java/com/example/tampopo_client/views/FriendIconView.java +++ b/app/src/main/java/com/example/tampopo_client/views/FriendIconView.java @@ -150,6 +150,7 @@ fromDialog.dismiss(); mFriendChatNotification.setVisibility(View.GONE);//赤丸を消す chatNotification = false; + invalidate(); // 通話を開始する Tampopo tampopo = (Tampopo) ((MainActivity) getContext()).getApplication(); diff --git a/app/src/main/java/com/example/tampopo_client/views/RegisterActivity.java b/app/src/main/java/com/example/tampopo_client/views/RegisterActivity.java index a02a716..258f65e 100644 --- a/app/src/main/java/com/example/tampopo_client/views/RegisterActivity.java +++ b/app/src/main/java/com/example/tampopo_client/views/RegisterActivity.java @@ -42,18 +42,40 @@ //入力欄の取得 EditText userIdEditText = findViewById(R.id.editTextUserId); EditText passwordEditText = findViewById(R.id.editTextPassword); + Button registerButton = findViewById(R.id.Registerbutton); + Button loginButton = findViewById(R.id.Loginbutton2); // ユーザー登録後に login を呼び出す userViewModel.getUser().observe(this, user -> { if (user != null) { + // tampopo に一旦IDとパスワードを保存(トークン取得後にも使用) + tampopo.setUserId(userId); + tampopo.setPassword(password); userViewModel.login(userId, password); + } + }); + // エラーメッセージを監視してトースト表示 + userViewModel.getError().observe(this, errorMessage -> { + if (errorMessage != null && !errorMessage.isEmpty()) { + Toast.makeText(RegisterActivity.this, errorMessage, Toast.LENGTH_SHORT).show(); + } + }); + + + userViewModel.getToken().observe(this,token ->{ + if(token != null && !token.isEmpty()){ + // トークンをTampopoに保存 + tampopo.setToken(token); + // 画面遷移 + Intent intent = new Intent(RegisterActivity.this, UserInfoActivity.class); + startActivity(intent); + finish(); } else { - Toast.makeText(RegisterActivity.this, "アカウント作成に失敗しました", Toast.LENGTH_SHORT).show(); + Toast.makeText(RegisterActivity.this, "トークン取得に失敗しました", Toast.LENGTH_SHORT).show(); } }); //登録 - Button registerButton = (Button) findViewById(R.id.Registerbutton); registerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -68,34 +90,25 @@ //通信 userViewModel.createUser(userId, password); - - - // tampopo に一旦IDとパスワードを保存(トークン取得後にも使用) - tampopo.setUserId(userId); - tampopo.setPassword(password); - - userViewModel.login(userId, password); - } }); - //トークン - userViewModel.getToken().observe(this, token -> { - if (token != null && !token.isEmpty()) { - // トークンをTampopoに保存 - tampopo.setToken(token); - - // 画面遷移 - Intent intent = new Intent(RegisterActivity.this, UserInfoActivity.class); - startActivity(intent); - finish(); - } else { - Toast.makeText(RegisterActivity.this, "トークン取得に失敗しました", Toast.LENGTH_SHORT).show(); - } - }); +// //トークン +// userViewModel.getToken().observe(this, token -> { +// if (token != null && !token.isEmpty()) { +// // トークンをTampopoに保存 +// tampopo.setToken(token); +// +// // 画面遷移 +// Intent intent = new Intent(RegisterActivity.this, UserInfoActivity.class); +// startActivity(intent); +// finish(); +// } else { +// Toast.makeText(RegisterActivity.this, "トークン取得に失敗しました", Toast.LENGTH_SHORT).show(); +// } +// }); //ログイン画面へ - Button loginButton = findViewById(R.id.Loginbutton2); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {