Loading src/main/java/com/nextcloud/android/sso/api/AidlNetworkRequest.java +50 −50 Original line number Diff line number Diff line Loading @@ -11,13 +11,10 @@ import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.util.Log; import androidx.annotation.NonNull; import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; import com.nextcloud.android.sso.Constants; import com.nextcloud.android.sso.aidl.IInputStreamService; import com.nextcloud.android.sso.aidl.IThreadListener; import com.nextcloud.android.sso.aidl.NextcloudRequest; import com.nextcloud.android.sso.aidl.ParcelFileDescriptorUtil; import com.nextcloud.android.sso.exceptions.NextcloudApiNotRespondingException; Loading @@ -33,6 +30,8 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.concurrent.atomic.AtomicBoolean; import androidx.annotation.NonNull; import static com.nextcloud.android.sso.exceptions.SSOException.parseNextcloudCustomException; public class AidlNetworkRequest extends NetworkRequest { Loading Loading @@ -164,6 +163,7 @@ public class AidlNetworkRequest extends NetworkRequest { public Response performNetworkRequestV2(NextcloudRequest request, InputStream requestBodyInputStream) throws Exception { ParcelFileDescriptor output = performAidlNetworkRequestV2(request, requestBodyInputStream); InputStream os = new ParcelFileDescriptor.AutoCloseInputStream(output); try { ExceptionResponse response = deserializeObjectV2(os); // Handle Remote Exceptions Loading @@ -173,7 +173,13 @@ public class AidlNetworkRequest extends NetworkRequest { } throw response.getException(); } // os stream needs to stay open to be able to read response return new Response(os, response.headers); } catch (Exception e) { // close os stream if something goes wrong and no response will be created os.close(); throw e; } } /** Loading @@ -198,11 +204,15 @@ public class AidlNetworkRequest extends NetworkRequest { // Handle Remote Exceptions if (exception != null) { // close os stream if something goes wrong and no response will be created os.close(); if (exception.getMessage() != null) { exception = parseNextcloudCustomException(exception); } throw exception; } // os stream needs to stay open to be able to read response return os; } Loading Loading @@ -239,8 +249,8 @@ public class AidlNetworkRequest extends NetworkRequest { baos.close(); InputStream is = new ByteArrayInputStream(baos.toByteArray()); ParcelFileDescriptor input = ParcelFileDescriptorUtil.pipeFrom(is, thread -> Log.d(TAG, "copy data from service finished")); try (ParcelFileDescriptor input = ParcelFileDescriptorUtil.pipeFrom(is, thread -> Log.d(TAG, "copy data from service finished"))) { ParcelFileDescriptor requestBodyParcelFileDescriptor = null; if (requestBodyInputStream != null) { Loading @@ -254,9 +264,9 @@ public class AidlNetworkRequest extends NetworkRequest { } else { output = mService.performNextcloudRequest(input); } return output; } } /** * DO NOT CALL THIS METHOD DIRECTLY - use @link(performNetworkRequestV2) instead Loading Loading @@ -288,23 +298,13 @@ public class AidlNetworkRequest extends NetworkRequest { baos.close(); InputStream is = new ByteArrayInputStream(baos.toByteArray()); ParcelFileDescriptor input = ParcelFileDescriptorUtil.pipeFrom(is, new IThreadListener() { @Override public void onThreadFinished(Thread thread) { Log.d(TAG, "copy data from service finished"); } }); try (ParcelFileDescriptor input = ParcelFileDescriptorUtil.pipeFrom(is, thread -> Log.d(TAG, "copy data from service finished"))) { ParcelFileDescriptor requestBodyParcelFileDescriptor = null; if (requestBodyInputStream != null) { requestBodyParcelFileDescriptor = ParcelFileDescriptorUtil.pipeFrom(requestBodyInputStream, new IThreadListener() { @Override public void onThreadFinished(Thread thread) { Log.d(TAG, "copy data from service finished"); } }); thread -> Log.d(TAG, "copy data from service finished")); } ParcelFileDescriptor output; Loading @@ -313,9 +313,9 @@ public class AidlNetworkRequest extends NetworkRequest { } else { output = mService.performNextcloudRequestV2(input); } return output; } } private static <T> T deserializeObject(InputStream is) throws IOException, ClassNotFoundException { ObjectInputStream ois = new ObjectInputStream(is); Loading Loading
src/main/java/com/nextcloud/android/sso/api/AidlNetworkRequest.java +50 −50 Original line number Diff line number Diff line Loading @@ -11,13 +11,10 @@ import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.util.Log; import androidx.annotation.NonNull; import com.google.gson.Gson; import com.google.gson.internal.LinkedTreeMap; import com.nextcloud.android.sso.Constants; import com.nextcloud.android.sso.aidl.IInputStreamService; import com.nextcloud.android.sso.aidl.IThreadListener; import com.nextcloud.android.sso.aidl.NextcloudRequest; import com.nextcloud.android.sso.aidl.ParcelFileDescriptorUtil; import com.nextcloud.android.sso.exceptions.NextcloudApiNotRespondingException; Loading @@ -33,6 +30,8 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.concurrent.atomic.AtomicBoolean; import androidx.annotation.NonNull; import static com.nextcloud.android.sso.exceptions.SSOException.parseNextcloudCustomException; public class AidlNetworkRequest extends NetworkRequest { Loading Loading @@ -164,6 +163,7 @@ public class AidlNetworkRequest extends NetworkRequest { public Response performNetworkRequestV2(NextcloudRequest request, InputStream requestBodyInputStream) throws Exception { ParcelFileDescriptor output = performAidlNetworkRequestV2(request, requestBodyInputStream); InputStream os = new ParcelFileDescriptor.AutoCloseInputStream(output); try { ExceptionResponse response = deserializeObjectV2(os); // Handle Remote Exceptions Loading @@ -173,7 +173,13 @@ public class AidlNetworkRequest extends NetworkRequest { } throw response.getException(); } // os stream needs to stay open to be able to read response return new Response(os, response.headers); } catch (Exception e) { // close os stream if something goes wrong and no response will be created os.close(); throw e; } } /** Loading @@ -198,11 +204,15 @@ public class AidlNetworkRequest extends NetworkRequest { // Handle Remote Exceptions if (exception != null) { // close os stream if something goes wrong and no response will be created os.close(); if (exception.getMessage() != null) { exception = parseNextcloudCustomException(exception); } throw exception; } // os stream needs to stay open to be able to read response return os; } Loading Loading @@ -239,8 +249,8 @@ public class AidlNetworkRequest extends NetworkRequest { baos.close(); InputStream is = new ByteArrayInputStream(baos.toByteArray()); ParcelFileDescriptor input = ParcelFileDescriptorUtil.pipeFrom(is, thread -> Log.d(TAG, "copy data from service finished")); try (ParcelFileDescriptor input = ParcelFileDescriptorUtil.pipeFrom(is, thread -> Log.d(TAG, "copy data from service finished"))) { ParcelFileDescriptor requestBodyParcelFileDescriptor = null; if (requestBodyInputStream != null) { Loading @@ -254,9 +264,9 @@ public class AidlNetworkRequest extends NetworkRequest { } else { output = mService.performNextcloudRequest(input); } return output; } } /** * DO NOT CALL THIS METHOD DIRECTLY - use @link(performNetworkRequestV2) instead Loading Loading @@ -288,23 +298,13 @@ public class AidlNetworkRequest extends NetworkRequest { baos.close(); InputStream is = new ByteArrayInputStream(baos.toByteArray()); ParcelFileDescriptor input = ParcelFileDescriptorUtil.pipeFrom(is, new IThreadListener() { @Override public void onThreadFinished(Thread thread) { Log.d(TAG, "copy data from service finished"); } }); try (ParcelFileDescriptor input = ParcelFileDescriptorUtil.pipeFrom(is, thread -> Log.d(TAG, "copy data from service finished"))) { ParcelFileDescriptor requestBodyParcelFileDescriptor = null; if (requestBodyInputStream != null) { requestBodyParcelFileDescriptor = ParcelFileDescriptorUtil.pipeFrom(requestBodyInputStream, new IThreadListener() { @Override public void onThreadFinished(Thread thread) { Log.d(TAG, "copy data from service finished"); } }); thread -> Log.d(TAG, "copy data from service finished")); } ParcelFileDescriptor output; Loading @@ -313,9 +313,9 @@ public class AidlNetworkRequest extends NetworkRequest { } else { output = mService.performNextcloudRequestV2(input); } return output; } } private static <T> T deserializeObject(InputStream is) throws IOException, ClassNotFoundException { ObjectInputStream ois = new ObjectInputStream(is); Loading