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

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

Merge pull request #2689 from nextcloud/bugfix/open-previously-created-notes-detail-page

BugFix - Open Share Details For Created Notes After Upgrade to 4.4.0 RC1
parents a6a60c5e c3ba70c9
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -99,7 +99,6 @@ import it.niedermann.owncloud.notes.persistence.CapabilitiesClient;
import it.niedermann.owncloud.notes.persistence.CapabilitiesWorker;
import it.niedermann.owncloud.notes.persistence.entity.Account;
import it.niedermann.owncloud.notes.persistence.entity.Note;
import it.niedermann.owncloud.notes.share.helper.AvatarLoader;
import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod;
import it.niedermann.owncloud.notes.shared.model.IResponseCallback;
import it.niedermann.owncloud.notes.shared.model.NavigationCategory;
@@ -286,7 +285,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A
                    .apply(RequestOptions.circleCropTransform())
                    .into(activityBinding.launchAccountSwitcher);

            mainViewModel.synchronizeNotes(nextAccount, new IResponseCallback<>() {
            mainViewModel.synchronizeNotes(this, nextAccount, new IResponseCallback<>() {
                @Override
                public void onSuccess(Void v) {
                    Log.d(TAG, "Successfully synchronized notes for " + nextAccount.getAccountName());
@@ -376,7 +375,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A
            try {
                // It is possible that after the deletion of the last account, this onResponse gets called before the ImportAccountActivity gets started.
                if (SingleAccountHelper.getCurrentSingleSignOnAccount(this) != null) {
                    mainViewModel.synchronizeNotes(currentAccount, new IResponseCallback<>() {
                    mainViewModel.synchronizeNotes(this, currentAccount, new IResponseCallback<>() {
                        @Override
                        public void onSuccess(Void v) {
                            Log.d(TAG, "Successfully synchronized notes for " + currentAccount.getAccountName());
@@ -477,7 +476,7 @@ public class MainActivity extends LockedActivity implements NoteClickListener, A
            final var syncLiveData = mainViewModel.getCurrentAccount();
            final Observer<Account> syncObserver = currentAccount -> {
                syncLiveData.removeObservers(this);
                mainViewModel.synchronizeCapabilitiesAndNotes(currentAccount, new IResponseCallback<>() {
                mainViewModel.synchronizeCapabilitiesAndNotes(this, currentAccount, new IResponseCallback<>() {
                    @Override
                    public void onSuccess(Void v) {
                        Log.d(TAG, "Successfully synchronized capabilities and notes for " + currentAccount.getAccountName());
+13 −4
Original line number Diff line number Diff line
@@ -15,8 +15,8 @@ import static it.niedermann.owncloud.notes.main.MainActivity.ADAPTER_KEY_STARRED
import static it.niedermann.owncloud.notes.main.slots.SlotterUtil.fillListByCategory;
import static it.niedermann.owncloud.notes.main.slots.SlotterUtil.fillListByInitials;
import static it.niedermann.owncloud.notes.main.slots.SlotterUtil.fillListByTime;
import static it.niedermann.owncloud.notes.shared.model.CategorySortingMethod.SORT_MODIFIED_DESC;
import static it.niedermann.owncloud.notes.shared.model.CategorySortingMethod.SORT_LEXICOGRAPHICAL_DESC;
import static it.niedermann.owncloud.notes.shared.model.CategorySortingMethod.SORT_MODIFIED_DESC;
import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.DEFAULT_CATEGORY;
import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.FAVORITES;
import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.RECENT;
@@ -44,6 +44,7 @@ import com.nextcloud.android.sso.exceptions.NextcloudFilesAppAccountNotFoundExce
import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException;
import com.nextcloud.android.sso.exceptions.UnknownErrorException;
import com.nextcloud.android.sso.helper.SingleAccountHelper;
import com.owncloud.android.lib.common.utils.Log_OC;

import java.util.ArrayList;
import java.util.Collection;
@@ -379,13 +380,13 @@ public class MainViewModel extends AndroidViewModel {
        return items;
    }

    public void synchronizeCapabilitiesAndNotes(@NonNull Account localAccount, @NonNull IResponseCallback<Void> callback) {
    public void synchronizeCapabilitiesAndNotes(Context context, @NonNull Account localAccount, @NonNull IResponseCallback<Void> callback) {
        Log.i(TAG, "[synchronizeCapabilitiesAndNotes] Synchronize capabilities for " + localAccount.getAccountName());
        synchronizeCapabilities(localAccount, new IResponseCallback<>() {
            @Override
            public void onSuccess(Void v) {
                Log.i(TAG, "[synchronizeCapabilitiesAndNotes] Synchronize notes for " + localAccount.getAccountName());
                synchronizeNotes(localAccount, callback);
                synchronizeNotes(context, localAccount, callback);
            }

            @Override
@@ -442,7 +443,7 @@ public class MainViewModel extends AndroidViewModel {
    /**
     * Updates the network status if necessary and pulls the latest notes of the given {@param localAccount}
     */
    public void synchronizeNotes(@NonNull Account currentAccount, @NonNull IResponseCallback<Void> callback) {
    public void synchronizeNotes(Context context, @NonNull Account currentAccount, @NonNull IResponseCallback<Void> callback) {
        executor.submit(() -> {
            Log.v(TAG, "[synchronize] - currentAccount: " + currentAccount.getAccountName());
            if (!repo.isSyncPossible()) {
@@ -450,6 +451,14 @@ public class MainViewModel extends AndroidViewModel {
            }
            if (repo.isSyncPossible()) {
                repo.scheduleSync(currentAccount, false);

                try {
                    final var ssoAccount = AccountImporter.getSingleSignOnAccount(context, currentAccount.getAccountName());
                    CapabilitiesClient.getCapabilities(context, ssoAccount, null, ApiProvider.getInstance());
                } catch (Throwable t) {
                    Log_OC.e(TAG, t.getMessage());
                }

                callback.onSuccess(null);
            } else { // Sync is not possible
                if (repo.isNetworkConnected() && repo.isSyncOnlyOnWifi()) {
+4 −0
Original line number Diff line number Diff line
@@ -43,6 +43,10 @@ public class CapabilitiesClient {
            } else {
                Log.w(TAG, "Response headers of capabilities are null");
            }

            final var repository = NotesRepository.getInstance(context);
            repository.insertCapabilities(capabilities);

            return capabilities;
        } catch (RuntimeException e) {
            final var cause = e.getCause();
+4 −1
Original line number Diff line number Diff line
@@ -331,6 +331,10 @@ public class NotesRepository {
        db.getAccountDao().updateCapabilitiesETag(id, capabilitiesETag);
    }

    public void insertCapabilities(Capabilities capabilities) {
        db.getCapabilitiesDao().insert(capabilities);
    }

    public void updateModified(long id, long modified) {
        db.getAccountDao().updateModified(id, modified);
    }
@@ -339,7 +343,6 @@ public class NotesRepository {
        db.getAccountDao().updateDirectEditingAvailable(id, available);
    }


    // Notes

    public LiveData<Note> getNoteById$(long id) {
+1 −1
Original line number Diff line number Diff line
@@ -171,7 +171,7 @@ public class NoteShareActivity extends BrandedActivity implements ShareeListAdap
                    binding.loadingLayout.setVisibility(View.GONE);
                });
            } catch (Exception e) {
                throw new RuntimeException(e);
                Log_OC.e(TAG, "Exception at NoteShareActivity.init: " + e);
            }
        });
    }
Loading