1 // Copyright 2019 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 package org.chromium.chrome.browser.tasks.tab_management;
6 
7 import android.content.res.ColorStateList;
8 import android.view.View.OnClickListener;
9 
10 import org.chromium.ui.modelutil.PropertyKey;
11 import org.chromium.ui.modelutil.PropertyModel;
12 
13 /**
14  * {@link PropertyKey} list for the TabGroupUi.
15  */
16 class TabGroupUiProperties {
17     public static final PropertyModel
18             .WritableObjectPropertyKey<OnClickListener> LEFT_BUTTON_ON_CLICK_LISTENER =
19             new PropertyModel.WritableObjectPropertyKey<>();
20     public static final PropertyModel
21             .WritableObjectPropertyKey<OnClickListener> RIGHT_BUTTON_ON_CLICK_LISTENER =
22             new PropertyModel.WritableObjectPropertyKey<>();
23     public static final PropertyModel.WritableBooleanPropertyKey IS_MAIN_CONTENT_VISIBLE =
24             new PropertyModel.WritableBooleanPropertyKey();
25     public static final PropertyModel.WritableIntPropertyKey PRIMARY_COLOR =
26             new PropertyModel.WritableIntPropertyKey();
27     public static final PropertyModel.WritableObjectPropertyKey<ColorStateList> TINT =
28             new PropertyModel.WritableObjectPropertyKey<>();
29     public static final PropertyModel.WritableIntPropertyKey LEFT_BUTTON_DRAWABLE_ID =
30             new PropertyModel.WritableIntPropertyKey();
31     /**
32      * Integer, but not {@link PropertyModel.WritableIntPropertyKey} so that we can force update on
33      * the same value.
34      */
35     public static final PropertyModel.WritableObjectPropertyKey<Integer> INITIAL_SCROLL_INDEX =
36             new PropertyModel.WritableObjectPropertyKey<>(true);
37     public static final PropertyModel
38             .WritableObjectPropertyKey<String> LEFT_BUTTON_CONTENT_DESCRIPTION =
39             new PropertyModel.WritableObjectPropertyKey<>();
40     public static final PropertyModel
41             .WritableObjectPropertyKey<String> RIGHT_BUTTON_CONTENT_DESCRIPTION =
42             new PropertyModel.WritableObjectPropertyKey<>();
43 
44     public static final PropertyKey[] ALL_KEYS = new PropertyKey[] {LEFT_BUTTON_ON_CLICK_LISTENER,
45             RIGHT_BUTTON_ON_CLICK_LISTENER, IS_MAIN_CONTENT_VISIBLE, PRIMARY_COLOR, TINT,
46             LEFT_BUTTON_DRAWABLE_ID, INITIAL_SCROLL_INDEX, LEFT_BUTTON_CONTENT_DESCRIPTION,
47             RIGHT_BUTTON_CONTENT_DESCRIPTION};
48 }
49