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 300fbe7..207f837 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/AccountViewModel.java @@ -7,6 +7,7 @@ import com.example.nemophila.entities.Account; import com.example.nemophila.entities.AccountJson; import com.example.nemophila.entities.AccountNameJson; +import com.example.nemophila.entities.ErrorType; import com.example.nemophila.entities.Post; import com.example.nemophila.entities.PostJson; import com.example.nemophila.resources.AccountsRest; @@ -35,6 +36,7 @@ private final MutableLiveData> accountPostsLiveData; private final MutableLiveData pwErrorLiveData; private final MutableLiveData accountLiveData; + private final MutableLiveData errorLiveData; // コンストラクタ public AccountViewModel() { @@ -48,6 +50,7 @@ this.accountPostsLiveData = new MutableLiveData<>(); this.pwErrorLiveData = new MutableLiveData<>(); this.accountLiveData = new MutableLiveData<>(); + this.errorLiveData = new MutableLiveData<>(); } // ライブデータの取得(ゲッター) @@ -64,6 +67,9 @@ public MutableLiveData getAccountLiveData() { return accountLiveData; } + public MutableLiveData getErrorLiveData() { + return errorLiveData; + } // 対象のアカウント情報の削除 public void deleteAccount(String uid, String token) { @@ -242,4 +248,17 @@ } accountPostsLiveData.setValue(preData); } + + private String parseStatusCode(Integer stats) { + switch (stats) { + case 404: + return ErrorType.ResponseNoyFound.getText(); + case 401: + return ErrorType.InvalidToken.getText(); + case 400: + return ErrorType.ResponseError.getText(); + default: + return ErrorType.UnknownError.getText(); + } + } } diff --git a/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java index 2985f6a..9229454 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/PostsViewModel.java @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; +import com.example.nemophila.entities.ErrorType; import com.example.nemophila.entities.Post; import com.example.nemophila.entities.PostJson; import com.example.nemophila.resources.PostsRest; @@ -26,6 +27,7 @@ //LiveData final private MutableLiveData> accountPostsLiveData; final private MutableLiveData> shopPostsLiveData; + private final MutableLiveData errorLiveData; //コンストラクタ public PostsViewModel() { @@ -36,6 +38,7 @@ .addConverterFactory(JacksonConverterFactory.create()) .build(); this.postsRest = retrofit.create(PostsRest.class); + this.errorLiveData = new MutableLiveData<>(); } //getter @@ -45,6 +48,9 @@ public LiveData> getShopPostLiveData() { return this.shopPostsLiveData; } + public MutableLiveData getErrorLiveData() { + return errorLiveData; + } //AccountのpostJsonを取得 @@ -57,12 +63,14 @@ setAccountPostLiveData(response.body()); } else { System.out.println("AccountPosts ResponseError"); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call> call, Throwable t) { System.out.println("AccountPosts NetWorkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -88,12 +96,14 @@ setShopPostLiveData(postJson); } else { System.out.println("ShopPosts ResponseError"); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call> call, Throwable t) { System.out.println("ShopPosts NetWorkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -120,12 +130,14 @@ System.out.println("Success CreatePost" + response.body()); } else { System.out.println("CreatePosts ResponseError"); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call call, Throwable t) { System.out.println("CreatePosts NetWorkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -137,4 +149,17 @@ } return ids; } + + private String parseStatusCode(Integer stats) { + switch (stats) { + case 404: + return ErrorType.ResponseNoyFound.getText(); + case 401: + return ErrorType.InvalidToken.getText(); + case 400: + return ErrorType.ResponseError.getText(); + default: + return ErrorType.UnknownError.getText(); + } + } } diff --git a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java index c31459d..da09614 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/ShopsViewModel.java @@ -4,6 +4,7 @@ import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.ViewModel; +import com.example.nemophila.entities.ErrorType; import com.example.nemophila.entities.Shop; import com.example.nemophila.resources.ShopsRest; import com.google.android.gms.maps.model.Marker; @@ -37,6 +38,7 @@ final private MutableLiveData> shopsLiveData; final private MutableLiveData> nearShopsLiveData; final private MutableLiveData currentShopLiveData; + private final MutableLiveData errorLiveData; // コンストラクタ public ShopsViewModel() { @@ -49,6 +51,7 @@ .build(); this.shopsRest = retrofit.create(ShopsRest.class); this.ShopToMarker = new HashMap<>(); + this.errorLiveData = new MutableLiveData<>(); } // ライブデータを返す @@ -59,6 +62,9 @@ public LiveData getCurrentLiveData() { return this.currentShopLiveData; } + public MutableLiveData getErrorLiveData() { + return errorLiveData; + } // ShopToMarkerに新しく店と地図上のピンを紐づける public void setShopAndMarker(Shop shop, Marker marker) { @@ -173,4 +179,17 @@ } }); } + + private String parseStatusCode(Integer stats) { + switch (stats) { + case 404: + return ErrorType.ResponseNoyFound.getText(); + case 401: + return ErrorType.InvalidToken.getText(); + case 400: + return ErrorType.ResponseError.getText(); + default: + return ErrorType.UnknownError.getText(); + } + } }