17f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet/* 27f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * Copyright (C) 2011 The Android Open Source Project 37f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * 47f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License"); 57f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * you may not use this file except in compliance with the License. 67f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * You may obtain a copy of the License at 77f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * 87f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * http://www.apache.org/licenses/LICENSE-2.0 97f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * 107f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * Unless required by applicable law or agreed to in writing, software 117f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS, 127f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * See the License for the specific language governing permissions and 147f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet * limitations under the License. 157f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet */ 167f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet 177f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohetpackage android.view; 187f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet 197f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohetimport com.android.layoutlib.bridge.android.BridgeWindow; 207f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohetimport com.android.layoutlib.bridge.android.BridgeWindowSession; 217f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet 227f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohetimport android.os.Handler; 237f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohetimport android.view.View.AttachInfo; 247f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet 25f1dee199a009fec5e3a5d1469f654098261f8b06Xavier Ducrohet/** 26f1dee199a009fec5e3a5d1469f654098261f8b06Xavier Ducrohet * Class allowing access to package-protected methods/fields. 27f1dee199a009fec5e3a5d1469f654098261f8b06Xavier Ducrohet */ 287f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohetpublic class AttachInfo_Accessor { 297f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet 307f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet public static void setAttachInfo(View view) { 317f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet AttachInfo info = new AttachInfo(new BridgeWindowSession(), new BridgeWindow(), 327f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet new Handler(), null); 337f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet info.mHasWindowFocus = true; 347f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet info.mWindowVisibility = View.VISIBLE; 357f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet info.mInTouchMode = false; // this is so that we can display selections. 367f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet info.mHardwareAccelerated = false; 377f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet view.dispatchAttachedToWindow(info, 0); 387f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet } 397f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet 407f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet public static void dispatchOnPreDraw(View view) { 417f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet view.mAttachInfo.mTreeObserver.dispatchOnPreDraw(); 427f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet } 437f9f99ea11051614a7727dfb9f9578b518e76e3cXavier Ducrohet} 44