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 android.test.AndroidTestCase; 1989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 2089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Guimport java.io.PrintWriter; 2189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Guimport java.io.StringWriter; 2289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 235642066d798fb95368c66e78bcd70644552a98b2Dake Gupublic abstract class GridTest { 2489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 2589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu static class Provider implements Grid.Provider { 2689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 2789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu int[] mItems; 2889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu int mCount; 2989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu int[] mEdges; 3089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 3189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu Provider(int[] items) { 3289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu mItems = items; 3389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu mCount = items.length; 3489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu mEdges = new int[mCount]; 3589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 3689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 3789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu @Override 3889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu public int getCount() { 3989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu return mCount; 4089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 4189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 4289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu @Override 4389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu public int createItem(int index, boolean append, Object[] item) { 4489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu return mItems[index]; 4589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 4689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 4789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu @Override 4889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu public void addItem(Object item, int index, int length, int rowIndex, int edge) { 4989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu if (edge == Integer.MAX_VALUE || edge == Integer.MIN_VALUE) { 5089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu // initialize edge for first item added 5189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu edge = 0; 5289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 5389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu mEdges[index] = edge; 5489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 5589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 5689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu @Override 5789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu public void removeItem(int index) { 5889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 5989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 6089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu @Override 6189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu public int getEdge(int index) { 6289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu return mEdges[index]; 6389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 6489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 6589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu @Override 6689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu public int getSize(int index) { 6789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu return mItems[index]; 6889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 6989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 7089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu void scroll(int distance) { 7189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu for (int i= 0; i < mEdges.length; i++) { 7289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu mEdges[i] -= distance; 7389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 7489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 7589fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 7689fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 7789fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu Provider mProvider; 7889fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu 7989fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu static String dump(Grid grid) { 8089fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu StringWriter w = new StringWriter(); 8189fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu grid.debugPrint(new PrintWriter(w)); 8289fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu return w.toString(); 8389fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu } 8489fac6fa5d32123cc79d1d4127a4a7bcf86c498aDake Gu} 85