• 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.DelegatedAdminReceiver;
20 import android.content.Context;
21 import android.content.Intent;
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.DelegatedAdminReceiverInfo;
29 import com.android.queryable.queries.DelegatedAdminReceiverQuery;
30 import com.android.queryable.queries.DelegatedAdminReceiverQueryHelper;
31 import com.android.queryable.queries.IntegerQueryHelper;
32 import com.android.queryable.queries.IntentQueryHelper;
33 import com.android.queryable.queries.LongQueryHelper;
34 import com.android.queryable.util.SerializableParcelWrapper;
35 
36 /**
37  * Event logged when {@link DelegatedAdminReceiver#onNetworkLogsAvailable(Context, Intent, long,
38  * int)}
39  * is called.
40  */
41 public final class DelegatedAdminNetworkLogsAvailableEvent extends Event {
42 
43     private static final long serialVersionUID = 1;
44     protected SerializableParcelWrapper<Intent> mIntent;
45     protected DelegatedAdminReceiverInfo mDelegatedAdminReceiver;
46     protected long mBatchToken;
47     protected int mNetworkLogsCount;
48 
49     /** Begins a query for {@link DelegatedAdminNetworkLogsAvailableEvent} events. */
queryPackage(String packageName)50     public static DelegatedAdminNetworkLogsAvailableEventQuery queryPackage(String packageName) {
51         return new DelegatedAdminNetworkLogsAvailableEventQuery(packageName);
52     }
53 
54     /** Begins logging a {@link DelegatedAdminNetworkLogsAvailableEvent}. */
logger( DelegatedAdminReceiver delegatedAdminReceiver, Context context, Intent intent, long batchToken, int networkLogsCount)55     public static DelegatedAdminNetworkLogsAvailableEventLogger logger(
56             DelegatedAdminReceiver delegatedAdminReceiver, Context context, Intent intent,
57             long batchToken, int networkLogsCount) {
58         return new DelegatedAdminNetworkLogsAvailableEventLogger(
59                 delegatedAdminReceiver, context, intent, batchToken, networkLogsCount);
60     }
61 
62     /**
63      * The {@link Intent} passed into
64      * {@link DelegatedAdminReceiver#onNetworkLogsAvailable(Context, Intent, long, int)}.
65      */
intent()66     public Intent intent() {
67         if (mIntent == null) {
68             return null;
69         }
70         return mIntent.get();
71     }
72 
73     /** Information about the {@link DelegatedAdminReceiver} which received the intent. */
delegatedAdminReceiver()74     public DelegatedAdminReceiverInfo delegatedAdminReceiver() {
75         return mDelegatedAdminReceiver;
76     }
77 
78     /**
79      * The {@code batchToken} passed into
80      * {@link DelegatedAdminReceiver#onNetworkLogsAvailable(Context, Intent, long, int)}.
81      */
batchToken()82     public long batchToken() {
83         return mBatchToken;
84     }
85 
86     /**
87      * The {@code networkLogsCount} passed into
88      * {@link DelegatedAdminReceiver#onNetworkLogsAvailable(Context, Intent, long, int)}.
89      */
networkLogsCount()90     public int networkLogsCount() {
91         return mNetworkLogsCount;
92     }
93 
94     @Override
toString()95     public String toString() {
96         return "DelegatedAdminNetworkLogsAvailableEvent{"
97                 + " intent=" + intent()
98                 + ", batchToken=" + mBatchToken
99                 + ", networkLogsCount=" + mNetworkLogsCount
100                 + ", delegatedAdminReceiver=" + mDelegatedAdminReceiver
101                 + ", packageName='" + mPackageName + "'"
102                 + ", timestamp=" + mTimestamp
103                 + "}";
104     }
105 
106     /** {@link EventLogsQuery} for {@link DelegatedAdminNetworkLogsAvailableEvent}. */
107     public static final class DelegatedAdminNetworkLogsAvailableEventQuery
108             extends EventLogsQuery<DelegatedAdminNetworkLogsAvailableEvent,
109             DelegatedAdminNetworkLogsAvailableEventQuery> {
110 
111         private static final long serialVersionUID = 1;
112 
113         DelegatedAdminReceiverQueryHelper<DelegatedAdminNetworkLogsAvailableEventQuery>
114                 mDelegatedAdminReceiver =
115                 new DelegatedAdminReceiverQueryHelper<>(this);
116         IntentQueryHelper<DelegatedAdminNetworkLogsAvailableEventQuery> mIntent =
117                 new IntentQueryHelper<>(this);
118         LongQueryHelper<DelegatedAdminNetworkLogsAvailableEventQuery> mBatchToken =
119                 new LongQueryHelper<>(this);
120         IntegerQueryHelper<DelegatedAdminNetworkLogsAvailableEventQuery> mNetworkLogsCount =
121                 new IntegerQueryHelper<>(this);
122 
DelegatedAdminNetworkLogsAvailableEventQuery(String packageName)123         private DelegatedAdminNetworkLogsAvailableEventQuery(String packageName) {
124             super(DelegatedAdminNetworkLogsAvailableEvent.class, packageName);
125         }
126 
127         /**
128          * Queries {@link Intent} passed into
129          * {@link DelegatedAdminReceiver#onNetworkLogsAvailable(Context, Intent, long, int)}.
130          */
131         @CheckResult
whereIntent()132         public IntentQueryHelper<DelegatedAdminNetworkLogsAvailableEventQuery> whereIntent() {
133             return mIntent;
134         }
135 
136         /** Queries {@link DelegatedAdminReceiver}. */
137         @CheckResult
whereDelegatedAdminReceiver()138         public DelegatedAdminReceiverQuery<DelegatedAdminNetworkLogsAvailableEventQuery> whereDelegatedAdminReceiver() {
139             return mDelegatedAdminReceiver;
140         }
141 
142         /**
143          * Query {@code batchToken} passed into
144          * {@link DelegatedAdminReceiver#onNetworkLogsAvailable(Context, Intent, long, int)}.
145          */
146         @CheckResult
whereBatchToken()147         public LongQueryHelper<DelegatedAdminNetworkLogsAvailableEventQuery> whereBatchToken() {
148             return mBatchToken;
149         }
150 
151         /**
152          * Query {@code networkLogsCount} passed into
153          * {@link DelegatedAdminReceiver#onNetworkLogsAvailable(Context, Intent, long, int)}.
154          */
155         @CheckResult
whereNetworkLogsCount()156         public IntegerQueryHelper<DelegatedAdminNetworkLogsAvailableEventQuery> whereNetworkLogsCount() {
157             return mNetworkLogsCount;
158         }
159 
160         @Override
filter(DelegatedAdminNetworkLogsAvailableEvent event)161         protected boolean filter(DelegatedAdminNetworkLogsAvailableEvent event) {
162             if (!mIntent.matches(event.mIntent)) {
163                 return false;
164             }
165             if (!mDelegatedAdminReceiver.matches(event.mDelegatedAdminReceiver)) {
166                 return false;
167             }
168             if (!mBatchToken.matches(event.mBatchToken)) {
169                 return false;
170             }
171             return mNetworkLogsCount.matches(event.mNetworkLogsCount);
172         }
173 
174         @Override
describeQuery(String fieldName)175         public String describeQuery(String fieldName) {
176             return toStringBuilder(DelegatedAdminNetworkLogsAvailableEvent.class, this)
177                     .field("intent", mIntent)
178                     .field("delegatedAdminReceiver", mDelegatedAdminReceiver)
179                     .field("batchToken", mBatchToken)
180                     .field("networkLogsCount", mNetworkLogsCount)
181                     .toString();
182         }
183     }
184 
185     /** {@link EventLogger} for {@link DelegatedAdminNetworkLogsAvailableEvent}. */
186     public static final class DelegatedAdminNetworkLogsAvailableEventLogger
187             extends EventLogger<DelegatedAdminNetworkLogsAvailableEvent> {
DelegatedAdminNetworkLogsAvailableEventLogger( DelegatedAdminReceiver delegatedAdminReceiver, Context context, Intent intent, long batchToken, int networkLogsCount)188         private DelegatedAdminNetworkLogsAvailableEventLogger(
189                 DelegatedAdminReceiver delegatedAdminReceiver, Context context, Intent intent,
190                 long batchToken, int networkLogsCount) {
191             super(context, new DelegatedAdminNetworkLogsAvailableEvent());
192             mEvent.mIntent = new SerializableParcelWrapper<>(intent);
193             mEvent.mBatchToken = batchToken;
194             mEvent.mNetworkLogsCount = networkLogsCount;
195             setDelegatedAdminReceiver(delegatedAdminReceiver);
196         }
197 
198         /** Sets the {@link DelegatedAdminReceiver} which received this event. */
setDelegatedAdminReceiver( DelegatedAdminReceiver delegatedAdminReceiver)199         public DelegatedAdminNetworkLogsAvailableEventLogger setDelegatedAdminReceiver(
200                 DelegatedAdminReceiver delegatedAdminReceiver) {
201             mEvent.mDelegatedAdminReceiver = new DelegatedAdminReceiverInfo(delegatedAdminReceiver);
202             return this;
203         }
204 
205         /** Sets the {@link DelegatedAdminReceiver} which received this event. */
setDelegatedAdminReceiver( Class<? extends DelegatedAdminReceiver> delegatedAdminReceiverClass)206         public DelegatedAdminNetworkLogsAvailableEventLogger setDelegatedAdminReceiver(
207                 Class<? extends DelegatedAdminReceiver> delegatedAdminReceiverClass) {
208             mEvent.mDelegatedAdminReceiver = new DelegatedAdminReceiverInfo(
209                     delegatedAdminReceiverClass);
210             return this;
211         }
212 
213         /** Sets the {@link DelegatedAdminReceiver} which received this event. */
setDelegatedAdminReceiver( String delegatedAdminReceiverClassName)214         public DelegatedAdminNetworkLogsAvailableEventLogger setDelegatedAdminReceiver(
215                 String delegatedAdminReceiverClassName) {
216             mEvent.mDelegatedAdminReceiver = new DelegatedAdminReceiverInfo(
217                     delegatedAdminReceiverClassName);
218             return this;
219         }
220 
221         /** Sets the {@link Intent} which was received. */
setIntent(Intent intent)222         public DelegatedAdminNetworkLogsAvailableEventLogger setIntent(Intent intent) {
223             mEvent.mIntent = new SerializableParcelWrapper<>(intent);
224             return this;
225         }
226 
227         /** Sets the {@code batchToken} which was received. */
setBatchToken(long batchToken)228         public DelegatedAdminNetworkLogsAvailableEventLogger setBatchToken(long batchToken) {
229             mEvent.mBatchToken = batchToken;
230             return this;
231         }
232 
233         /** Sets the {@code networkLogsCount} which was received. */
setNetworkLogsCount( int networkLogsCount)234         public DelegatedAdminNetworkLogsAvailableEventLogger setNetworkLogsCount(
235                 int networkLogsCount) {
236             mEvent.mNetworkLogsCount = networkLogsCount;
237             return this;
238         }
239     }
240 }
241