1345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet/* 2345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Copyright (C) 2011 The Android Open Source Project 3345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * 4345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License"); 5345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * you may not use this file except in compliance with the License. 6345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * You may obtain a copy of the License at 7345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * 8345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * http://www.apache.org/licenses/LICENSE-2.0 9345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * 10345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Unless required by applicable law or agreed to in writing, software 11345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS, 12345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * See the License for the specific language governing permissions and 14345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * limitations under the License. 15345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet */ 16345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 17345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetpackage android.content.res; 18345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 19345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetimport com.android.layoutlib.bridge.impl.RenderSessionImpl; 209a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohetimport com.android.tools.layoutlib.annotations.LayoutlibDelegate; 21345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 22345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetimport android.content.res.Resources.NotFoundException; 23345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetimport android.content.res.Resources.Theme; 24345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetimport android.util.AttributeSet; 25345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetimport android.util.TypedValue; 26345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 27345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet/** 28f1dee199a009fec5e3a5d1469f654098261f8b06Xavier Ducrohet * Delegate used to provide new implementation of a select few methods of {@link Resources$Theme} 29345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * 30345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * Through the layoutlib_create tool, the original methods of Theme have been replaced 31345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * by calls to methods of the same name in this delegate class. 32345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet * 33345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet */ 34345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohetpublic class Resources_Theme_Delegate { 35345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 369a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 37345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static TypedArray obtainStyledAttributes( 38345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet Resources thisResources, Theme thisTheme, 39345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet int[] attrs) { 40345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return RenderSessionImpl.getCurrentContext().obtainStyledAttributes(attrs); 41345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 42345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 439a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 44345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static TypedArray obtainStyledAttributes( 45345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet Resources thisResources, Theme thisTheme, 46345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet int resid, int[] attrs) 47345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet throws NotFoundException { 48345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return RenderSessionImpl.getCurrentContext().obtainStyledAttributes(resid, attrs); 49345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 50345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 519a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 52345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static TypedArray obtainStyledAttributes( 53345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet Resources thisResources, Theme thisTheme, 54345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes) { 55345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return RenderSessionImpl.getCurrentContext().obtainStyledAttributes( 56345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet set, attrs, defStyleAttr, defStyleRes); 57345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 58345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet 599a4fe29c8d92014d2d9a848e9116b8cc9d0842f9Xavier Ducrohet @LayoutlibDelegate 60345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet /*package*/ static boolean resolveAttribute( 61345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet Resources thisResources, Theme thisTheme, 62345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet int resid, TypedValue outValue, 63345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet boolean resolveRefs) { 64345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet return RenderSessionImpl.getCurrentContext().resolveThemeAttribute( 65345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet resid, outValue, resolveRefs); 66345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet } 67345f866bfd09476fd62aa10345a0670cc110b63cXavier Ducrohet} 68