Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22e068e5 authored by desperateCoder's avatar desperateCoder
Browse files

fixed type detection logic

parent c954531c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -97,7 +97,7 @@ public class NextcloudAPI {
            try {
                Response response = performRequestV2(type, request);

                s.onNext(new ParsedResponse<>(convertStreamToTargetEntity(response.getBody(), type), response.getPlainHeaders()));
                s.onNext(ParsedResponse.of(convertStreamToTargetEntity(response.getBody(), type), response.getPlainHeaders()));
                s.onComplete();
            } catch (Exception e) {
                s.onError(e);
+5 −4
Original line number Diff line number Diff line
@@ -180,14 +180,15 @@ public class NextcloudRetrofitServiceMethod<T> {
                if(typeArgument == ResponseBody.class) {
                    return (T) Observable.just(Okhttp3Helper.getResponseBodyFromRequest(nextcloudAPI, request));
                } else if (typeArgument instanceof ParameterizedType) {
                    ParameterizedType innerType = (ParameterizedType) returnType;
                    Type innerOwnerType = type.getRawType();
                    ParameterizedType innerType = (ParameterizedType) typeArgument;
                    Type innerOwnerType = innerType.getRawType();
                    if(innerOwnerType == ParsedResponse.class) {
                        return (T) nextcloudAPI.performRequestObservableV2(innerType.getActualTypeArguments()[0], request);
                    }
                } else {
                    return (T) nextcloudAPI.performRequestObservable(typeArgument, request);
                }
                //fallback
                return (T) nextcloudAPI.performRequestObservable(typeArgument, request);

            } else if(ownerType == Call.class) {
                Type typeArgument = type.getActualTypeArguments()[0];
                return (T) Retrofit2Helper.WrapInCall(nextcloudAPI, request, typeArgument);
+6 −2
Original line number Diff line number Diff line
@@ -18,7 +18,11 @@ public class ParsedResponse <T> {
    }

    public static <T> ParsedResponse<T> of(T data) {
        return new ParsedResponse<>(data, null);
        return ParsedResponse.of(data, null);
    }

    public static <T> ParsedResponse<T> of(T data, ArrayList<AidlNetworkRequest.PlainHeader> headers) {
        return ParsedResponse.of(data, headers);
    }

        public T getResponse() {