diff --git a/app/src/main/java/com/example/nemophila/entities/ErrorType.java b/app/src/main/java/com/example/nemophila/entities/ErrorType.java new file mode 100644 index 0000000..4ab24d7 --- /dev/null +++ b/app/src/main/java/com/example/nemophila/entities/ErrorType.java @@ -0,0 +1,19 @@ +package com.example.nemophila.entities; + +public enum ErrorType { + ResponseError("レスポンスエラー"), + NetworkError("ネットワークエラー"), + InvalidToken("トークンが不一致"), + UnknownError("不明なエラー"), + ResponseNoyFound("リソースが見つかりません"); + + private final String text; + + ErrorType(String text) { + this.text = text; + } + + public String getText() { + return text; + } +} diff --git a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java index 83c6596..6a5f9f7 100644 --- a/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java +++ b/app/src/main/java/com/example/nemophila/viewmodels/FriendViewModel.java @@ -4,6 +4,7 @@ import androidx.lifecycle.ViewModel; 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; @@ -26,6 +27,7 @@ private final MutableLiveData> friendsLiveData; private final MutableLiveData> requestedLiveData; private final MutableLiveData> requestingLiveData; + private final MutableLiveData errorLiveData; // コンストラクタ public FriendViewModel() { @@ -37,6 +39,7 @@ this.friendsLiveData = new MutableLiveData<>(); this.requestedLiveData = new MutableLiveData<>(); this.requestingLiveData = new MutableLiveData<>(); + this.errorLiveData = new MutableLiveData<>(); } // ライブデータの取得(ゲッター) @@ -47,6 +50,9 @@ return requestedLiveData; } public MutableLiveData> getRequestingLiveData() { return requestingLiveData; } + public MutableLiveData getErrorLiveData() { + return errorLiveData; + } //フレンドの情報の取得 @@ -60,11 +66,13 @@ friendsLiveData.setValue(response.body()); } else { System.out.println("ResponseError: " + response.code()); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call> call, Throwable t) { System.out.println(" NetworkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -79,11 +87,13 @@ System.out.println("Successful"); } else { System.out.println("ResponseError: " + response.code()); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call call, Throwable t) { System.out.println(" NetworkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -98,11 +108,13 @@ System.out.println("Successful"); } else { System.out.println("ResponseError: " + response.code()); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call call, Throwable t) { System.out.println(" NetworkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -117,11 +129,13 @@ System.out.println("Successful"); } else { System.out.println("ResponseError: " + response.code()); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call> call, Throwable t) { System.out.println(" NetworkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -136,11 +150,13 @@ addRequestingLiveData(requesting_id, name); } else { System.out.println("ResponseError: " + response.code()); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call call, Throwable t) { System.out.println(" NetworkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -155,11 +171,13 @@ System.out.println("Successful Delete"); } else { System.out.println("ResponseError: " + response.code()); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call call, Throwable t) { System.out.println(" NetworkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -175,11 +193,13 @@ requestedLiveData.setValue(accountNameJson); } else { System.out.println("ResponseError: " + response.code()); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call> call, Throwable t) { System.out.println(" NetworkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -194,11 +214,13 @@ removeRequestedLiveData(fid); } else { System.out.println("ResponseError: " + response.code()); + errorLiveData.setValue(parseStatusCode(response.code())); } } @Override public void onFailure(Call call, Throwable t) { System.out.println(" NetworkError: " + t); + errorLiveData.setValue(ErrorType.NetworkError.getText()); } }); } @@ -251,4 +273,17 @@ } requestedLiveData.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(); + } + } }