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

Unverified Commit c7592986 authored by Tobias Kaminsky's avatar Tobias Kaminsky Committed by GitHub
Browse files

Merge pull request #104 from nextcloud/fix-app-crash-when-connecting-multiple-times

fix app crash when connect is called multiple times
parents 58e43954 9edaa101
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));
    }