Skip to content

Commit b47c911

Browse files
Merge pull request #2690 from nextcloud/backport/2689/stable-4.4
[stable-4.4] BugFix - Open Share Details For Created Notes After Upgrade to 4.4.0 RC1
2 parents 46b40a8 + a187680 commit b47c911

File tree

5 files changed

+25
-10
lines changed

5 files changed

+25
-10
lines changed

app/src/main/java/it/niedermann/owncloud/notes/main/MainActivity.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@
9999
import it.niedermann.owncloud.notes.persistence.CapabilitiesWorker;
100100
import it.niedermann.owncloud.notes.persistence.entity.Account;
101101
import it.niedermann.owncloud.notes.persistence.entity.Note;
102-
import it.niedermann.owncloud.notes.share.helper.AvatarLoader;
103102
import it.niedermann.owncloud.notes.shared.model.CategorySortingMethod;
104103
import it.niedermann.owncloud.notes.shared.model.IResponseCallback;
105104
import it.niedermann.owncloud.notes.shared.model.NavigationCategory;
@@ -286,7 +285,7 @@ protected void onCreate(Bundle savedInstanceState) {
286285
.apply(RequestOptions.circleCropTransform())
287286
.into(activityBinding.launchAccountSwitcher);
288287

289-
mainViewModel.synchronizeNotes(nextAccount, new IResponseCallback<>() {
288+
mainViewModel.synchronizeNotes(this, nextAccount, new IResponseCallback<>() {
290289
@Override
291290
public void onSuccess(Void v) {
292291
Log.d(TAG, "Successfully synchronized notes for " + nextAccount.getAccountName());
@@ -376,7 +375,7 @@ protected void onResume() {
376375
try {
377376
// It is possible that after the deletion of the last account, this onResponse gets called before the ImportAccountActivity gets started.
378377
if (SingleAccountHelper.getCurrentSingleSignOnAccount(this) != null) {
379-
mainViewModel.synchronizeNotes(currentAccount, new IResponseCallback<>() {
378+
mainViewModel.synchronizeNotes(this, currentAccount, new IResponseCallback<>() {
380379
@Override
381380
public void onSuccess(Void v) {
382381
Log.d(TAG, "Successfully synchronized notes for " + currentAccount.getAccountName());
@@ -477,7 +476,7 @@ else if (dy < 0)
477476
final var syncLiveData = mainViewModel.getCurrentAccount();
478477
final Observer<Account> syncObserver = currentAccount -> {
479478
syncLiveData.removeObservers(this);
480-
mainViewModel.synchronizeCapabilitiesAndNotes(currentAccount, new IResponseCallback<>() {
479+
mainViewModel.synchronizeCapabilitiesAndNotes(this, currentAccount, new IResponseCallback<>() {
481480
@Override
482481
public void onSuccess(Void v) {
483482
Log.d(TAG, "Successfully synchronized capabilities and notes for " + currentAccount.getAccountName());

app/src/main/java/it/niedermann/owncloud/notes/main/MainViewModel.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
import static it.niedermann.owncloud.notes.main.slots.SlotterUtil.fillListByCategory;
1616
import static it.niedermann.owncloud.notes.main.slots.SlotterUtil.fillListByInitials;
1717
import static it.niedermann.owncloud.notes.main.slots.SlotterUtil.fillListByTime;
18-
import static it.niedermann.owncloud.notes.shared.model.CategorySortingMethod.SORT_MODIFIED_DESC;
1918
import static it.niedermann.owncloud.notes.shared.model.CategorySortingMethod.SORT_LEXICOGRAPHICAL_DESC;
19+
import static it.niedermann.owncloud.notes.shared.model.CategorySortingMethod.SORT_MODIFIED_DESC;
2020
import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.DEFAULT_CATEGORY;
2121
import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.FAVORITES;
2222
import static it.niedermann.owncloud.notes.shared.model.ENavigationCategoryType.RECENT;
@@ -44,6 +44,7 @@
4444
import com.nextcloud.android.sso.exceptions.NextcloudHttpRequestFailedException;
4545
import com.nextcloud.android.sso.exceptions.UnknownErrorException;
4646
import com.nextcloud.android.sso.helper.SingleAccountHelper;
47+
import com.owncloud.android.lib.common.utils.Log_OC;
4748

4849
import java.util.ArrayList;
4950
import java.util.Collection;
@@ -379,13 +380,13 @@ private static List<NavigationItem> fromCategoriesWithNotesCount(@NonNull Contex
379380
return items;
380381
}
381382

382-
public void synchronizeCapabilitiesAndNotes(@NonNull Account localAccount, @NonNull IResponseCallback<Void> callback) {
383+
public void synchronizeCapabilitiesAndNotes(Context context, @NonNull Account localAccount, @NonNull IResponseCallback<Void> callback) {
383384
Log.i(TAG, "[synchronizeCapabilitiesAndNotes] Synchronize capabilities for " + localAccount.getAccountName());
384385
synchronizeCapabilities(localAccount, new IResponseCallback<>() {
385386
@Override
386387
public void onSuccess(Void v) {
387388
Log.i(TAG, "[synchronizeCapabilitiesAndNotes] Synchronize notes for " + localAccount.getAccountName());
388-
synchronizeNotes(localAccount, callback);
389+
synchronizeNotes(context, localAccount, callback);
389390
}
390391

391392
@Override
@@ -442,14 +443,22 @@ public void synchronizeCapabilities(@NonNull Account localAccount, @NonNull IRes
442443
/**
443444
* Updates the network status if necessary and pulls the latest notes of the given {@param localAccount}
444445
*/
445-
public void synchronizeNotes(@NonNull Account currentAccount, @NonNull IResponseCallback<Void> callback) {
446+
public void synchronizeNotes(Context context, @NonNull Account currentAccount, @NonNull IResponseCallback<Void> callback) {
446447
executor.submit(() -> {
447448
Log.v(TAG, "[synchronize] - currentAccount: " + currentAccount.getAccountName());
448449
if (!repo.isSyncPossible()) {
449450
repo.updateNetworkStatus();
450451
}
451452
if (repo.isSyncPossible()) {
452453
repo.scheduleSync(currentAccount, false);
454+
455+
try {
456+
final var ssoAccount = AccountImporter.getSingleSignOnAccount(context, currentAccount.getAccountName());
457+
CapabilitiesClient.getCapabilities(context, ssoAccount, null, ApiProvider.getInstance());
458+
} catch (Throwable t) {
459+
Log_OC.e(TAG, t.getMessage());
460+
}
461+
453462
callback.onSuccess(null);
454463
} else { // Sync is not possible
455464
if (repo.isNetworkConnected() && repo.isSyncOnlyOnWifi()) {

app/src/main/java/it/niedermann/owncloud/notes/persistence/CapabilitiesClient.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ public static Capabilities getCapabilities(@NonNull Context context, @NonNull Si
4343
} else {
4444
Log.w(TAG, "Response headers of capabilities are null");
4545
}
46+
47+
final var repository = NotesRepository.getInstance(context);
48+
repository.insertCapabilities(capabilities);
49+
4650
return capabilities;
4751
} catch (RuntimeException e) {
4852
final var cause = e.getCause();

app/src/main/java/it/niedermann/owncloud/notes/persistence/NotesRepository.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,10 @@ public void updateCapabilitiesETag(long id, String capabilitiesETag) {
331331
db.getAccountDao().updateCapabilitiesETag(id, capabilitiesETag);
332332
}
333333

334+
public void insertCapabilities(Capabilities capabilities) {
335+
db.getCapabilitiesDao().insert(capabilities);
336+
}
337+
334338
public void updateModified(long id, long modified) {
335339
db.getAccountDao().updateModified(id, modified);
336340
}
@@ -339,7 +343,6 @@ public void updateDirectEditingAvailable(final long id, final boolean available)
339343
db.getAccountDao().updateDirectEditingAvailable(id, available);
340344
}
341345

342-
343346
// Notes
344347

345348
public LiveData<Note> getNoteById$(long id) {

app/src/main/java/it/niedermann/owncloud/notes/share/NoteShareActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ private void initializeArguments() {
171171
binding.loadingLayout.setVisibility(View.GONE);
172172
});
173173
} catch (Exception e) {
174-
throw new RuntimeException(e);
174+
Log_OC.e(TAG, "Exception at NoteShareActivity.init: " + e);
175175
}
176176
});
177177
}

0 commit comments

Comments
 (0)