14a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev/*
24a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev * Copyright (C) 2015 The Android Open Source Project
34a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev *
44a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev * Licensed under the Apache License, Version 2.0 (the "License");
54a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev * you may not use this file except in compliance with the License.
64a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev * You may obtain a copy of the License at
74a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev *
84a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev *      http://www.apache.org/licenses/LICENSE-2.0
94a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev *
104a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev * Unless required by applicable law or agreed to in writing, software
114a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev * distributed under the License is distributed on an "AS IS" BASIS,
124a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev * See the License for the specific language governing permissions and
144a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev * limitations under the License.
154a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev */
164a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev
174a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheevpackage com.example.android.supportv7.widget;
184a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev
19def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.recyclerview.widget.StaggeredGridLayoutManager;
20def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas
214a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheevimport com.example.android.supportv7.R;
224a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheevimport com.example.android.supportv7.widget.util.ConfigToggle;
234a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev
244a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheevpublic class StaggeredGridLayoutManagerActivity
254a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev        extends BaseLayoutManagerActivity<StaggeredGridLayoutManager> {
264a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev
274a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev    private boolean mVertical = true;
284a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev
294a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev    @Override
304a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev    protected StaggeredGridLayoutManager createLayoutManager() {
314a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev        if (mVertical) {
324a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev            return new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
334a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev        } else {
344a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev            return new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.HORIZONTAL);
354a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev        }
364a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev    }
374a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev
384a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev    @Override
398faffcd819c6272f9e6537d563c8492854787968Chris Craik    protected ConfigToggle[] createConfigToggles() {
404a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev        return new ConfigToggle[] {
414a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                new ConfigToggle(this, R.string.vertical) {
424a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                    @Override
434a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                    public boolean isChecked() {
444a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                        return mVertical;
454a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                    }
464a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev
474a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                    @Override
484a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                    public void onChange(boolean newValue) {
494a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                        if (mVertical == newValue) {
504a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                            return;
514a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                        }
524a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                        mVertical = newValue;
534a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                        mRecyclerView.setLayoutManager(createLayoutManager());
544a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                    }
554a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev                }
564a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev        };
574a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev    }
584a0f9fc4870e7612853bf184bb9b983643b7b82cVladislav Kaznacheev}
59