diff --git a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java index 02a6203..83ab4a8 100644 --- a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java +++ b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java @@ -65,6 +65,14 @@ @Field("token") String token ); + @FormUrlEncoded + @PUT("accounts/{uid}/icon") + Call changeIcon( + @Path("uid") String uid, + @Field("name") String icon, + @Field("token") String token + ); + @GET("accounts/{uid}/posts") Call> getAccountPosts( @Path("uid") String uid diff --git a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java index 207f837..a4f9f2a 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java @@ -37,6 +37,7 @@ private final MutableLiveData pwErrorLiveData; private final MutableLiveData accountLiveData; private final MutableLiveData errorLiveData; + private final MutableLiveData finishChangeIconLiveData; // コンストラクタ public AccountViewModel() { @@ -51,6 +52,7 @@ this.pwErrorLiveData = new MutableLiveData<>(); this.accountLiveData = new MutableLiveData<>(); this.errorLiveData = new MutableLiveData<>(); + this.finishChangeIconLiveData = new MutableLiveData<>(); } // ライブデータの取得(ゲッター) @@ -70,6 +72,7 @@ public MutableLiveData getErrorLiveData() { return errorLiveData; } + public MutableLiveData getFinishChangeIconLiveData() {return finishChangeIconLiveData;} // 対象のアカウント情報の削除 public void deleteAccount(String uid, String token) { @@ -138,6 +141,29 @@ }); } + // アイコンの変更を行う + public void changeIcon(String uid, String icon, String token) { + Call call = accountsRest.changeIcon(uid, icon, token); + + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) { + if (response.isSuccessful()) { + finishChangeIconLiveData.setValue(true); + } else { + finishChangeIconLiveData.setValue(false); + System.out.println("response error"); + } + } + + @Override + public void onFailure(Call call, Throwable t) { + finishChangeIconLiveData.setValue(false); + System.out.println("ChangeIcon NetworkError :" + t); + } + }); + } + // 対象のアカウントがした投稿の全取得 public void getAccountPosts(String uid) { Call> call = accountsRest.getAccountPosts(uid); @@ -160,7 +186,7 @@ }); } - //PostJsonからPostを作成し,対象のライブデータに設定する + // PostJsonからPostを作成し,対象のライブデータに設定する private void setAccountPostLiveDataFromJson(Collection postJson) { ArrayList posts = new ArrayList<>(); for(PostJson pj: postJson) {