1 /*
2  * Copyright (C) 2018 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.server.am;
18 
19 import android.content.ComponentName;
20 import android.server.am.component.ComponentsBase;
21 
22 public class Components extends ComponentsBase {
23     public static final ComponentName ALT_LAUNCHING_ACTIVITY = component("AltLaunchingActivity");
24     public static final ComponentName ALWAYS_FOCUSABLE_PIP_ACTIVITY =
25             component("AlwaysFocusablePipActivity");
26     public static final ComponentName ANIMATION_TEST_ACTIVITY = component("AnimationTestActivity");
27     public static final ComponentName ASSISTANT_ACTIVITY = component("AssistantActivity");
28     public static final ComponentName BOTTOM_ACTIVITY = component("BottomActivity");
29     public static final ComponentName BOTTOM_LEFT_LAYOUT_ACTIVITY =
30             component("BottomLeftLayoutActivity");
31     public static final ComponentName BOTTOM_RIGHT_LAYOUT_ACTIVITY =
32             component("BottomRightLayoutActivity");
33     public static final ComponentName BROADCAST_RECEIVER_ACTIVITY =
34             component("BroadcastReceiverActivity");
35     public static final ComponentName DIALOG_WHEN_LARGE_ACTIVITY =
36             component("DialogWhenLargeActivity");
37     public static final ComponentName DISMISS_KEYGUARD_ACTIVITY =
38             component("DismissKeyguardActivity");
39     public static final ComponentName DISMISS_KEYGUARD_METHOD_ACTIVITY =
40             component("DismissKeyguardMethodActivity");
41     public static final ComponentName DOCKED_ACTIVITY = component("DockedActivity");
42     /** This activity is an alias activity pointing {@link TrampolineActivity} in AndroidManifest.xml */
43     public static final ComponentName ENTRY_POINT_ALIAS_ACTIVITY =
44             component("EntryPointAliasActivity");
45     public static final ComponentName FONT_SCALE_ACTIVITY = component("FontScaleActivity");
46     public static final ComponentName FONT_SCALE_NO_RELAUNCH_ACTIVITY =
47             component("FontScaleNoRelaunchActivity");
48     public static final ComponentName FREEFORM_ACTIVITY = component("FreeformActivity");
49     public static final ComponentName KEYGUARD_LOCK_ACTIVITY = component("KeyguardLockActivity");
50     public static final ComponentName LANDSCAPE_ORIENTATION_ACTIVITY =
51             component("LandscapeOrientationActivity");
52     public static final ComponentName LAUNCH_ASSISTANT_ACTIVITY_FROM_SESSION =
53             component("LaunchAssistantActivityFromSession");
54     public static final ComponentName LAUNCH_ASSISTANT_ACTIVITY_INTO_STACK  =
55             component("LaunchAssistantActivityIntoAssistantStack");
56     public static final ComponentName LAUNCH_ENTER_PIP_ACTIVITY =
57             component("LaunchEnterPipActivity");
58     public static final ComponentName LAUNCH_INTO_PINNED_STACK_PIP_ACTIVITY =
59             component("LaunchIntoPinnedStackPipActivity");
60     public static final ComponentName LAUNCH_PIP_ON_PIP_ACTIVITY =
61             component("LaunchPipOnPipActivity");
62     public static final ComponentName LAUNCHING_ACTIVITY = component("LaunchingActivity");
63     public static final ComponentName LOG_CONFIGURATION_ACTIVITY =
64             component("LogConfigurationActivity");
65     public static final ComponentName MOVE_TASK_TO_BACK_ACTIVITY =
66             component("MoveTaskToBackActivity");
67     public static final ComponentName NIGHT_MODE_ACTIVITY = component("NightModeActivity");
68     public static final ComponentName NO_HISTORY_ACTIVITY = component("NoHistoryActivity");
69     public static final ComponentName NO_RELAUNCH_ACTIVITY = component("NoRelaunchActivity");
70     public static final ComponentName NON_RESIZEABLE_ACTIVITY = component("NonResizeableActivity");
71     public static final ComponentName PIP_ACTIVITY = component("PipActivity");
72     public static final ComponentName PIP_ACTIVITY2 = component("PipActivity2");
73     public static final ComponentName PIP_ACTIVITY_WITH_SAME_AFFINITY =
74             component("PipActivityWithSameAffinity");
75     public static final ComponentName PIP_ON_STOP_ACTIVITY = component("PipOnStopActivity");
76     public static final ComponentName PORTRAIT_ORIENTATION_ACTIVITY =
77             component("PortraitOrientationActivity");
78     public static final ComponentName RECURSIVE_ACTIVITY = component("RecursiveActivity");
79     public static final ComponentName RESIZEABLE_ACTIVITY = component("ResizeableActivity");
80     public static final ComponentName RESUME_WHILE_PAUSING_ACTIVITY =
81             component("ResumeWhilePausingActivity");
82     public static final ComponentName SHOW_WHEN_LOCKED_ACTIVITY =
83             component("ShowWhenLockedActivity");
84     public static final ComponentName SHOW_WHEN_LOCKED_ATTR_ACTIVITY =
85             component("ShowWhenLockedAttrActivity");
86     public static final ComponentName SHOW_WHEN_LOCKED_ATTR_REMOVE_ATTR_ACTIVITY =
87             component("ShowWhenLockedAttrRemoveAttrActivity");
88     public static final ComponentName SHOW_WHEN_LOCKED_DIALOG_ACTIVITY =
89             component("ShowWhenLockedDialogActivity");
90     public static final ComponentName SHOW_WHEN_LOCKED_TRANSLUCENT_ACTIVITY =
91             component("ShowWhenLockedTranslucentActivity");
92     public static final ComponentName SHOW_WHEN_LOCKED_WITH_DIALOG_ACTIVITY =
93             component("ShowWhenLockedWithDialogActivity");
94     public static final ComponentName SINGLE_INSTANCE_ACTIVITY =
95             component("SingleInstanceActivity");
96     public static final ComponentName SINGLE_TASK_ACTIVITY = component("SingleTaskActivity");
97     public static final ComponentName SLOW_CREATE_ACTIVITY = component("SlowCreateActivity");
98     public static final ComponentName SPLASHSCREEN_ACTIVITY = component("SplashscreenActivity");
99     public static final ComponentName SWIPE_REFRESH_ACTIVITY = component("SwipeRefreshActivity");
100     public static final ComponentName TEST_ACTIVITY = component("TestActivity");
101     public static final ComponentName TOP_ACTIVITY = component("TopActivity");
102     public static final ComponentName TEST_ACTIVITY_WITH_SAME_AFFINITY =
103             component("TestActivityWithSameAffinity");
104     public static final ComponentName TOP_LEFT_LAYOUT_ACTIVITY = component("TopLeftLayoutActivity");
105     public static final ComponentName TOP_RIGHT_LAYOUT_ACTIVITY =
106             component("TopRightLayoutActivity");
107     public static final ComponentName TRANSLUCENT_ACTIVITY = component("TranslucentActivity");
108     public static final ComponentName TRANSLUCENT_ASSISTANT_ACTIVITY =
109             component("TranslucentAssistantActivity");
110     public static final ComponentName TRANSLUCENT_TOP_ACTIVITY =
111             component("TranslucentTopActivity");
112     public static final ComponentName TRANSLUCENT_TEST_ACTIVITY =
113             component("TranslucentTestActivity");
114     public static final ComponentName TURN_SCREEN_ON_ACTIVITY = component("TurnScreenOnActivity");
115     public static final ComponentName TURN_SCREEN_ON_ATTR_ACTIVITY =
116             component("TurnScreenOnAttrActivity");
117     public static final ComponentName TURN_SCREEN_ON_ATTR_DISMISS_KEYGUARD_ACTIVITY =
118             component("TurnScreenOnAttrDismissKeyguardActivity");
119     public static final ComponentName TURN_SCREEN_ON_ATTR_REMOVE_ATTR_ACTIVITY =
120             component("TurnScreenOnAttrRemoveAttrActivity");
121     public static final ComponentName TURN_SCREEN_ON_DISMISS_KEYGUARD_ACTIVITY =
122             component("TurnScreenOnDismissKeyguardActivity");
123     public static final ComponentName TURN_SCREEN_ON_SHOW_ON_LOCK_ACTIVITY =
124             component("TurnScreenOnShowOnLockActivity");
125     public static final ComponentName TURN_SCREEN_ON_SINGLE_TASK_ACTIVITY =
126             component("TurnScreenOnSingleTaskActivity");
127     public static final ComponentName TURN_SCREEN_ON_WITH_RELAYOUT_ACTIVITY =
128             component("TurnScreenOnWithRelayoutActivity");
129     public static final ComponentName VIRTUAL_DISPLAY_ACTIVITY =
130             component("VirtualDisplayActivity");
131     public static final ComponentName VR_TEST_ACTIVITY = component("VrTestActivity");
132     public static final ComponentName WALLPAPAER_ACTIVITY = component("WallpaperActivity");
133 
134     public static final ComponentName ASSISTANT_VOICE_INTERACTION_SERVICE =
135             component("AssistantVoiceInteractionService");
136 
137     public static final ComponentName LAUNCH_BROADCAST_RECEIVER =
138             component("LaunchBroadcastReceiver");
139     public static final String LAUNCH_BROADCAST_ACTION =
140             getPackageName() + ".LAUNCH_BROADCAST_ACTION";
141 
142     /**
143      * Action and extra key constants for {@link #TEST_ACTIVITY}.
144      *
145      * TODO(b/73346885): These constants should be in {@link android.server.am.TestActivity} once
146      * the activity is moved to test APK.
147      */
148     public static class TestActivity {
149         // Finishes the activity
150         public static final String TEST_ACTIVITY_ACTION_FINISH_SELF =
151                 "android.server.am.TestActivity.finish_self";
152         // Sets the fixed orientation (can be one of {@link ActivityInfo.ScreenOrientation}
153         public static final String EXTRA_FIXED_ORIENTATION = "fixed_orientation";
154     }
155 
156     /**
157      * Extra key constants for {@link #LAUNCH_ASSISTANT_ACTIVITY_INTO_STACK} and
158      * {@link #LAUNCH_ASSISTANT_ACTIVITY_FROM_SESSION}.
159      *
160      * TODO(b/73346885): These constants should be in {@link android.server.am.AssistantActivity}
161      * once the activity is moved to test APK.
162      */
163     public static class AssistantActivity {
164         // Launches the given activity in onResume
165         public static final String EXTRA_ASSISTANT_LAUNCH_NEW_TASK = "launch_new_task";
166         // Finishes this activity in onResume, this happens after EXTRA_ASSISTANT_LAUNCH_NEW_TASK
167         public static final String EXTRA_ASSISTANT_FINISH_SELF = "finish_self";
168         // Attempts to enter picture-in-picture in onResume
169         public static final String EXTRA_ASSISTANT_ENTER_PIP = "enter_pip";
170         // Display on which Assistant runs
171         public static final String EXTRA_ASSISTANT_DISPLAY_ID = "assistant_display_id";
172     }
173 
174     /**
175      * Extra key constants for {@link android.server.am.BottomActivity}.
176      *
177      * TODO(b/73346885): These constants should be in {@link android.server.am.BottomActivity}
178      * once the activity is moved to test APK.
179      */
180     public static class BottomActivity {
181         public static final String EXTRA_BOTTOM_WALLPAPER = "USE_WALLPAPER";
182         public static final String EXTRA_STOP_DELAY = "STOP_DELAY";
183     }
184 
185     /**
186      * Extra key constants for {@link android.server.am.BroadcastReceiverActivity}.
187      *
188      * TODO(b/73346885): These constants should be in
189      * {@link android.server.am.BroadcastReceiverActivity} once the activity is moved to test APK.
190      */
191     public static class BroadcastReceiverActivity {
192         public static final String ACTION_TRIGGER_BROADCAST = "trigger_broadcast";
193         public static final String EXTRA_DISMISS_KEYGUARD = "dismissKeyguard";
194         public static final String EXTRA_DISMISS_KEYGUARD_METHOD = "dismissKeyguardMethod";
195         public static final String EXTRA_FINISH_BROADCAST = "finish";
196         public static final String EXTRA_MOVE_BROADCAST_TO_BACK = "moveToBack";
197         public static final String EXTRA_BROADCAST_ORIENTATION = "orientation";
198     }
199 
200     /**
201      *  Logging constants for {@link android.server.am.KeyguardDismissLoggerCallback}.
202      *
203      * TODO(b/73346885): These constants should be in
204      * {@link android.server.am.KeyguardDismissLoggerCallback} once the class is moved to test APK.
205      */
206     public static class KeyguardDismissLoggerCallback {
207         public static final String KEYGUARD_DISMISS_LOG_TAG = "KeyguardDismissLoggerCallback";
208         public static final String ENTRY_ON_DISMISS_CANCELLED = "onDismissCancelled";
209         public static final String ENTRY_ON_DISMISS_ERROR = "onDismissError";
210         public static final String ENTRY_ON_DISMISS_SUCCEEDED = "onDismissSucceeded";
211     }
212 
213     /**
214      * Extra key constants for {@link #LAUNCH_ASSISTANT_ACTIVITY_INTO_STACK}.
215      *
216      * TODO(b/73346885): These constants should be in
217      * {@link android.server.am.LaunchAssistantActivityIntoAssistantStack} once the activity is
218      * moved to test APK.
219      */
220     public static class LaunchAssistantActivityIntoAssistantStack {
221         // Launches the translucent assist activity
222         public static final String EXTRA_ASSISTANT_IS_TRANSLUCENT = "is_translucent";
223     }
224 
225     /**
226      * Extra constants for {@link android.server.am.MoveTaskToBackActivity}.
227      *
228      * TODO(b/73346885): These constants should be in
229      * {@link android.server.am.MoveTaskToBackActivity} once the activity is moved to test APK.
230      */
231     public static class MoveTaskToBackActivity {
232         public static final String EXTRA_FINISH_POINT = "finish_point";
233         public static final String FINISH_POINT_ON_PAUSE = "on_pause";
234         public static final String FINISH_POINT_ON_STOP = "on_stop";
235     }
236 
237     /**
238      * Action and extra key constants for {@link android.server.am.PipActivity}.
239      *
240      * TODO(b/73346885): These constants should be in {@link android.server.am.PipActivity}
241      * once the activity is moved to test APK.
242      */
243     public static class PipActivity {
244         // Intent action that this activity dynamically registers to enter picture-in-picture
245         public static final String ACTION_ENTER_PIP = "android.server.am.PipActivity.enter_pip";
246         // Intent action that this activity dynamically registers to move itself to the back
247         public static final String ACTION_MOVE_TO_BACK =
248                 "android.server.am.PipActivity.move_to_back";
249         // Intent action that this activity dynamically registers to expand itself.
250         // If EXTRA_SET_ASPECT_RATIO_WITH_DELAY is set, it will also attempt to apply the aspect
251         // ratio after a short delay.
252         public static final String ACTION_EXPAND_PIP = "android.server.am.PipActivity.expand_pip";
253         // Intent action that this activity dynamically registers to set requested orientation.
254         // Will apply the oriention to the value set in the EXTRA_FIXED_ORIENTATION extra.
255         public static final String ACTION_SET_REQUESTED_ORIENTATION =
256                 "android.server.am.PipActivity.set_requested_orientation";
257         // Intent action that will finish this activity
258         public static final String ACTION_FINISH = "android.server.am.PipActivity.finish";
259 
260         // Adds an assertion that we do not ever get onStop() before we enter picture in picture
261         public static final String EXTRA_ASSERT_NO_ON_STOP_BEFORE_PIP =
262                 "assert_no_on_stop_before_pip";
263         // Calls enterPictureInPicture() on creation
264         public static final String EXTRA_ENTER_PIP = "enter_pip";
265         // Used with EXTRA_AUTO_ENTER_PIP, value specifies the aspect ratio to enter PIP with
266         public static final String EXTRA_ENTER_PIP_ASPECT_RATIO_NUMERATOR =
267                 "enter_pip_aspect_ratio_numerator";
268         // Used with EXTRA_AUTO_ENTER_PIP, value specifies the aspect ratio to enter PIP with
269         public static final String EXTRA_ENTER_PIP_ASPECT_RATIO_DENOMINATOR =
270                 "enter_pip_aspect_ratio_denominator";
271         // Calls requestAutoEnterPictureInPicture() with the value provided
272         public static final String EXTRA_ENTER_PIP_ON_PAUSE = "enter_pip_on_pause";
273         // Finishes the activity at the end of onResume (after EXTRA_START_ACTIVITY is handled)
274         public static final String EXTRA_FINISH_SELF_ON_RESUME = "finish_self_on_resume";
275         // Sets the fixed orientation (can be one of {@link ActivityInfo.ScreenOrientation}
276         public static final String EXTRA_PIP_ORIENTATION = "fixed_orientation";
277         // The amount to delay to artificially introduce in onPause()
278         // (before EXTRA_ENTER_PIP_ON_PAUSE is processed)
279         public static final String EXTRA_ON_PAUSE_DELAY = "on_pause_delay";
280         // Calls enterPictureInPicture() again after onPictureInPictureModeChanged(false) is called
281         public static final String EXTRA_REENTER_PIP_ON_EXIT = "reenter_pip_on_exit";
282         // Calls setPictureInPictureAspectRatio with the aspect ratio specified in the value
283         public static final String EXTRA_SET_ASPECT_RATIO_DENOMINATOR =
284                 "set_aspect_ratio_denominator";
285         // Calls setPictureInPictureAspectRatio with the aspect ratio specified in the value
286         public static final String EXTRA_SET_ASPECT_RATIO_NUMERATOR = "set_aspect_ratio_numerator";
287         // Calls setPictureInPictureAspectRatio with the aspect ratio specified in the value with a
288         // fixed delay
289         public static final String EXTRA_SET_ASPECT_RATIO_WITH_DELAY_NUMERATOR =
290                 "set_aspect_ratio_with_delay_numerator";
291         // Calls setPictureInPictureAspectRatio with the aspect ratio specified in the value with a
292         // fixed delay
293         public static final String EXTRA_SET_ASPECT_RATIO_WITH_DELAY_DENOMINATOR =
294                 "set_aspect_ratio_with_delay_denominator";
295         // Shows this activity over the keyguard
296         public static final String EXTRA_SHOW_OVER_KEYGUARD = "show_over_keyguard";
297         // Starts the activity (component name) provided by the value at the end of onCreate
298         public static final String EXTRA_START_ACTIVITY = "start_activity";
299         // Adds a click listener to finish this activity when it is clicked
300         public static final String EXTRA_TAP_TO_FINISH = "tap_to_finish";
301     }
302 
303     /**
304      * Extra key constants for {@link android.server.am.TopActivity} and
305      * {@link android.server.am.TranslucentTopActivity}.
306      *
307      * TODO(b/73346885): These constants should be in {@link android.server.am.TopActivity}
308      * once the activity is moved to test APK.
309      */
310     public static class TopActivity {
311         public static final String EXTRA_FINISH_DELAY = "FINISH_DELAY";
312         public static final String EXTRA_TOP_WALLPAPER = "USE_WALLPAPER";
313     }
314 
315     /**
316      * Extra key constants for {@link android.server.am.VirtualDisplayActivity}.
317      *
318      * TODO(b/73346885): These constants should be in
319      * {@link android.server.am.VirtualDisplayActivity} once the activity is moved to test APK.
320      */
321     public static class VirtualDisplayActivity {
322         public static final String VIRTUAL_DISPLAY_PREFIX = "HostedVirtualDisplay";
323         public static final String KEY_CAN_SHOW_WITH_INSECURE_KEYGUARD =
324                 "can_show_with_insecure_keyguard";
325         public static final String KEY_COMMAND = "command";
326         public static final String KEY_COUNT = "count";
327         public static final String KEY_DENSITY_DPI = "density_dpi";
328         public static final String KEY_LAUNCH_TARGET_COMPONENT = "launch_target_component";
329         public static final String KEY_PUBLIC_DISPLAY = "public_display";
330         public static final String KEY_RESIZE_DISPLAY = "resize_display";
331         // Value constants of {@link #KEY_COMMAND}.
332         public static final String COMMAND_CREATE_DISPLAY = "create_display";
333         public static final String COMMAND_DESTROY_DISPLAY = "destroy_display";
334         public static final String COMMAND_RESIZE_DISPLAY = "resize_display";
335     }
336 
component(String className)337     private static ComponentName component(String className) {
338         return component(Components.class, className);
339     }
340 
getPackageName()341     private static String getPackageName() {
342         return getPackageName(Components.class);
343     }
344 }
345