diff --git a/tools/layoutlib/bridge/src/android/view/ViewRootImpl_RunQueue_Delegate.java b/tools/layoutlib/bridge/src/android/view/ViewRootImpl_RunQueue_Delegate.java new file mode 100644 index 0000000000000..51b42a626a2ed --- /dev/null +++ b/tools/layoutlib/bridge/src/android/view/ViewRootImpl_RunQueue_Delegate.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.view; + +import com.android.tools.layoutlib.annotations.LayoutlibDelegate; + +/** + * Delegate used to provide new implementation of a select few methods of + * {@link ViewRootImpl.RunQueue} + * + * Through the layoutlib_create tool, the original methods of ViewRootImpl.RunQueue have been + * replaced by calls to methods of the same name in this delegate class. + * + */ +public class ViewRootImpl_RunQueue_Delegate { + + @LayoutlibDelegate + /*package*/ static void postDelayed(ViewRootImpl.RunQueue thisQueue, Runnable action, long + delayMillis) { + // The actual RunQueue is never run and therefore never cleared. This method avoids + // runnables to be added to the RunQueue so they do not leak resources. + } +} diff --git a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java index 8a23e4b9d3dad..15c567f92b84c 100644 --- a/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java +++ b/tools/layoutlib/create/src/com/android/tools/layoutlib/create/CreateInfo.java @@ -184,6 +184,7 @@ public final class CreateInfo implements ICreateInfo { "android.view.View#getWindowToken", "android.view.View#isInEditMode", "android.view.ViewRootImpl#isInTouchMode", + "android.view.ViewRootImpl$RunQueue#postDelayed", "android.view.WindowManagerGlobal#getWindowManagerService", "android.view.inputmethod.InputMethodManager#getInstance", "android.view.MenuInflater#registerMenu",