1282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/* 2282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Copyright (C) 2010 The Android Open Source Project 3282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 4282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License"); 5282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * you may not use this file except in compliance with the License. 6282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * You may obtain a copy of the License at 7282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 8282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * http://www.apache.org/licenses/LICENSE-2.0 9282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 10282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * Unless required by applicable law or agreed to in writing, software 11282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS, 12282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * See the License for the specific language governing permissions and 14282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * limitations under the License. 15282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 16282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 17282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipackage com.android.layoutlib.bridge.android; 18282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 19282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport com.android.layoutlib.bridge.BridgeConstants; 20282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 21282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport android.util.AttributeSet; 22282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 23282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskiimport java.util.Map; 24282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 25282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski/** 26282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * An implementation of the {@link AttributeSet} interface on top of a map of attribute in the form 27282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * of (name, value). 28282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * 29282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * This is meant to be called only from {@link BridgeContext#obtainStyledAttributes(AttributeSet, int[], int, int)} 30282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski * in the case of LayoutParams and therefore isn't a full implementation. 31282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski */ 32282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinskipublic class BridgeLayoutParamsMapAttributes implements AttributeSet { 33282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 34282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski private final Map<String, String> mAttributes; 35282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 36282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public BridgeLayoutParamsMapAttributes(Map<String, String> attributes) { 37282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski mAttributes = attributes; 38282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 39282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 40282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 41282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public String getAttributeValue(String namespace, String name) { 42282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski if (BridgeConstants.NS_RESOURCES.equals(namespace)) { 43282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return mAttributes.get(name); 44282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 45282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 46282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski return null; 47282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 48282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 49282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // ---- the following methods are not called from 50282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // BridgeContext#obtainStyledAttributes(AttributeSet, int[], int, int) 51282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski // Should they ever be called, we'll just implement them on a need basis. 52282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 53282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 54282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getAttributeCount() { 55282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 56282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 57282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 58282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 59282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public String getAttributeName(int index) { 60282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 61282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 62282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 63282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 64282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public String getAttributeValue(int index) { 65282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 66282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 67282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 68282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 69282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public String getPositionDescription() { 70282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 71282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 72282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 73282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 74282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getAttributeNameResource(int index) { 75282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 76282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 77282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 78282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 79282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getAttributeListValue(String namespace, String attribute, 80282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski String[] options, int defaultValue) { 81282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 82282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 83282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 84282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 85282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public boolean getAttributeBooleanValue(String namespace, String attribute, 86282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski boolean defaultValue) { 87282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 88282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 89282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 90282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 91282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getAttributeResourceValue(String namespace, String attribute, 92282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski int defaultValue) { 93282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 94282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 95282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 96282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 97282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getAttributeIntValue(String namespace, String attribute, 98282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski int defaultValue) { 99282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 100282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 101282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 102282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 103282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getAttributeUnsignedIntValue(String namespace, String attribute, 104282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski int defaultValue) { 105282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 106282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 107282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 108282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 109282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public float getAttributeFloatValue(String namespace, String attribute, 110282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski float defaultValue) { 111282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 112282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 113282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 114282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 115282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getAttributeListValue(int index, 116282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski String[] options, int defaultValue) { 117282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 118282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 119282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 120282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 121282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public boolean getAttributeBooleanValue(int index, boolean defaultValue) { 122282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 123282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 124282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 125282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 126282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getAttributeResourceValue(int index, int defaultValue) { 127282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 128282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 129282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 130282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 131282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getAttributeIntValue(int index, int defaultValue) { 132282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 133282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 134282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 135282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 136282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getAttributeUnsignedIntValue(int index, int defaultValue) { 137282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 138282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 139282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 140282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 141282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public float getAttributeFloatValue(int index, float defaultValue) { 142282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 143282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 144282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 145282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 146282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public String getIdAttribute() { 147282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 148282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 149282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 150282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 151282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public String getClassAttribute() { 152282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 153282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 154282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 155282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 156282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getIdAttributeResourceValue(int defaultValue) { 157282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 158282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 159282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski 160282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski @Override 161282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski public int getStyleAttribute() { 162282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski throw new UnsupportedOperationException(); 163282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski } 164282e181b58cf72b6ca770dc7ca5f91f135444502Adam Lesinski} 165