1ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski/* 2ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Copyright (C) 2010 The Android Open Source Project 3ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * 4ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 5ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * you may not use this file except in compliance with the License. 6ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * You may obtain a copy of the License at 7ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * 8ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 9ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * 10ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * Unless required by applicable law or agreed to in writing, software 11ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 12ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * See the License for the specific language governing permissions and 14ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * limitations under the License. 15ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski */ 16ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 17ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskipackage com.android.layoutlib.bridge.android; 18ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 19ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskiimport com.android.layoutlib.bridge.BridgeConstants; 20ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 21ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskiimport android.util.AttributeSet; 22ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 23ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskiimport java.util.Map; 24ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 25ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski/** 26ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * An implementation of the {@link AttributeSet} interface on top of a map of attribute in the form 27ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * of (name, value). 28ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * 29ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * This is meant to be called only from {@link BridgeContext#obtainStyledAttributes(AttributeSet, int[], int, int)} 30ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski * in the case of LayoutParams and therefore isn't a full implementation. 31ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski */ 32ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinskipublic class BridgeLayoutParamsMapAttributes implements AttributeSet { 33ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 34ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski private final Map<String, String> mAttributes; 35ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 36ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public BridgeLayoutParamsMapAttributes(Map<String, String> attributes) { 37ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski mAttributes = attributes; 38ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 39ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 40ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 41ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public String getAttributeValue(String namespace, String name) { 42ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski if (BridgeConstants.NS_RESOURCES.equals(namespace)) { 43ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski return mAttributes.get(name); 44ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 45ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 46ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski return null; 47ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 48ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 49ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski // ---- the following methods are not called from 50ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski // BridgeContext#obtainStyledAttributes(AttributeSet, int[], int, int) 51ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski // Should they ever be called, we'll just implement them on a need basis. 52ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 53ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 54ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getAttributeCount() { 55ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 56ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 57ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 58ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 595e44c07e86c6118164e760ee565531dd57c3bf11Dianne Hackborn public String getAttributeNamespace(int index) { 605e44c07e86c6118164e760ee565531dd57c3bf11Dianne Hackborn throw new UnsupportedOperationException(); 615e44c07e86c6118164e760ee565531dd57c3bf11Dianne Hackborn } 625e44c07e86c6118164e760ee565531dd57c3bf11Dianne Hackborn 635e44c07e86c6118164e760ee565531dd57c3bf11Dianne Hackborn @Override 64ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public String getAttributeName(int index) { 65ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 66ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 67ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 68ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 69ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public String getAttributeValue(int index) { 70ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 71ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 72ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 73ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 74ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public String getPositionDescription() { 75ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 76ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 77ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 78ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 79ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getAttributeNameResource(int index) { 80ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 81ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 82ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 83ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 84ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getAttributeListValue(String namespace, String attribute, 85ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski String[] options, int defaultValue) { 86ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 87ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 88ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 89ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 90ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public boolean getAttributeBooleanValue(String namespace, String attribute, 91ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski boolean defaultValue) { 92ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 93ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 94ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 95ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 96ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getAttributeResourceValue(String namespace, String attribute, 97ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski int defaultValue) { 98ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 99ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 100ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 101ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 102ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getAttributeIntValue(String namespace, String attribute, 103ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski int defaultValue) { 104ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 105ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 106ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 107ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 108ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getAttributeUnsignedIntValue(String namespace, String attribute, 109ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski int defaultValue) { 110ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 111ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 112ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 113ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 114ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public float getAttributeFloatValue(String namespace, String attribute, 115ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski float defaultValue) { 116ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 117ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 118ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 119ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 120ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getAttributeListValue(int index, 121ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski String[] options, int defaultValue) { 122ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 123ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 124ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 125ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 126ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public boolean getAttributeBooleanValue(int index, boolean defaultValue) { 127ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 128ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 129ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 130ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 131ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getAttributeResourceValue(int index, int defaultValue) { 132ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 133ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 134ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 135ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 136ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getAttributeIntValue(int index, int defaultValue) { 137ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 138ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 139ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 140ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 141ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getAttributeUnsignedIntValue(int index, int defaultValue) { 142ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 143ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 144ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 145ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 146ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public float getAttributeFloatValue(int index, float defaultValue) { 147ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 148ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 149ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 150ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 151ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public String getIdAttribute() { 152ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 153ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 154ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 155ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 156ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public String getClassAttribute() { 157ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 158ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 159ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 160ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 161ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getIdAttributeResourceValue(int defaultValue) { 162ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 163ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 164ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski 165ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski @Override 166ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski public int getStyleAttribute() { 167ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski throw new UnsupportedOperationException(); 168ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski } 169ab775ecdd189b32e35b0d3f4a821502f88b03a4bAdam Lesinski} 170