Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56493453 authored by Yorke Lee's avatar Yorke Lee
Browse files

Fix another bug with RTL tabs

super.instantiateItem should continue being called with the
original unadjusted position (since getItem already adjusts it for
RTL).

Instead, override getItemId to return the RTL adjusted position,
so that if a fragment is being retrieved from the FragmentManager
instead of being created by getItem, the overriden getItemId will
ensure that FragmentPagerAdapter will construct the correct tag to
retrieve the correct fragment from the FragmentManager.

Bug: 17673059
Change-Id: I42a7ce3f0d8a17384fdb16c998e49254d3a734db
parent 0230ec94
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -182,6 +182,11 @@ public class ListsFragment extends AnalyticsFragment implements CallLogQueryHand
            super(fm);
        }

        @Override
        public long getItemId(int position) {
            return getRtlPosition(position);
        }

        @Override
        public Fragment getItem(int position) {
            switch (getRtlPosition(position)) {
@@ -206,7 +211,7 @@ public class ListsFragment extends AnalyticsFragment implements CallLogQueryHand
            // Copy the fragments that the FragmentManager finds so that we can store them in
            // instance variables for later.
            final Fragment fragment =
                    (Fragment) super.instantiateItem(container, getRtlPosition(position));
                    (Fragment) super.instantiateItem(container, position);
            if (fragment instanceof SpeedDialFragment) {
                mSpeedDialFragment = (SpeedDialFragment) fragment;
            } else if (fragment instanceof CallLogFragment) {