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 fb95de5..2f2cf5b 100644 --- a/app/src/main/java/com/example/nemophila/resources/AccountsRest.java +++ b/app/src/main/java/com/example/nemophila/resources/AccountsRest.java @@ -2,15 +2,14 @@ //import android.accounts.Account; -import com.example.nemophila.entities.Account; import com.example.nemophila.entities.AccountJson; -import com.example.nemophila.entities.Post; +import com.example.nemophila.entities.PostJson; import java.util.Collection; import java.util.HashMap; -import java.util.List; import retrofit2.Call; +import retrofit2.Response; import retrofit2.http.DELETE; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; @@ -31,7 +30,7 @@ ); @GET("accounts/{uid}") - Call getAccount( + Response getAccount( @Path("uid") String uid ); @@ -65,7 +64,7 @@ ); @GET("accounts/{uid}/posts") - Call> getAccountPosts( + 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 42479b7..b646750 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java @@ -1,12 +1,16 @@ package com.example.nemophila.viewmodels; import com.example.nemophila.entities.Account; +import com.example.nemophila.entities.AccountJson; import com.example.nemophila.entities.Post; +import com.example.nemophila.entities.PostJson; import com.example.nemophila.resources.AccountsRest; import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; +import java.io.IOException; +import java.util.ArrayList; import java.util.Collection; import retrofit2.Call; @@ -35,29 +39,53 @@ } // ライブデータの取得(ゲッター) - public MutableLiveData getAccountLiveData() { - return accountLiveData; - } + public MutableLiveData getAccountLiveData() { return accountLiveData; } public MutableLiveData> getAccountPostsLiveData() { return accountPostsLiveData; } - // 対象のアカウント情報の取得 - public void getAccount(String uid) { - Call call = accountsRest.getAccount(uid); + //AccountJsonからAccountを作成し,対象のライブデータに設定する + private void setAccountLiveDataFromJson(AccountJson accountJson) { + Account account = new Account(accountJson); + accountLiveData.setValue(account); + } - call.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()) { - accountLiveData.setValue(response.body()); - } else { - System.out.println("response error"); - } - } - @Override - public void onFailure(Call call, Throwable t) { - System.out.println("correspondence error"); - } - }); + //PostJsonからPostを作成し,対象のライブデータに設定する + private void setAccountPostLiveDataFromJson(Collection postJson) { + ArrayList posts = new ArrayList<>(); + for(PostJson i: postJson) { + Post post = new Post(i); + posts.add(post); + } + accountPostsLiveData.setValue(posts); + } + + // 対象のアカウント情報の取得 + public Account getAccount(String uid) throws IOException { +// Call call = accountsRest.getAccount(uid); + + Response response = accountsRest.getAccount(uid); + if (response.isSuccessful()) { + Account account = new Account(response.body()); + return account; + } else { + throw new IOException(); + } + + +// call.enqueue(new Callback() { +// @Override +// public void onResponse(Call call, Response response) { +// if (response.isSuccessful()) { +// AccountJson accountJson = response.body(); +// setAccountLiveDataFromJson(accountJson); +// } else { +// System.out.println("response error"); +// } +// } +// @Override +// public void onFailure(Call call, Throwable t) { +// System.out.println("correspondence error"); +// } +// }); } // 対象のアカウント情報の削除 @@ -122,19 +150,20 @@ // 対象のアカウントがした投稿の全取得 public void getAccountPosts(String uid) { - Call> call = accountsRest.getAccountPosts(uid); + Call> call = accountsRest.getAccountPosts(uid); - call.enqueue(new Callback>() { + call.enqueue(new Callback>() { @Override - public void onResponse(Call> call, Response> response) { + public void onResponse(Call> call, Response> response) { if (response.isSuccessful()) { - accountPostsLiveData.setValue(response.body()); + Collection postJson = response.body(); + setAccountPostLiveDataFromJson(postJson); } else { System.out.println("response error"); } } @Override - public void onFailure(Call> call, Throwable t) { + public void onFailure(Call> call, Throwable t) { System.out.println("correspondence error"); } });