From cf987427e01728810d846b1c127b19454c7c4a59 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 16 Jun 2021 12:44:04 -0300 Subject: [PATCH] Migrate to ViewPager2 to fix weird ViewPager crash --- .../android/conversation/ImageActivity.java | 21 ++++++++----------- .../src/main/res/layout/activity_image.xml | 2 +- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java index 4bfeedcef..9a90f0dde 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ImageActivity.java @@ -33,10 +33,9 @@ import androidx.annotation.RequiresApi; import androidx.appcompat.app.AlertDialog.Builder; import androidx.appcompat.widget.Toolbar; import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.lifecycle.ViewModelProvider; -import androidx.viewpager.widget.ViewPager; +import androidx.viewpager2.adapter.FragmentStateAdapter; +import androidx.viewpager2.widget.ViewPager2; import static android.content.Intent.ACTION_CREATE_DOCUMENT; import static android.content.Intent.CATEGORY_OPENABLE; @@ -76,7 +75,7 @@ public class ImageActivity extends BriarActivity private ImageViewModel viewModel; private PullDownLayout layout; private AppBarLayout appBarLayout; - private ViewPager viewPager; + private ViewPager2 viewPager; private List attachments; private MessageId conversationMessageId; @@ -142,8 +141,7 @@ public class ImageActivity extends BriarActivity // Set up image ViewPager viewPager = findViewById(R.id.viewPager); - ImagePagerAdapter pagerAdapter = - new ImagePagerAdapter(getSupportFragmentManager()); + ImagePagerAdapter pagerAdapter = new ImagePagerAdapter(); viewPager.setAdapter(pagerAdapter); viewPager.setCurrentItem(position); @@ -310,16 +308,16 @@ public class ImageActivity extends BriarActivity return attachments.get(viewPager.getCurrentItem()); } - private class ImagePagerAdapter extends FragmentStatePagerAdapter { + private class ImagePagerAdapter extends FragmentStateAdapter { private boolean isFirst = true; - private ImagePagerAdapter(FragmentManager fm) { - super(fm); + private ImagePagerAdapter() { + super(ImageActivity.this); } @Override - public Fragment getItem(int position) { + public Fragment createFragment(int position) { Fragment f = ImageFragment.newInstance( attachments.get(position), conversationMessageId, isFirst); isFirst = false; @@ -327,10 +325,9 @@ public class ImageActivity extends BriarActivity } @Override - public int getCount() { + public int getItemCount() { return attachments.size(); } - } } diff --git a/briar-android/src/main/res/layout/activity_image.xml b/briar-android/src/main/res/layout/activity_image.xml index 7fad3979d..010d9eac0 100644 --- a/briar-android/src/main/res/layout/activity_image.xml +++ b/briar-android/src/main/res/layout/activity_image.xml @@ -7,7 +7,7 @@ android:background="@android:color/black" tools:context=".android.conversation.ImageActivity"> -