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

Unverified Commit 015f6b4c authored by alperozturk's avatar alperozturk
Browse files

dont use blocking get

parent f11ba653
Loading
Loading
Loading
Loading
+16 −13
Original line number Diff line number Diff line
@@ -184,7 +184,8 @@ public class NoteShareActivity extends BrandedActivity implements ShareeListAdap

                // Schedule a new task with a delay
                future = executorService.schedule(() -> {
                    try (Cursor cursor = provider.searchForUsersOrGroups(newText)) {
                    try {
                        provider.searchForUsersOrGroups(newText, cursor -> {
                            runOnUiThread(() -> {{
                                if (cursor == null || cursor.getCount() == 0) {
                                    suggestionAdapter.changeCursor(null);
@@ -197,6 +198,7 @@ public class NoteShareActivity extends BrandedActivity implements ShareeListAdap

                                binding.progressBar.setVisibility(View.GONE);
                            }});
                        });
                    } catch (Exception e) {
                        Log_OC.d(TAG, "Exception setupSearchView.onQueryTextChange: " + e);
                        runOnUiThread(() -> binding.progressBar.setVisibility(View.GONE));
@@ -223,6 +225,7 @@ public class NoteShareActivity extends BrandedActivity implements ShareeListAdap
                    String shareWith = cursor.getString(cursor.getColumnIndexOrThrow(UsersAndGroupsSearchProvider.SHARE_WITH));
                    int shareType = cursor.getInt(cursor.getColumnIndexOrThrow(UsersAndGroupsSearchProvider.SHARE_TYPE));
                    navigateNoteShareDetail(shareWith, shareType);
                    provider.dispose();
                }
                return true;
            }
+145 −127
Original line number Diff line number Diff line
@@ -31,10 +31,13 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.function.Consumer;

import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.share.repository.ShareRepository;
import it.niedermann.owncloud.notes.share.model.UsersAndGroupsSearchConfig;
import it.niedermann.owncloud.notes.share.repository.ShareRepository;

/**
 * Content provider for search suggestions, to search for users and groups existing in an ownCloud server.
@@ -75,6 +78,7 @@ public class UsersAndGroupsSearchProvider {

    private final ShareRepository repository;
    private final Context context;
    private Disposable disposable;

    public UsersAndGroupsSearchProvider(Context context, ShareRepository repository) {
        this.context = context;
@@ -106,11 +110,18 @@ public class UsersAndGroupsSearchProvider {
        ACTION_SHARE_WITH = context.getString(R.string.users_and_groups_search_provider_share_with);
    }

    public Cursor searchForUsersOrGroups(String userQuery) {
    public void searchForUsersOrGroups(String userQuery, Consumer<Cursor> callback) {
        final SingleSignOnAccount ssoAcc;
        try {
            ssoAcc = SingleAccountHelper.getCurrentSingleSignOnAccount(context);
            final var names = repository.getSharees(ssoAcc, userQuery, REQUESTED_PAGE, RESULTS_PER_PAGE).blockingGet();
            disposable = repository.getSharees(ssoAcc, userQuery, REQUESTED_PAGE, RESULTS_PER_PAGE)
                    .subscribeOn(Schedulers.io())
                    .observeOn(Schedulers.io())
                    .doOnError(throwable -> {
                        Log_OC.e(TAG, "Exception while searching", throwable);
                        callback.accept(null);
                    })
                    .subscribe(names -> {
                        MatrixCursor response = null;
                        if (!names.isEmpty()) {
                            response = new MatrixCursor(COLUMNS);
@@ -239,11 +250,18 @@ public class UsersAndGroupsSearchProvider {
                            }
                        }

            return response;
                        callback.accept(response);
                    }, error -> {
                        Log_OC.e(TAG, "Exception while searching", error);
                        callback.accept(null);
                    });
        } catch (Exception e) {
            Log_OC.e(TAG, "Exception while searching", e);
            callback.accept(null);
        }
    }

        return null;
    public void dispose() {
        disposable.dispose();
    }
}