Merge pull request #833 from NorbiPeti/master

Display more user-friendly error messages
This commit is contained in:
Gregory K 2024-05-13 01:49:34 +03:00 committed by GitHub
commit 29ab502d2e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 37 additions and 2 deletions

View File

@ -5,31 +5,62 @@ import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.JsonIOException;
import com.google.gson.JsonSyntaxException;
import org.joinmastodon.android.R;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import me.grishka.appkit.api.ErrorResponse;
public class MastodonErrorResponse extends ErrorResponse{
public final String error;
public final int httpStatus;
public final Throwable underlyingException;
public final int messageResource;
public MastodonErrorResponse(String error, int httpStatus, Throwable exception){
this.error=error;
this.httpStatus=httpStatus;
this.underlyingException=exception;
if(exception instanceof UnknownHostException){
this.messageResource=R.string.could_not_reach_server;
}else if(exception instanceof SocketTimeoutException){
this.messageResource=R.string.connection_timed_out;
}else if(exception instanceof JsonSyntaxException || exception instanceof JsonIOException || httpStatus>=500){
this.messageResource=R.string.server_error;
}else if(httpStatus==404){
this.messageResource=R.string.not_found;
}else{
this.messageResource=0;
}
}
@Override
public void bindErrorView(View view){
TextView text=view.findViewById(R.id.error_text);
text.setText(error);
String message;
if(messageResource>0){
message=view.getContext().getString(messageResource, error);
}else{
message=error;
}
text.setText(message);
}
@Override
public void showToast(Context context){
if(context==null)
return;
Toast.makeText(context, error, Toast.LENGTH_SHORT).show();
String message;
if(messageResource>0){
message=context.getString(messageResource, error);
}else{
message=error;
}
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
}

View File

@ -755,4 +755,8 @@
<string name="view_favorites">View favorites</string>
<string name="undo_reblog">Undo boost</string>
<string name="undo_favorite">Undo favorite</string>
<string name="could_not_reach_server">Couldnt reach the server. Check your connection and try again?</string>
<string name="connection_timed_out">The request timed out. Check your connection and try again?</string>
<string name="server_error">Something went wrong talking with your server. Its probably not your fault. Try again?</string>
<string name="not_found">It couldve been deleted, or maybe it never existed at all.</string>
</resources>