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