1d15459197f71f8cc940e2b057b399117df282f2cDiego Perez/* 2d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * Copyright (C) 2016 The Android Open Source Project 3d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * 4d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * Licensed under the Apache License, Version 2.0 (the "License"); 5d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * you may not use this file except in compliance with the License. 6d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * You may obtain a copy of the License at 7d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * 8d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * http://www.apache.org/licenses/LICENSE-2.0 9d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * 10d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * Unless required by applicable law or agreed to in writing, software 11d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * distributed under the License is distributed on an "AS IS" BASIS, 12d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * See the License for the specific language governing permissions and 14d15459197f71f8cc940e2b057b399117df282f2cDiego Perez * limitations under the License. 15d15459197f71f8cc940e2b057b399117df282f2cDiego Perez */ 16d15459197f71f8cc940e2b057b399117df282f2cDiego Perez 17d15459197f71f8cc940e2b057b399117df282f2cDiego Perezpackage com.android.layoutlib.bridge.intensive; 18d15459197f71f8cc940e2b057b399117df282f2cDiego Perez 19d15459197f71f8cc940e2b057b399117df282f2cDiego Perezimport com.android.ide.common.rendering.api.RenderSession; 20d15459197f71f8cc940e2b057b399117df282f2cDiego Perezimport com.android.ide.common.rendering.api.Result; 21d15459197f71f8cc940e2b057b399117df282f2cDiego Perezimport com.android.ide.common.rendering.api.ViewInfo; 22d15459197f71f8cc940e2b057b399117df282f2cDiego Perez 23d15459197f71f8cc940e2b057b399117df282f2cDiego Perezimport android.annotation.NonNull; 24d15459197f71f8cc940e2b057b399117df282f2cDiego Perezimport android.annotation.Nullable; 25d15459197f71f8cc940e2b057b399117df282f2cDiego Perez 268a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perezimport java.awt.image.BufferedImage; 27d15459197f71f8cc940e2b057b399117df282f2cDiego Perezimport java.util.ArrayList; 28d15459197f71f8cc940e2b057b399117df282f2cDiego Perezimport java.util.Collections; 29d15459197f71f8cc940e2b057b399117df282f2cDiego Perezimport java.util.List; 30d15459197f71f8cc940e2b057b399117df282f2cDiego Perez 31d15459197f71f8cc940e2b057b399117df282f2cDiego Perezclass RenderResult { 32d15459197f71f8cc940e2b057b399117df282f2cDiego Perez private final List<ViewInfo> mRootViews; 33d15459197f71f8cc940e2b057b399117df282f2cDiego Perez private final List<ViewInfo> mSystemViews; 34d15459197f71f8cc940e2b057b399117df282f2cDiego Perez private final Result mRenderResult; 358a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perez private BufferedImage mImage; 36d15459197f71f8cc940e2b057b399117df282f2cDiego Perez 37d15459197f71f8cc940e2b057b399117df282f2cDiego Perez private RenderResult(@Nullable Result result, @Nullable List<ViewInfo> systemViewInfoList, 388a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perez @Nullable List<ViewInfo> rootViewInfoList, @Nullable BufferedImage image) { 39d15459197f71f8cc940e2b057b399117df282f2cDiego Perez mSystemViews = systemViewInfoList == null ? Collections.emptyList() : systemViewInfoList; 40d15459197f71f8cc940e2b057b399117df282f2cDiego Perez mRootViews = rootViewInfoList == null ? Collections.emptyList() : rootViewInfoList; 41d15459197f71f8cc940e2b057b399117df282f2cDiego Perez mRenderResult = result; 428a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perez mImage = image; 43d15459197f71f8cc940e2b057b399117df282f2cDiego Perez } 44d15459197f71f8cc940e2b057b399117df282f2cDiego Perez 45d15459197f71f8cc940e2b057b399117df282f2cDiego Perez @NonNull 46d15459197f71f8cc940e2b057b399117df282f2cDiego Perez static RenderResult getFromSession(@NonNull RenderSession session) { 47d15459197f71f8cc940e2b057b399117df282f2cDiego Perez return new RenderResult(session.getResult(), 48d15459197f71f8cc940e2b057b399117df282f2cDiego Perez new ArrayList<>(session.getSystemRootViews()), 498a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perez new ArrayList<>(session.getRootViews()), 508a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perez session.getImage()); 51d15459197f71f8cc940e2b057b399117df282f2cDiego Perez } 52d15459197f71f8cc940e2b057b399117df282f2cDiego Perez 53d15459197f71f8cc940e2b057b399117df282f2cDiego Perez @Nullable 54d15459197f71f8cc940e2b057b399117df282f2cDiego Perez Result getResult() { 55d15459197f71f8cc940e2b057b399117df282f2cDiego Perez return mRenderResult; 56d15459197f71f8cc940e2b057b399117df282f2cDiego Perez } 57d15459197f71f8cc940e2b057b399117df282f2cDiego Perez 58d15459197f71f8cc940e2b057b399117df282f2cDiego Perez @NonNull 59d15459197f71f8cc940e2b057b399117df282f2cDiego Perez public List<ViewInfo> getRootViews() { 60d15459197f71f8cc940e2b057b399117df282f2cDiego Perez return mRootViews; 61d15459197f71f8cc940e2b057b399117df282f2cDiego Perez } 62d15459197f71f8cc940e2b057b399117df282f2cDiego Perez 63d15459197f71f8cc940e2b057b399117df282f2cDiego Perez @NonNull 64d15459197f71f8cc940e2b057b399117df282f2cDiego Perez public List<ViewInfo> getSystemViews() { 65d15459197f71f8cc940e2b057b399117df282f2cDiego Perez return mSystemViews; 66d15459197f71f8cc940e2b057b399117df282f2cDiego Perez } 678a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perez 688a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perez @Nullable 698a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perez public BufferedImage getImage() { 708a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perez return mImage; 718a7546e1fcb0f4161e6068d326253b5bfd390c4cDiego Perez } 72d15459197f71f8cc940e2b057b399117df282f2cDiego Perez} 73