1 /**
2  * Copyright (c) 2022, 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.app;
18 
19 import android.content.IIntentReceiver;
20 import android.content.Intent;
21 import android.content.pm.ActivityInfo;
22 import android.content.res.CompatibilityInfo;
23 import android.os.Bundle;
24 
25 /**
26  * Collect the information needed for manifest and registered receivers into a single structure
27  * that can be the element of a list.  All fields are already parcelable.
28  * @hide
29  */
30 parcelable ReceiverInfo {
31     /**
32      * Fields common to registered and manifest receivers.
33      */
34     Intent intent;
35     String data;
36     Bundle extras;
37     boolean assumeDelivered;
38     int sendingUser;
39     int processState;
40     int resultCode;
41     int sendingUid = -1;
42     String sendingPackage;
43 
44     /**
45      * True if this instance represents a registered receiver and false if this instance
46      * represents a manifest receiver.
47      */
48     boolean registered;
49 
50     /**
51      * Fields used only for registered receivers.
52      */
53     IIntentReceiver receiver;
54     boolean ordered;
55     boolean sticky;
56 
57     /**
58      * Fields used only for manifest receivers.
59      */
60     ActivityInfo activityInfo;
61     CompatibilityInfo compatInfo;
62     boolean sync;
63 }
64