14b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet/* 24b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Copyright (C) 2011 The Android Open Source Project 34b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * 44b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License"); 54b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * you may not use this file except in compliance with the License. 64b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * You may obtain a copy of the License at 74b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * 84b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * http://www.apache.org/licenses/LICENSE-2.0 94b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * 104b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Unless required by applicable law or agreed to in writing, software 114b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS, 124b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * See the License for the specific language governing permissions and 144b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * limitations under the License. 154b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet */ 164b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet 174b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohetpackage android.os; 184b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet 194b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohetimport com.android.layoutlib.bridge.Bridge; 204b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohetimport com.android.layoutlib.bridge.impl.DelegateManager; 214b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohetimport com.android.tools.layoutlib.annotations.LayoutlibDelegate; 224b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet 234b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohetimport java.util.Map; 244b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet 254b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet/** 264b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Delegate implementing the native methods of android.os.Build 274b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * 284b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Through the layoutlib_create tool, the original native methods of Build have been replaced 294b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * by calls to methods of the same name in this delegate class. 304b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * 314b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Because it's a stateless class to start with, there's no need to keep a {@link DelegateManager} 324b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * around to map int to instance of the delegate. 334b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * 344b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet */ 354b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohetpublic class Build_Delegate { 364b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet 374b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet @LayoutlibDelegate 384b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet /*package*/ static String getString(String property) { 394b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet Map<String, String> properties = Bridge.getPlatformProperties(); 404b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet String value = properties.get(property); 414b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet if (value != null) { 424b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet return value; 434b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet } 444b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet 454b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet return Build.UNKNOWN; 464b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet } 474b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet 484b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet} 49