189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu/*
289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu * Copyright (C) 2015 The Android Open Source Project
389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu *
489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu * Licensed under the Apache License, Version 2.0 (the "License");
589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu * you may not use this file except in compliance with the License.
689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu * You may obtain a copy of the License at
789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu *
889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu *      http://www.apache.org/licenses/LICENSE-2.0
989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu *
1089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu * Unless required by applicable law or agreed to in writing, software
1189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu * distributed under the License is distributed on an "AS IS" BASIS,
1289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu * See the License for the specific language governing permissions and
1489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu * limitations under the License.
1589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu */
1689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gupackage android.support.v17.leanback.widget;
1789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
1889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Guimport java.io.PrintWriter;
1989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Guimport java.io.StringWriter;
2089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
215642066d798fb95368c66e78bcd70644552a98b2Dake Gupublic abstract class GridTest {
2289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
2389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu    static class Provider implements Grid.Provider {
2489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
2589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        int[] mItems;
2689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        int mCount;
2789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        int[] mEdges;
2889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
2989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        Provider(int[] items) {
3089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            mItems = items;
3189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            mCount = items.length;
3289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            mEdges = new int[mCount];
3389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        }
3489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
3589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        @Override
36134b0891c25facf14c53ef939846010284025ca9Dake Gu        public int getMinIndex() {
37134b0891c25facf14c53ef939846010284025ca9Dake Gu            return 0;
38134b0891c25facf14c53ef939846010284025ca9Dake Gu        }
39134b0891c25facf14c53ef939846010284025ca9Dake Gu
40134b0891c25facf14c53ef939846010284025ca9Dake Gu        @Override
4189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        public int getCount() {
4289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            return mCount;
4389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        }
4489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
4589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        @Override
46c50aca4940c8ae508393278aa7a9c77a3f93f87dDake Gu        public int createItem(int index, boolean append, Object[] item, boolean disappearingItem) {
4789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            return mItems[index];
4889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        }
4989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
5089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        @Override
5189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        public void addItem(Object item, int index, int length, int rowIndex, int edge) {
5289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            if (edge == Integer.MAX_VALUE || edge == Integer.MIN_VALUE) {
5389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu                // initialize edge for first item added
5489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu                edge = 0;
5589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            }
5689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            mEdges[index] = edge;
5789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        }
5889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
5989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        @Override
6089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        public void removeItem(int index) {
6189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        }
6289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
6389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        @Override
6489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        public int getEdge(int index) {
6589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            return mEdges[index];
6689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        }
6789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
6889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        @Override
6989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        public int getSize(int index) {
7089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            return mItems[index];
7189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        }
7289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
7389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        void scroll(int distance) {
7489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            for (int i= 0; i < mEdges.length; i++) {
7589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu                mEdges[i] -= distance;
7689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu            }
7789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        }
7889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu    }
7989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
8089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu    Provider mProvider;
8189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu
8289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu    static String dump(Grid grid) {
8389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        StringWriter w = new StringWriter();
8489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        grid.debugPrint(new PrintWriter(w));
8589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu        return w.toString();
8689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu    }
8789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu}
88