1cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta/*
2cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * Copyright (C) 2014 The Android Open Source Project
3cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta *
4cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * Licensed under the Apache License, Version 2.0 (the "License");
5cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * you may not use this file except in compliance with the License.
6cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * You may obtain a copy of the License at
7cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta *
8cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta *      http://www.apache.org/licenses/LICENSE-2.0
9cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta *
10cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * Unless required by applicable law or agreed to in writing, software
11cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * distributed under the License is distributed on an "AS IS" BASIS,
12cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * See the License for the specific language governing permissions and
14cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * limitations under the License.
15cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta */
16cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta
17cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Guptapackage com.android.layoutlib.bridge.android;
18cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta
190a5d5bc6c103cd83ed2d79f2fd5a335e8e8f11beDeepanshu Guptaimport com.android.ide.common.rendering.api.LayoutlibCallback;
20cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Guptaimport com.android.ide.common.rendering.api.RenderParams;
21cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Guptaimport com.android.ide.common.rendering.api.SessionParams.Key;
22cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta
23cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta/**
24cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * This contains all known keys for the {@link RenderParams#getFlag(Key)}.
25cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * <p/>
26cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * The IDE has its own copy of this class which may be newer or older than this one.
27cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * <p/>
28cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta * Constants should never be modified or removed from this class.
29cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta */
30cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Guptapublic final class RenderParamsFlags {
31cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta
32cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta    public static final Key<String> FLAG_KEY_ROOT_TAG =
33cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta            new Key<String>("rootTag", String.class);
34cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta    public static final Key<Boolean> FLAG_KEY_DISABLE_BITMAP_CACHING =
35cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta            new Key<Boolean>("disableBitmapCaching", Boolean.class);
36cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta    public static final Key<Boolean> FLAG_KEY_RENDER_ALL_DRAWABLE_STATES =
37cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta            new Key<Boolean>("renderAllDrawableStates", Boolean.class);
38cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta    /**
39cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta     * To tell LayoutLib that the IDE supports RecyclerView.
40cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta     * <p/>
41cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta     * Default is false.
42cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta     */
43cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta    public static final Key<Boolean> FLAG_KEY_RECYCLER_VIEW_SUPPORT =
44cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta            new Key<Boolean>("recyclerViewSupport", Boolean.class);
45cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta    /**
460a5d5bc6c103cd83ed2d79f2fd5a335e8e8f11beDeepanshu Gupta     * The application package name. Used via {@link LayoutlibCallback#getFlag(Key)}
47cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta     */
48cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta    public static final Key<String> FLAG_KEY_APPLICATION_PACKAGE =
49cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta            new Key<String>("applicationPackage", String.class);
500a5d5bc6c103cd83ed2d79f2fd5a335e8e8f11beDeepanshu Gupta    /**
510a5d5bc6c103cd83ed2d79f2fd5a335e8e8f11beDeepanshu Gupta     * To tell LayoutLib that IDE supports providing XML Parser for a file (useful for getting in
520a5d5bc6c103cd83ed2d79f2fd5a335e8e8f11beDeepanshu Gupta     * memory contents of the file). Used via {@link LayoutlibCallback#getFlag(Key)}
530a5d5bc6c103cd83ed2d79f2fd5a335e8e8f11beDeepanshu Gupta     */
540a5d5bc6c103cd83ed2d79f2fd5a335e8e8f11beDeepanshu Gupta    public static final Key<Boolean> FLAG_KEY_XML_FILE_PARSER_SUPPORT =
550a5d5bc6c103cd83ed2d79f2fd5a335e8e8f11beDeepanshu Gupta            new Key<Boolean>("xmlFileParser", Boolean.class);
560685ab35ad78094ceb2d9fb0583e2cadd1968c90Diego Perez    /**
570685ab35ad78094ceb2d9fb0583e2cadd1968c90Diego Perez     * To tell LayoutLib to not render when creating a new session. This allows controlling when the first
580685ab35ad78094ceb2d9fb0583e2cadd1968c90Diego Perez     * layout rendering will happen.
590685ab35ad78094ceb2d9fb0583e2cadd1968c90Diego Perez     */
600685ab35ad78094ceb2d9fb0583e2cadd1968c90Diego Perez    public static final Key<Boolean> FLAG_DO_NOT_RENDER_ON_CREATE =
610685ab35ad78094ceb2d9fb0583e2cadd1968c90Diego Perez            new Key<Boolean>("doNotRenderOnCreate", Boolean.class);
62b1bd12381b7b0b57eff6d9bb1a5ae23309ab2b5cJerome Gaillard    /**
63b1bd12381b7b0b57eff6d9bb1a5ae23309ab2b5cJerome Gaillard     * The adaptive icon mask path. Used via {@link LayoutlibCallback#getFlag(Key)}
64b1bd12381b7b0b57eff6d9bb1a5ae23309ab2b5cJerome Gaillard     */
65b1bd12381b7b0b57eff6d9bb1a5ae23309ab2b5cJerome Gaillard    public static final Key<String> FLAG_KEY_ADAPTIVE_ICON_MASK_PATH =
66b1bd12381b7b0b57eff6d9bb1a5ae23309ab2b5cJerome Gaillard            new Key<>("adaptiveIconMaskPath", String.class);
67cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta
68cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta    // Disallow instances.
69cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta    private RenderParamsFlags() {}
70cb40f2cb35d559d9ea60382b6dee80022c851124Deepanshu Gupta}
71