diff options
author | Stefan Niedermann <info@niedermann.it> | 2021-06-17 19:39:36 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2021-06-17 19:39:36 +0300 |
commit | ae073608d5afe1fe8aea8cc667301f4f8d4b4be5 (patch) | |
tree | d0031d838f8e71c87b277f68e8c5d48be9b3b25a | |
parent | e7cda29249119cbac6c1b2522bdc7134538ea812 (diff) |
- 🐞 Fix switching automatically to newly created lists
Signed-off-by: Stefan Niedermann <info@niedermann.it>
3 files changed, 23 insertions, 2 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java index b98270c68..9b9978f7d 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java @@ -465,7 +465,14 @@ public class MainActivity extends AppCompatActivity implements DeleteStackListen mainViewModel.createStack(mainViewModel.getCurrentAccount().getId(), stackName, mainViewModel.getCurrentBoardLocalId(), new IResponseCallback<FullStack>() { @Override public void onResponse(FullStack response) { - runOnUiThread(() -> binding.viewPager.setCurrentItem(stackAdapter.getItemCount())); + DeckApplication.saveCurrentStackId(MainActivity.this, mainViewModel.getCurrentAccount().getId(), mainViewModel.getCurrentBoardLocalId(), response.getLocalId()); + binding.viewPager.post(() -> { + try { + binding.viewPager.setCurrentItem(stackAdapter.getPosition(response.getLocalId())); + } catch (NoSuchElementException e) { + DeckLog.logError(e); + } + }); } @Override diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java index 4867b3d85..9bd260206 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackAdapter.java @@ -44,6 +44,19 @@ public class StackAdapter extends FragmentStateAdapter { : position + 1; } + /** + * @return the position of the {@link Stack} where {@link Stack#getLocalId()} equals {@param stackLocalId}. + * @throws NoSuchElementException in case the searched {@param stackLocalId} is not in the list. + */ + public int getPosition(long stackLocalId) throws NoSuchElementException { + for (int i = 0; i < stackList.size(); i++) { + if (stackList.get(i).getLocalId() == stackLocalId) { + return i; + } + } + throw new NoSuchElementException("Stack with localId " + stackLocalId + " is not in the current list."); + } + @Override public long getItemId(int position) { return stackList.get(position).getLocalId(); diff --git a/fastlane/metadata/android/en-US/changelogs/1019000.txt b/fastlane/metadata/android/en-US/changelogs/1019000.txt index 2185920f3..40ae6cf27 100644 --- a/fastlane/metadata/android/en-US/changelogs/1019000.txt +++ b/fastlane/metadata/android/en-US/changelogs/1019000.txt @@ -1,3 +1,4 @@ - ✏️ Remember edit / preview mode for description (#971) - 🖼 Support preview for images which are hosted on a Nextcloud instance (#963) -- 🗑 Select neighbour list after deleting a list (#841)
\ No newline at end of file +- 🗑 Select neighbour list after deleting a list (#841) +- 🐞 Fix switching automatically to newly created lists
\ No newline at end of file |