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

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

Fix dynamic columns in QSCustomizer

When device rotates, use the correct number of columns

Test: manual, rotation
Change-Id: I380f11fedcdfbb53732ffbfb459a323b199db1e1
Bug: 171319433
parent 2d37557f
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -102,6 +102,12 @@ public class QSCustomizerController extends ViewController<QSCustomizer> {
        public void onConfigChanged(Configuration newConfig) {
            mView.updateNavBackDrop(newConfig, mLightBarController);
            mView.updateResources();
            if (mTileAdapter.updateNumColumns()) {
                RecyclerView.LayoutManager lm = mView.getRecyclerView().getLayoutManager();
                if (lm instanceof GridLayoutManager) {
                    ((GridLayoutManager) lm).setSpanCount(mTileAdapter.getNumColumns());
                }
            }
        }
    };

+16 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
    private final UiEventLogger mUiEventLogger;
    private final AccessibilityDelegateCompat mAccessibilityDelegate;
    private RecyclerView mRecyclerView;
    private final int mNumColumns;
    private int mNumColumns;

    @Inject
    public TileAdapter(Context context, QSTileHost qsHost, UiEventLogger uiEventLogger) {
@@ -123,6 +123,21 @@ public class TileAdapter extends RecyclerView.Adapter<Holder> implements TileSta
        mRecyclerView = null;
    }

    /**
     * Update the number of columns to show, from resources.
     *
     * @return {@code true} if the number of columns changed, {@code false} otherwise
     */
    public boolean updateNumColumns() {
        int numColumns = mContext.getResources().getInteger(R.integer.quick_settings_num_columns);
        if (numColumns != mNumColumns) {
            mNumColumns = numColumns;
            return true;
        } else {
            return false;
        }
    }

    public int getNumColumns() {
        return mNumColumns;
    }