mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-21 15:19:53 +01:00
Merge branch '2056-view-pager-crash' into 'master'
Migrate to ViewPager2 to fix weird ViewPager crash Closes #2056 See merge request briar/briar!1484
This commit is contained in:
@@ -33,10 +33,9 @@ import androidx.annotation.RequiresApi;
|
|||||||
import androidx.appcompat.app.AlertDialog.Builder;
|
import androidx.appcompat.app.AlertDialog.Builder;
|
||||||
import androidx.appcompat.widget.Toolbar;
|
import androidx.appcompat.widget.Toolbar;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.fragment.app.FragmentManager;
|
|
||||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
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.ACTION_CREATE_DOCUMENT;
|
||||||
import static android.content.Intent.CATEGORY_OPENABLE;
|
import static android.content.Intent.CATEGORY_OPENABLE;
|
||||||
@@ -76,7 +75,7 @@ public class ImageActivity extends BriarActivity
|
|||||||
private ImageViewModel viewModel;
|
private ImageViewModel viewModel;
|
||||||
private PullDownLayout layout;
|
private PullDownLayout layout;
|
||||||
private AppBarLayout appBarLayout;
|
private AppBarLayout appBarLayout;
|
||||||
private ViewPager viewPager;
|
private ViewPager2 viewPager;
|
||||||
private List<AttachmentItem> attachments;
|
private List<AttachmentItem> attachments;
|
||||||
private MessageId conversationMessageId;
|
private MessageId conversationMessageId;
|
||||||
|
|
||||||
@@ -142,8 +141,7 @@ public class ImageActivity extends BriarActivity
|
|||||||
|
|
||||||
// Set up image ViewPager
|
// Set up image ViewPager
|
||||||
viewPager = findViewById(R.id.viewPager);
|
viewPager = findViewById(R.id.viewPager);
|
||||||
ImagePagerAdapter pagerAdapter =
|
ImagePagerAdapter pagerAdapter = new ImagePagerAdapter();
|
||||||
new ImagePagerAdapter(getSupportFragmentManager());
|
|
||||||
viewPager.setAdapter(pagerAdapter);
|
viewPager.setAdapter(pagerAdapter);
|
||||||
viewPager.setCurrentItem(position);
|
viewPager.setCurrentItem(position);
|
||||||
|
|
||||||
@@ -310,16 +308,16 @@ public class ImageActivity extends BriarActivity
|
|||||||
return attachments.get(viewPager.getCurrentItem());
|
return attachments.get(viewPager.getCurrentItem());
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ImagePagerAdapter extends FragmentStatePagerAdapter {
|
private class ImagePagerAdapter extends FragmentStateAdapter {
|
||||||
|
|
||||||
private boolean isFirst = true;
|
private boolean isFirst = true;
|
||||||
|
|
||||||
private ImagePagerAdapter(FragmentManager fm) {
|
private ImagePagerAdapter() {
|
||||||
super(fm);
|
super(ImageActivity.this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Fragment getItem(int position) {
|
public Fragment createFragment(int position) {
|
||||||
Fragment f = ImageFragment.newInstance(
|
Fragment f = ImageFragment.newInstance(
|
||||||
attachments.get(position), conversationMessageId, isFirst);
|
attachments.get(position), conversationMessageId, isFirst);
|
||||||
isFirst = false;
|
isFirst = false;
|
||||||
@@ -327,10 +325,9 @@ public class ImageActivity extends BriarActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getCount() {
|
public int getItemCount() {
|
||||||
return attachments.size();
|
return attachments.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
android:background="@android:color/black"
|
android:background="@android:color/black"
|
||||||
tools:context=".android.conversation.ImageActivity">
|
tools:context=".android.conversation.ImageActivity">
|
||||||
|
|
||||||
<androidx.viewpager.widget.ViewPager
|
<androidx.viewpager2.widget.ViewPager2
|
||||||
android:id="@+id/viewPager"
|
android:id="@+id/viewPager"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
|
|||||||
Reference in New Issue
Block a user