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