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