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

Commit c43d136e authored by Fabian Kozynski's avatar Fabian Kozynski
Browse files

Pass configuration changes to all pages

In PagedTileLayout, all pages are inflated previously and the view pager
only attaches/dettaches pages. However, configuration changes are only
dispatched to direct children of the view. This change makes it so that
non-attached pages are also notified.

In particular, fontWeightAdjustment was not being passed, and it's not
one of the changes that causes fragments in SystemUI to be reinflated.

Test: manual
Fixes: 200882432
Change-Id: Ie2bd0eccf1d1e71f364501612bb6e6be8aa29bc9
parent a9efae98
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -112,6 +112,16 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout {
    @Override
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        // Pass configuration change to non-attached pages as well. Some config changes will cause
        // QS to recreate itself (as determined in FragmentHostManager), but in order to minimize
        // those, make sure that all get passed to all pages.
        int numPages = mPages.size();
        for (int i = 0; i < numPages; i++) {
            View page = mPages.get(i);
            if (page.getParent() == null) {
                page.dispatchConfigurationChanged(newConfig);
            }
        }
        if (mLayoutOrientation != newConfig.orientation) {
            mLayoutOrientation = newConfig.orientation;
            mDistributeTiles = true;