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 84ddf44..779f6f8 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 @@ -45,15 +45,15 @@ private final Retrofit retrofit; private static UserResource userResource; - private static final MutableLiveData user = new MutableLiveData<>(); - private final MutableLiveData token = new MutableLiveData<>(); - private final MutableLiveData icon = new MutableLiveData<>(); - private final MutableLiveDataloading = new MutableLiveData<>(false); - private static final MutableLiveData error = new MutableLiveData<>(); + private static final MutableLiveData user = new MutableLiveData<>(); + private final MutableLiveData token = new MutableLiveData<>(); + private final MutableLiveData icon = new MutableLiveData<>(); + private final MutableLiveData loading = new MutableLiveData<>(false); + private static final MutableLiveData error = new MutableLiveData<>(); //コンストラクタ - public UserViewModel(){ + public UserViewModel() { this.retrofit = new Retrofit.Builder() .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/tampopo/") .addConverterFactory(ScalarsConverterFactory.create()) @@ -62,11 +62,25 @@ this.userResource = retrofit.create(UserResource.class); } - public LiveData getUser() { return user; } - public LiveData getToken() { return token; } - public LiveData getIcon() { return icon; } - public LiveDataisLoading() { return loading;} - public static LiveData getError() { return error; } + public LiveData getUser() { + return user; + } + + public LiveData getToken() { + return token; + } + + public LiveData getIcon() { + return icon; + } + + public LiveData isLoading() { + return loading; + } + + public static LiveData getError() { + return error; + } //新規登録 enqueueで非同期処理、Callbackで成功失敗の処理、LiveDataに反映 //サーバーから返ってきた型と合わせないとFailureに流れる @@ -74,7 +88,8 @@ public void createUser(String id, String password) { loading.setValue(true); userResource.createUser(id, password).enqueue(new Callback() { - @Override public void onResponse(Call c, Response res) { + @Override + public void onResponse(Call c, Response res) { loading.setValue(false); if (res.isSuccessful()) { User u = res.body(); @@ -83,7 +98,9 @@ error.setValue("登録失敗: " + res.code()); } } - @Override public void onFailure(Call c, Throwable t) { + + @Override + public void onFailure(Call c, Throwable t) { loading.setValue(false); error.setValue("エラー: " + t.getMessage()); } @@ -94,7 +111,8 @@ public void login(String id, String password) { loading.setValue(true); userResource.login(id, password).enqueue(new Callback() { - @Override public void onResponse(Call c, Response res) { + @Override + public void onResponse(Call c, Response res) { loading.setValue(false); if (res.isSuccessful()) { userResource.getUser(id); @@ -104,12 +122,15 @@ error.setValue("ログイン失敗: " + res.code()); } } - @Override public void onFailure(Call c, Throwable t) { + + @Override + public void onFailure(Call c, Throwable t) { loading.setValue(false); error.setValue("エラー: " + t.getMessage()); } }); } + //ニックネーム public String getNickname(String id) { Call call = userResource.getName(id); @@ -129,8 +150,8 @@ // } - //アイコン - public String getIcon(String id) { + //フレンドのアイコンをとってくる + public String getFriendIcon(String id) { Call call = userResource.getIcon(id); try { Response response = call.execute(); @@ -138,7 +159,6 @@ if (response.isSuccessful()) { System.out.println(response.code()); String iconUrl = response.body(); - icon.postValue(iconUrl); return iconUrl; } else { System.out.println(response.code()); @@ -163,7 +183,14 @@ // }); } - //アイコン(非同期) + //アイコン(非同期)idはログインユーザーのuser-id + + /** + * 自身のアイコンを取ってくる + * + * @param id ログインユーザーのuser-id + * @deprecated + */ public void getIconAsync(String id) { Call call = userResource.getIcon(id); call.enqueue(new Callback() { @@ -182,6 +209,31 @@ }); } + /** + * 自身のアイコンを取ってくる + */ + public void getMyIcon(String id) { +// User currentUser = user.getValue(); +// if (currentUser == null) { +// return; +// } + Call call = userResource.getIcon(id); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + String iconUrl = response.body(); + icon.postValue(iconUrl); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + Log.e("UserViewModel", "Error"); + } + }); + } + public void updateIcon(String id, String newIcon, String token) { Call call = userResource.updateIcon(id, newIcon, token); @@ -196,7 +248,9 @@ System.out.println(response.code()); } } - @Override public void onFailure(Call call, Throwable t) { + + @Override + public void onFailure(Call call, Throwable t) { System.out.println("エラー: " + t.getMessage()); } }); @@ -229,11 +283,12 @@ } }); } + //パスワードの変更(市井) - public void updatePassword(String userId, String newPassword ,String tokenValue) { + public void updatePassword(String userId, String newPassword, String tokenValue) { loading.setValue(true); - userResource.updatePassword(userId, newPassword ,tokenValue).enqueue(new Callback() { + userResource.updatePassword(userId, newPassword, tokenValue).enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { loading.setValue(false); @@ -288,8 +343,6 @@ } - - //viewModelのところでを呼び出すがフレンド系は西村さんの方で管理する }