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

Commit 681652fb authored by Stefan Niedermann's avatar Stefan Niedermann Committed by Niedermann IT-Dienstleistungen
Browse files

#400 Make NextcloudAPI constructor less verbose

parent 6268eec2
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -69,8 +69,14 @@ public class NextcloudAPI {
    public @interface FollowRedirects { }

    public interface ApiConnectedListener {
        void onConnected();
        void onError(Exception ex);
        default void onConnected() {
            Log.i(TAG, "Single Sign On API successfully connected.");
        }
        void onError(Exception e);
    }

    public NextcloudAPI(@NonNull Context context, @NonNull SingleSignOnAccount account, @NonNull Gson gson) {
        this(gson, new AidlNetworkRequest(context, account, Throwable::printStackTrace));
    }

    public NextcloudAPI(@NonNull Context context, @NonNull SingleSignOnAccount account, @NonNull Gson gson, @NonNull ApiConnectedListener callback) {
+1 −24
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@ import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

@@ -15,7 +14,6 @@ import com.nextcloud.android.sso.api.NextcloudAPI;
import com.nextcloud.android.sso.exceptions.AccountImportCancelledException;
import com.nextcloud.android.sso.exceptions.AndroidGetAccountsPermissionNotGranted;
import com.nextcloud.android.sso.exceptions.NextcloudFilesAppNotInstalledException;
import com.nextcloud.android.sso.model.SingleSignOnAccount;

import java.io.IOException;
import java.util.concurrent.ExecutorService;
@@ -60,7 +58,7 @@ public class MainActivity extends AppCompatActivity {
                    runOnUiThread(() -> ((TextView) findViewById(R.id.result)).setText(R.string.loading));

                    /* Create local bridge API to the Nextcloud Files Android app */
                    final var nextcloudAPI = createNextcloudAPI(ssoAccount);
                    final var nextcloudAPI = new NextcloudAPI(this, ssoAccount, new GsonBuilder().create());

                    /* Create the Ocs API to talk to the server */
                    final var ocsAPI = new NextcloudRetrofitApiBuilder(nextcloudAPI, "/ocs/v2.php/cloud/").create(OcsAPI.class);
@@ -96,25 +94,4 @@ public class MainActivity extends AppCompatActivity {
            Log.i(TAG, "Account import cancelled.");
        }
    }

    private NextcloudAPI createNextcloudAPI(@NonNull SingleSignOnAccount ssoAccount) {
        return new NextcloudAPI(this, ssoAccount, new GsonBuilder().create(), new NextcloudAPI.ApiConnectedListener() {
            @Override
            public void onConnected() {
                /*
                 * We don't have to actually wait for this callback because requests are queued and executed
                 * automatically as soon as the connection has been established.
                 *
                 * @see https://github.com/nextcloud/Android-SingleSignOn#5-how-to-make-a-network-request
                 * @see https://github.com/nextcloud/Android-SingleSignOn/issues/400
                 */
                Log.i(TAG, "SSO API connected for " + ssoAccount);
            }

            @Override
            public void onError(Exception e) {
                e.printStackTrace();
            }
        });
    }
}
 No newline at end of file