• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2   Copyright (C) 2019 The Android Open Source Project
3 
4   Licensed under the Apache License, Version 2.0 (the "License");
5   you may not use this file except in compliance with the License.
6   You may obtain a copy of the License at
7 
8        http://www.apache.org/licenses/LICENSE-2.0
9 
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15  */
16 
17 package android.widget;
18 
19 /**
20  * Flags in the {@link android.provider.DeviceConfig#NAMESPACE_WIDGET "widget" namespace}.
21  *
22  * @hide
23  */
24 public final class WidgetFlags {
25 
26     /**
27      * Whether starting a cursor drag from anywhere in the text should be enabled.
28      */
29     public static final String ENABLE_CURSOR_DRAG_FROM_ANYWHERE =
30             "CursorControlFeature__enable_cursor_drag_from_anywhere";
31 
32     /**
33      * The key used in app core settings for the flag {@link #ENABLE_CURSOR_DRAG_FROM_ANYWHERE}.
34      */
35     public static final String KEY_ENABLE_CURSOR_DRAG_FROM_ANYWHERE =
36             "widget__enable_cursor_drag_from_anywhere";
37 
38     /**
39      * Default value for the flag {@link #ENABLE_CURSOR_DRAG_FROM_ANYWHERE}.
40      */
41     public static final boolean ENABLE_CURSOR_DRAG_FROM_ANYWHERE_DEFAULT = true;
42 
43     /**
44      * Threshold for the direction of a swipe gesture in order for it to be handled as a cursor drag
45      * rather than a scroll. The direction angle of the swipe gesture must exceed this value in
46      * order to trigger cursor drag; otherwise, the swipe will be assumed to be a scroll gesture.
47      * The value units for this flag is degrees and the valid range is [0,90] inclusive. If a value
48      * < 0 is set, 0 will be used instead; if a value > 90 is set, 90 will be used instead.
49      */
50     public static final String CURSOR_DRAG_MIN_ANGLE_FROM_VERTICAL =
51             "CursorControlFeature__min_angle_from_vertical_to_start_cursor_drag";
52 
53     /**
54      * The key used in app core settings for the flag
55      * {@link #CURSOR_DRAG_MIN_ANGLE_FROM_VERTICAL}.
56      */
57     public static final String KEY_CURSOR_DRAG_MIN_ANGLE_FROM_VERTICAL =
58             "widget__min_angle_from_vertical_to_start_cursor_drag";
59 
60     /**
61      * Default value for the flag {@link #CURSOR_DRAG_MIN_ANGLE_FROM_VERTICAL}.
62      */
63     public static final int CURSOR_DRAG_MIN_ANGLE_FROM_VERTICAL_DEFAULT = 45;
64 
65     /**
66      * The flag of finger-to-cursor distance in DP for cursor dragging.
67      * The value unit is DP and the range is {0..100}. If the value is out of range, the legacy
68      * value, which is based on handle size, will be used.
69      */
70     public static final String FINGER_TO_CURSOR_DISTANCE =
71             "CursorControlFeature__finger_to_cursor_distance";
72 
73     /**
74      * The key used in app core settings for the flag {@link #FINGER_TO_CURSOR_DISTANCE}.
75      */
76     public static final String KEY_FINGER_TO_CURSOR_DISTANCE =
77             "widget__finger_to_cursor_distance";
78 
79     /**
80      * Default value for the flag {@link #FINGER_TO_CURSOR_DISTANCE}.
81      */
82     public static final int FINGER_TO_CURSOR_DISTANCE_DEFAULT = -1;
83 
84     /**
85      * Whether additional gestures should be enabled for the insertion cursor handle (e.g.
86      * long-press or double-tap on the handle to trigger selection).
87      */
88     public static final String ENABLE_INSERTION_HANDLE_GESTURES =
89             "CursorControlFeature__enable_insertion_handle_gestures";
90 
91     /**
92      * The key used in app core settings for the flag {@link #ENABLE_INSERTION_HANDLE_GESTURES}.
93      */
94     public static final String KEY_ENABLE_INSERTION_HANDLE_GESTURES =
95             "widget__enable_insertion_handle_gestures";
96 
97     /**
98      * Default value for the flag {@link #ENABLE_INSERTION_HANDLE_GESTURES}.
99      */
100     public static final boolean ENABLE_INSERTION_HANDLE_GESTURES_DEFAULT = false;
101 
102     /**
103      * The flag of delta height applies to the insertion handle when cursor control flag is enabled.
104      */
105     public static final String INSERTION_HANDLE_DELTA_HEIGHT =
106             "CursorControlFeature__insertion_handle_delta_height";
107 
108     /**
109      * The key name used in app core settings for {@link #INSERTION_HANDLE_DELTA_HEIGHT}.
110      */
111     public static final String KEY_INSERTION_HANDLE_DELTA_HEIGHT =
112             "widget__insertion_handle_delta_height";
113 
114     /**
115      * Default value for the flag {@link #INSERTION_HANDLE_DELTA_HEIGHT}.
116      */
117     public static final int INSERTION_HANDLE_DELTA_HEIGHT_DEFAULT = 25;
118 
119     /**
120      * The flag of opacity applies to the insertion handle when cursor control flag is enabled.
121      * The opacity value is in the range of {0..100}.
122      */
123     public static final String INSERTION_HANDLE_OPACITY =
124             "CursorControlFeature__insertion_handle_opacity";
125 
126     /**
127      * The key name used in app core settings for {@link #INSERTION_HANDLE_OPACITY}.
128      */
129     public static final String KEY_INSERTION_HANDLE_OPACITY =
130             "widget__insertion_handle_opacity";
131 
132     /**
133      * Default value for the flag {@link #INSERTION_HANDLE_OPACITY}.
134      */
135     public static final int INSERTION_HANDLE_OPACITY_DEFAULT = 50;
136 
137     /**
138      * The flag of line slop ratio applies to cursor movement.
139      * Note: the actual slop value is bound: lineHeight + slop within the range of {8dp..45dp}.
140      */
141     public static final String LINE_SLOP_RATIO =
142             "CursorControlFeature__line_slop_ratio";
143 
144     /**
145      * The key name used in app core settings for {@link #LINE_SLOP_RATIO}.
146      */
147     public static final String KEY_LINE_SLOP_RATIO =
148             "widget__line_slop_ratio";
149 
150     /**
151      * Default value for the flag {@link #LINE_SLOP_RATIO}.
152      */
153     public static final float LINE_SLOP_RATIO_DEFAULT = .5f;
154 
155     /**
156      * The flag of enabling the new magnifier.
157      */
158     public static final String ENABLE_NEW_MAGNIFIER = "CursorControlFeature__enable_new_magnifier";
159 
160     /**
161      * The key name used in app core settings for {@link #ENABLE_NEW_MAGNIFIER}.
162      */
163     public static final String KEY_ENABLE_NEW_MAGNIFIER = "widget__enable_new_magnifier";
164 
165     /**
166      * Default value for the flag {@link #ENABLE_NEW_MAGNIFIER}.
167      */
168     public static final boolean ENABLE_NEW_MAGNIFIER_DEFAULT = false;
169 
170     /**
171      * The flag of zoom factor applies to the new magnifier.
172      */
173     public static final String MAGNIFIER_ZOOM_FACTOR =
174             "CursorControlFeature__magnifier_zoom_factor";
175 
176     /**
177      * The key name used in app core settings for {@link #MAGNIFIER_ZOOM_FACTOR}.
178      */
179     public static final String KEY_MAGNIFIER_ZOOM_FACTOR = "widget__magnifier_zoom_factor";
180 
181     /**
182      * Default value for the flag {@link #MAGNIFIER_ZOOM_FACTOR}.
183      */
184     public static final float MAGNIFIER_ZOOM_FACTOR_DEFAULT = 1.5f;
185 
186     /**
187      * The flag of aspect ratio (width/height) applies to the new magnifier.
188      */
189     public static final String MAGNIFIER_ASPECT_RATIO =
190             "CursorControlFeature__magnifier_aspect_ratio";
191 
192     /**
193      * The key name used in app core settings for {@link #MAGNIFIER_ASPECT_RATIO}.
194      */
195     public static final String KEY_MAGNIFIER_ASPECT_RATIO = "widget__magnifier_aspect_ratio";
196 
197     /**
198      * Default value for the flag {@link #MAGNIFIER_ASPECT_RATIO}.
199      */
200     public static final float MAGNIFIER_ASPECT_RATIO_DEFAULT = 5.5f;
201 
202     /** The flag of the fps of the analog clock seconds hand. */
203     public static final String ANALOG_CLOCK_SECONDS_HAND_FPS =
204             "AnalogClockFeature__analog_clock_seconds_hand_fps";
205 
206     /** The key name used in app core settings for {@link #ANALOG_CLOCK_SECONDS_HAND_FPS}. */
207     public static final String KEY_ANALOG_CLOCK_SECONDS_HAND_FPS =
208             "widget__analog_clock_seconds_hand_fps";
209 
WidgetFlags()210     private WidgetFlags() {
211     }
212 }
213