1 /*
2  * Copyright (C) 2020 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 com.android.systemui.screenshot;
18 
19 import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_ACCESSIBILITY_ACTIONS;
20 import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_GLOBAL_ACTIONS;
21 import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_KEY_CHORD;
22 import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_KEY_OTHER;
23 import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_OTHER;
24 import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_OVERVIEW;
25 import static android.view.WindowManager.ScreenshotSource.SCREENSHOT_VENDOR_GESTURE;
26 
27 import com.android.internal.logging.UiEvent;
28 import com.android.internal.logging.UiEventLogger;
29 
30 public enum ScreenshotEvent implements UiEventLogger.UiEventEnum {
31     @UiEvent(doc = "screenshot requested from global actions")
32     SCREENSHOT_REQUESTED_GLOBAL_ACTIONS(302),
33     @UiEvent(doc = "screenshot requested from key chord")
34     SCREENSHOT_REQUESTED_KEY_CHORD(303),
35     @UiEvent(doc = "screenshot requested from other key press (e.g. ctrl-s)")
36     SCREENSHOT_REQUESTED_KEY_OTHER(384),
37     @UiEvent(doc = "screenshot requested from overview")
38     SCREENSHOT_REQUESTED_OVERVIEW(304),
39     @UiEvent(doc = "screenshot requested from accessibility actions")
40     SCREENSHOT_REQUESTED_ACCESSIBILITY_ACTIONS(382),
41     @UiEvent(doc = "screenshot requested from vendor gesture")
42     SCREENSHOT_REQUESTED_VENDOR_GESTURE(638),
43     @UiEvent(doc = "screenshot requested (other)")
44     SCREENSHOT_REQUESTED_OTHER(305),
45     @UiEvent(doc = "screenshot was saved")
46     SCREENSHOT_SAVED(306),
47     @UiEvent(doc = "screenshot failed to save")
48     SCREENSHOT_NOT_SAVED(336),
49     @UiEvent(doc = "screenshot preview tapped")
50     SCREENSHOT_PREVIEW_TAPPED(307),
51     @UiEvent(doc = "screenshot edit button tapped")
52     SCREENSHOT_EDIT_TAPPED(308),
53     @UiEvent(doc = "screenshot share button tapped")
54     SCREENSHOT_SHARE_TAPPED(309),
55     @UiEvent(doc = "screenshot smart action chip tapped")
56     SCREENSHOT_SMART_ACTION_TAPPED(374),
57     @UiEvent(doc = "screenshot scroll tapped")
58     SCREENSHOT_SCROLL_TAPPED(373),
59     @UiEvent(doc = "screenshot interaction timed out")
60     SCREENSHOT_INTERACTION_TIMEOUT(310),
61     @UiEvent(doc = "screenshot explicitly dismissed")
62     SCREENSHOT_EXPLICIT_DISMISSAL(311),
63     @UiEvent(doc = "screenshot swiped to dismiss")
64     SCREENSHOT_SWIPE_DISMISSED(656),
65     @UiEvent(doc = "screenshot reentered for new screenshot")
66     SCREENSHOT_REENTERED(640),
67     @UiEvent(doc = "Long screenshot button was shown to the user")
68     SCREENSHOT_LONG_SCREENSHOT_IMPRESSION(687),
69     @UiEvent(doc = "User has requested a long screenshot")
70     SCREENSHOT_LONG_SCREENSHOT_REQUESTED(688),
71     @UiEvent(doc = "User has shared a long screenshot")
72     SCREENSHOT_LONG_SCREENSHOT_SHARE(689),
73     @UiEvent(doc = "User has sent a long screenshot to the editor")
74     SCREENSHOT_LONG_SCREENSHOT_EDIT(690),
75     @UiEvent(doc = "A long screenshot capture has started")
76     SCREENSHOT_LONG_SCREENSHOT_STARTED(880),
77     @UiEvent(doc = "The long screenshot capture failed")
78     SCREENSHOT_LONG_SCREENSHOT_FAILURE(881),
79     @UiEvent(doc = "The long screenshot capture completed successfully")
80     SCREENSHOT_LONG_SCREENSHOT_COMPLETED(882),
81     @UiEvent(doc = "Long screenshot editor activity started")
82     SCREENSHOT_LONG_SCREENSHOT_ACTIVITY_STARTED(889),
83     @UiEvent(doc = "Long screenshot editor activity loaded a previously saved screenshot")
84     SCREENSHOT_LONG_SCREENSHOT_ACTIVITY_CACHED_IMAGE_LOADED(890),
85     @UiEvent(doc = "Long screenshot editor activity finished")
86     SCREENSHOT_LONG_SCREENSHOT_ACTIVITY_FINISHED(891);
87 
88     private final int mId;
89 
ScreenshotEvent(int id)90     ScreenshotEvent(int id) {
91         mId = id;
92     }
93 
94     @Override
getId()95     public int getId() {
96         return mId;
97     }
98 
getScreenshotSource(int source)99     static ScreenshotEvent getScreenshotSource(int source) {
100         switch (source) {
101             case SCREENSHOT_GLOBAL_ACTIONS:
102                 return ScreenshotEvent.SCREENSHOT_REQUESTED_GLOBAL_ACTIONS;
103             case SCREENSHOT_KEY_CHORD:
104                 return ScreenshotEvent.SCREENSHOT_REQUESTED_KEY_CHORD;
105             case SCREENSHOT_KEY_OTHER:
106                 return ScreenshotEvent.SCREENSHOT_REQUESTED_KEY_OTHER;
107             case SCREENSHOT_OVERVIEW:
108                 return ScreenshotEvent.SCREENSHOT_REQUESTED_OVERVIEW;
109             case SCREENSHOT_ACCESSIBILITY_ACTIONS:
110                 return ScreenshotEvent.SCREENSHOT_REQUESTED_ACCESSIBILITY_ACTIONS;
111             case SCREENSHOT_VENDOR_GESTURE:
112                 return ScreenshotEvent.SCREENSHOT_REQUESTED_VENDOR_GESTURE;
113             case SCREENSHOT_OTHER:
114             default:
115                 return ScreenshotEvent.SCREENSHOT_REQUESTED_OTHER;
116         }
117     }
118 }
119