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