Fix swipe on two missed activities.

This commit is contained in:
Hermes Junior 2020-06-17 22:34:47 +02:00 committed by OHermesJunior
parent b5fec7dac7
commit cad9912eda
2 changed files with 46 additions and 12 deletions

View File

@ -22,6 +22,7 @@ import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.tabs.TabLayout;
import com.r0adkll.slidr.Slidr;
import com.r0adkll.slidr.model.SlidrInterface;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@ -76,6 +77,7 @@ public class AccountSavedThingActivity extends BaseActivity implements ActivityT
@Inject
CustomThemeWrapper mCustomThemeWrapper;
private SectionsPagerAdapter sectionsPagerAdapter;
private SlidrInterface mSlidrInterface;
private Menu mMenu;
private AppBarLayout.LayoutParams params;
private boolean mNullAccessToken = false;
@ -98,7 +100,7 @@ public class AccountSavedThingActivity extends BaseActivity implements ActivityT
applyCustomTheme();
if (mSharedPreferences.getBoolean(SharedPreferencesUtils.SWIPE_RIGHT_TO_GO_BACK_FROM_POST_DETAIL, true)) {
Slidr.attach(this);
mSlidrInterface = Slidr.attach(this);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
@ -179,12 +181,7 @@ public class AccountSavedThingActivity extends BaseActivity implements ActivityT
viewPager.setOffscreenPageLimit(2);
tabLayout.setupWithViewPager(viewPager);
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
if (isInLazyMode) {
@ -194,11 +191,12 @@ public class AccountSavedThingActivity extends BaseActivity implements ActivityT
sectionsPagerAdapter.pauseLazyMode();
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
if (position == 0) {
unlockSwipeRightToGoBack();
} else {
lockSwipeRightToGoBack();
}
}
});
}
@ -290,6 +288,18 @@ public class AccountSavedThingActivity extends BaseActivity implements ActivityT
}
}
private void lockSwipeRightToGoBack() {
if (mSlidrInterface != null) {
mSlidrInterface.lock();
}
}
private void unlockSwipeRightToGoBack() {
if (mSlidrInterface != null) {
mSlidrInterface.unlock();
}
}
private class SectionsPagerAdapter extends FragmentPagerAdapter {
private PostFragment postFragment;
private CommentsListingFragment commentsListingFragment;

View File

@ -21,6 +21,7 @@ import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.tabs.TabLayout;
import com.r0adkll.slidr.Slidr;
import com.r0adkll.slidr.model.SlidrInterface;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@ -86,6 +87,7 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
SharedPreferences mSharedPreferences;
@Inject
CustomThemeWrapper mCustomThemeWrapper;
private SlidrInterface mSlidrInterface;
private boolean mNullAccessToken = false;
private String mAccessToken;
private String mAccountName;
@ -109,7 +111,7 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
applyCustomTheme();
if (mSharedPreferences.getBoolean(SharedPreferencesUtils.SWIPE_RIGHT_TO_GO_BACK_FROM_POST_DETAIL, true)) {
Slidr.attach(this);
mSlidrInterface = Slidr.attach(this);
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
@ -179,6 +181,16 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(sectionsPagerAdapter);
viewPager.setOffscreenPageLimit(3);
viewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
if (position == 0) {
unlockSwipeRightToGoBack();
} else {
lockSwipeRightToGoBack();
}
}
});
tabLayout.setupWithViewPager(viewPager);
if (showMultiReddits) {
@ -316,6 +328,18 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
}
}
private void lockSwipeRightToGoBack() {
if (mSlidrInterface != null) {
mSlidrInterface.lock();
}
}
private void unlockSwipeRightToGoBack() {
if (mSlidrInterface != null) {
mSlidrInterface.unlock();
}
}
private class SectionsPagerAdapter extends FragmentPagerAdapter {
private SubscribedSubredditsListingFragment subscribedSubredditsListingFragment;