• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 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.eventlib.events.deviceadminreceivers;
18 
19 import android.app.admin.DeviceAdminReceiver;
20 import android.content.Context;
21 import android.os.UserHandle;
22 
23 import androidx.annotation.CheckResult;
24 
25 import com.android.eventlib.Event;
26 import com.android.eventlib.EventLogger;
27 import com.android.eventlib.EventLogsQuery;
28 import com.android.queryable.info.DeviceAdminReceiverInfo;
29 import com.android.queryable.queries.DeviceAdminReceiverQuery;
30 import com.android.queryable.queries.DeviceAdminReceiverQueryHelper;
31 import com.android.queryable.queries.UserHandleQuery;
32 import com.android.queryable.queries.UserHandleQueryHelper;
33 import com.android.queryable.util.SerializableParcelWrapper;
34 
35 /**
36  * Event logged when
37  * {@link DeviceAdminReceiver#onTransferAffiliatedProfileOwnershipComplete(Context, UserHandle)}
38  * is called.
39  */
40 public final class DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent extends Event {
41 
42     private static final long serialVersionUID = 1;
43 
44     /** Begins a query for {@link DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent} events. */
queryPackage( String packageName)45     public static DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery queryPackage(
46             String packageName) {
47         return new DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery(packageName);
48     }
49 
50     /** {@link EventLogsQuery} for {@link DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent}. */
51     public static final class DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery
52             extends EventLogsQuery<DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent,
53             DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery> {
54 
55         private static final long serialVersionUID = 1;
56 
57         DeviceAdminReceiverQueryHelper<DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery> mDeviceAdminReceiver =
58                 new DeviceAdminReceiverQueryHelper<>(this);
59         UserHandleQueryHelper<DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery>
60                 mUser =
61                 new UserHandleQueryHelper<>(this);
62 
DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery(String packageName)63         private DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery(String packageName) {
64             super(DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent.class, packageName);
65         }
66 
67         /** Queries {@link DeviceAdminReceiver}. */
68         @CheckResult
whereDeviceAdminReceiver()69         public DeviceAdminReceiverQuery<DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery> whereDeviceAdminReceiver() {
70             return mDeviceAdminReceiver;
71         }
72 
73         /**
74          * Queries {@link UserHandle} passed into
75          * {@link DeviceAdminReceiver#onTransferAffiliatedProfileOwnershipComplete(Context, UserHandle)}.
76          */
77         @CheckResult
whereUser()78         public UserHandleQuery<DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventQuery> whereUser() {
79             return mUser;
80         }
81 
82         @Override
filter(DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent event)83         protected boolean filter(DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent event) {
84             if (!mDeviceAdminReceiver.matches(event.mDeviceAdminReceiver)) {
85                 return false;
86             }
87             if (!mUser.matches(event.mUser)) {
88                 return false;
89             }
90             return true;
91         }
92 
93         @Override
describeQuery(String fieldName)94         public String describeQuery(String fieldName) {
95             return toStringBuilder(
96                     DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent.class, this)
97                     .field("deviceAdminReceiver", mDeviceAdminReceiver)
98                     .field("user", mUser)
99                     .toString();
100         }
101     }
102 
103     /** Begins logging a {@link DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent}. */
logger( DeviceAdminReceiver deviceAdminReceiver, Context context, UserHandle user)104     public static DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventLogger logger(
105             DeviceAdminReceiver deviceAdminReceiver,
106             Context context, UserHandle user) {
107         return new DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventLogger(
108                 deviceAdminReceiver, context, user);
109     }
110 
111     /**
112      * {@link EventLogger} for
113      * {@link DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent}.
114      */
115     public static final class DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventLogger
116             extends EventLogger<DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent> {
DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventLogger( DeviceAdminReceiver deviceAdminReceiver, Context context, UserHandle user)117         private DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventLogger(
118                 DeviceAdminReceiver deviceAdminReceiver,
119                 Context context, UserHandle user) {
120             super(context, new DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent());
121             setUser(user);
122             setDeviceAdminReceiver(deviceAdminReceiver);
123         }
124 
125         /** Sets the {@link DeviceAdminReceiver} which received this event. */
setDeviceAdminReceiver( DeviceAdminReceiver deviceAdminReceiver)126         public DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventLogger setDeviceAdminReceiver(
127                 DeviceAdminReceiver deviceAdminReceiver) {
128             mEvent.mDeviceAdminReceiver = new DeviceAdminReceiverInfo(deviceAdminReceiver);
129             return this;
130         }
131 
132         /** Sets the {@link DeviceAdminReceiver} which received this event. */
setDeviceAdminReceiver( Class<? extends DeviceAdminReceiver> deviceAdminReceiverClass)133         public DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventLogger setDeviceAdminReceiver(
134                 Class<? extends DeviceAdminReceiver> deviceAdminReceiverClass) {
135             mEvent.mDeviceAdminReceiver = new DeviceAdminReceiverInfo(deviceAdminReceiverClass);
136             return this;
137         }
138 
139         /** Sets the {@link DeviceAdminReceiver} which received this event. */
setDeviceAdminReceiver( String deviceAdminReceiverClassName)140         public DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventLogger setDeviceAdminReceiver(
141                 String deviceAdminReceiverClassName) {
142             mEvent.mDeviceAdminReceiver = new DeviceAdminReceiverInfo(deviceAdminReceiverClassName);
143             return this;
144         }
145 
146         /** Sets the {@link UserHandle} which was received. */
setUser( UserHandle user)147         public DeviceAdminTransferAffiliatedProfileOwnershipCompleteEventLogger setUser(
148                 UserHandle user) {
149             mEvent.mUser = new SerializableParcelWrapper<>(user);
150             return this;
151         }
152     }
153 
154     protected DeviceAdminReceiverInfo mDeviceAdminReceiver;
155     protected SerializableParcelWrapper<UserHandle> mUser;
156 
157     /** Information about the {@link DeviceAdminReceiver} which received the intent. */
deviceAdminReceiver()158     public DeviceAdminReceiverInfo deviceAdminReceiver() {
159         return mDeviceAdminReceiver;
160     }
161 
162     /**
163      * The {@link UserHandle} passed into
164      * {@link DeviceAdminReceiver#onTransferAffiliatedProfileOwnershipComplete(Context, UserHandle)}
165      */
user()166     public UserHandle user() {
167         if (mUser == null) {
168             return null;
169         }
170         return mUser.get();
171     }
172 
173     @Override
toString()174     public String toString() {
175         return "DeviceAdminTransferAffiliatedProfileOwnershipCompleteEvent{"
176                 + ", user=" + user()
177                 + ", deviceAdminReceiver=" + mDeviceAdminReceiver
178                 + ", packageName='" + mPackageName + "'"
179                 + ", timestamp=" + mTimestamp
180                 + "}";
181     }
182 }
183