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

Commit 184329c2 authored by Unpublished's avatar Unpublished
Browse files

migrate to java 8

parent 57a95255
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -34,6 +34,10 @@ android {
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    productFlavors {
    }
}
+33 −61
Original line number Diff line number Diff line
@@ -32,16 +32,12 @@ import android.util.Log;

import com.google.gson.Gson;
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;
import com.nextcloud.android.sso.helper.ExponentialBackoff;
import com.nextcloud.android.sso.model.SingleSignOnAccount;

import org.reactivestreams.Publisher;
import org.reactivestreams.Subscriber;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -112,12 +108,7 @@ public class NextcloudAPI {
    }

    private void connectApiWithBackoff() {
        new ExponentialBackoff(1000, 10000, 2, 5, Looper.getMainLooper(), new Runnable() {
            @Override
            public void run() {
                connect();
            }
        }).start();
        new ExponentialBackoff(1000, 10000, 2, 5, Looper.getMainLooper(), this::connect).start();
    }

    private void connect() {
@@ -213,35 +204,29 @@ public class NextcloudAPI {
    }

    public <T> Observable<T> performRequestObservable(final Type type, final NextcloudRequest request) {
        return Observable.fromPublisher(new Publisher<T>() {
            @Override
            public void subscribe(Subscriber<? super T> s) {
        return Observable.fromPublisher( s-> {
                try {
                    s.onNext((T) performRequest(type, request));
                    s.onComplete();
                } catch (Exception e) {
                    s.onError(e);
            }
            }
        });
    }

    public <T> T performRequest(final @NonNull Type type, NextcloudRequest request) throws Exception {
        Log.d(TAG, "performRequest() called with: type = [" + type + "], request = [" + request + "]");

        InputStream os = performNetworkRequest(request);
        Reader targetReader = new InputStreamReader(os);

        T result = null;
        try (InputStream os = performNetworkRequest(request);
             Reader targetReader = new InputStreamReader(os)) {
            if (type != Void.class) {
                result = gson.fromJson(targetReader, type);
                if (result != null) {
                    Log.d(TAG, result.toString());
                }
            }
        targetReader.close();

        os.close();
        }

        return result;
    }
@@ -317,30 +302,18 @@ public class NextcloudAPI {
        request.setAccountName(getAccountName());
        request.setToken(getAccountToken());

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(baos);
        try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
             ObjectOutputStream oos = new ObjectOutputStream(baos)
        ) {
            oos.writeObject(request);
        oos.close();
        baos.close();
        InputStream is = new ByteArrayInputStream(baos.toByteArray());

            try (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");
                    }
                });

                         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");
                        }
                    });
                    requestBodyParcelFileDescriptor = ParcelFileDescriptorUtil.pipeFrom(
                            requestBodyInputStream,
                            thread -> Log.d(TAG, "copy data from service finished"));
                }

                ParcelFileDescriptor output;
@@ -349,17 +322,16 @@ public class NextcloudAPI {
                } else {
                    output = mService.performNextcloudRequest(input);
                }

                return output;
            }
        }
    }


    public static <T> T deserializeObjectAndCloseStream(InputStream is) throws IOException, ClassNotFoundException {
        ObjectInputStream ois = new ObjectInputStream(is);
        T result = (T) ois.readObject();
        is.close();
        ois.close();
        return result;
        try (ObjectInputStream ois = new ObjectInputStream(is)) {
            return (T) ois.readObject();
        }
    }

    protected Gson getGson() {
+1 −7
Original line number Diff line number Diff line
@@ -4,7 +4,6 @@ import com.nextcloud.android.sso.aidl.NextcloudRequest;
import com.nextcloud.android.sso.api.NextcloudAPI;

import io.reactivex.Completable;
import io.reactivex.functions.Action;

/**
 *  Nextcloud SingleSignOn
@@ -30,12 +29,7 @@ public final class ReactivexHelper {
    private ReactivexHelper() { }

    public static Completable wrapInCompletable(final NextcloudAPI nextcloudAPI, final NextcloudRequest request) {
        return Completable.fromAction(new Action() {
            @Override
            public void run() throws Exception {
                nextcloudAPI.performRequest(Void.class, request);
            }
        });
        return Completable.fromAction(() -> nextcloudAPI.performRequest(Void.class, request));
    }

}