1e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta/* 2e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * Copyright (C) 2013 The Android Open Source Project 3e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * 4e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * Licensed under the Apache License, Version 2.0 (the "License"); 5e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * you may not use this file except in compliance with the License. 6e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * You may obtain a copy of the License at 7e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * 8e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * http://www.apache.org/licenses/LICENSE-2.0 9e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * 10e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * Unless required by applicable law or agreed to in writing, software 11e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * distributed under the License is distributed on an "AS IS" BASIS, 12e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * See the License for the specific language governing permissions and 14e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * limitations under the License. 15e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta */ 16e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 17e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptapackage com.android.layoutlib.bridge.impl.binding; 18e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 19e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptaimport java.util.ArrayList; 20e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptaimport java.util.Collections; 21e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptaimport java.util.List; 22e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 23e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptaimport com.android.ide.common.rendering.api.DataBindingItem; 24e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 25e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta/** 26e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta * This is the items provided by the adapter. They are dynamically generated. 27e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta */ 28e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Guptafinal class AdapterItem { 29e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta private final DataBindingItem mItem; 30e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta private final int mType; 31e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta private final int mFullPosition; 32e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta private final int mPositionPerType; 33e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta private List<AdapterItem> mChildren; 34e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 35e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta protected AdapterItem(DataBindingItem item, int type, int fullPosition, 36e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta int positionPerType) { 37e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta mItem = item; 38e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta mType = type; 39e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta mFullPosition = fullPosition; 40e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta mPositionPerType = positionPerType; 41e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta } 42e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 43e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta void addChild(AdapterItem child) { 44e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta if (mChildren == null) { 45e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta mChildren = new ArrayList<AdapterItem>(); 46e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta } 47e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 48e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta mChildren.add(child); 49e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta } 50e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 51e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta List<AdapterItem> getChildren() { 52e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta if (mChildren != null) { 53e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta return mChildren; 54e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta } 55e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 56e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta return Collections.emptyList(); 57e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta } 58e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 59e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta int getType() { 60e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta return mType; 61e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta } 62e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 63e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta int getFullPosition() { 64e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta return mFullPosition; 65e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta } 66e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 67e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta int getPositionPerType() { 68e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta return mPositionPerType; 69e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta } 70e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta 71e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta DataBindingItem getDataBindingItem() { 72e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta return mItem; 73e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta } 74e98d2cb65c0915d5278c593d14ff4bdc778557f7Deepanshu Gupta} 75