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

Commit 9edaa101 authored by David Luhmer's avatar David Luhmer
Browse files

fix app crash when connect is called multiple times

parent c371548e
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -11,6 +11,8 @@ import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.util.Log;

import androidx.annotation.NonNull;

import com.nextcloud.android.sso.Constants;
import com.nextcloud.android.sso.aidl.IInputStreamService;
import com.nextcloud.android.sso.aidl.IThreadListener;
@@ -35,7 +37,7 @@ public class AidlNetworkRequest extends NetworkRequest {
    private IInputStreamService mService = null;
    private final AtomicBoolean mBound = new AtomicBoolean(false); // Flag indicating whether we have called bind on the service

    AidlNetworkRequest(Context context, SingleSignOnAccount account, NextcloudAPI.ApiConnectedListener callback) {
    AidlNetworkRequest(@NonNull Context context, @NonNull SingleSignOnAccount account, @NonNull NextcloudAPI.ApiConnectedListener callback) {
        super(context, account, callback);
    }

@@ -69,13 +71,12 @@ public class AidlNetworkRequest extends NetworkRequest {
    };

    public void connect(String type) {
        super.connect(type);

        // Disconnect if connected
        if (mBound.get()) {
            stop();
        if (mDestroyed) {
            throw new IllegalStateException("API already stopped");
        }

        super.connect(type);

        String componentName = Constants.PACKAGE_NAME_PROD;
        if (type.equals(Constants.ACCOUNT_TYPE_DEV)) {
            componentName = Constants.PACKAGE_NAME_DEV;
+3 −1
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@ import android.content.Context;
import android.os.Looper;
import android.util.Log;

import androidx.annotation.NonNull;

import com.nextcloud.android.sso.aidl.NextcloudRequest;
import com.nextcloud.android.sso.helper.ExponentialBackoff;
import com.nextcloud.android.sso.model.SingleSignOnAccount;
@@ -20,7 +22,7 @@ public abstract class NetworkRequest {
    protected boolean mDestroyed = false; // Flag indicating if API is destroyed


    protected NetworkRequest(Context context, SingleSignOnAccount account, NextcloudAPI.ApiConnectedListener callback) {
    protected NetworkRequest(@NonNull Context context, @NonNull SingleSignOnAccount account, @NonNull NextcloudAPI.ApiConnectedListener callback) {
        this.mContext = context;
        this.mAccount = account;
        this.mCallback = callback;
+1 −1
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ public class NextcloudAPI {
    }


    public NextcloudAPI(Context context, SingleSignOnAccount account, Gson gson, ApiConnectedListener callback) {
    public NextcloudAPI(@NonNull Context context, @NonNull SingleSignOnAccount account, @NonNull Gson gson, @NonNull ApiConnectedListener callback) {
        this(gson, new AidlNetworkRequest(context, account, callback));
    }