1ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh/*
2f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger * Copyright (C) 2018 The Android Open Source Project
3ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh *
4ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh * Licensed under the Apache License, Version 2.0 (the "License");
5ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh * you may not use this file except in compliance with the License.
6ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh * You may obtain a copy of the License at
7ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh *
8ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh *      http://www.apache.org/licenses/LICENSE-2.0
9ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh *
10ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh * Unless required by applicable law or agreed to in writing, software
11ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh * distributed under the License is distributed on an "AS IS" BASIS,
12ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh * See the License for the specific language governing permissions and
14f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger * limitations under the License
15ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh */
16ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
17ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
18f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebingerpackage android.telephony.ims;
19ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
20f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebingerimport android.annotation.SystemApi;
21ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganeshimport android.os.Parcel;
22ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganeshimport android.os.Parcelable;
23ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
24ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganeshimport java.util.Arrays;
25ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
26ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
27ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh/**
28ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh * Parcelable object to handle IMS supplementary service notifications.
29ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh *
30ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh * @hide
31ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh */
32f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger@SystemApi
33f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebingerpublic final class ImsSuppServiceNotification implements Parcelable {
34ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    private static final String TAG = "ImsSuppServiceNotification";
35ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
36ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    /** Type of notification: 0 = MO; 1 = MT */
37f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    public final int notificationType;
38ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    /** TS 27.007 7.17 "code1" or "code2" */
39f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    public final int code;
40ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    /** TS 27.007 7.17 "index" - Not used currently*/
41f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    public final int index;
42ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    /** TS 27.007 7.17 "type" (MT only) - Not used currently */
43f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    public final int type;
44ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    /** TS 27.007 7.17 "number" (MT only) */
45f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    public final String number;
46ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    /** List of forwarded numbers, if any */
47f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    public final String[] history;
48ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
4935d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger
5035d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger    public ImsSuppServiceNotification(int notificationType, int code, int index, int type,
5135d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger            String number, String[] history) {
5235d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger        this.notificationType = notificationType;
5335d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger        this.code = code;
5435d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger        this.index = index;
5535d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger        this.type = type;
5635d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger        this.number = number;
5735d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger        this.history = history;
5835d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger    }
5935d89ea6ac99f3be2ab37d38d1ae99bd9f0eef3aBrad Ebinger
60f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    /** @hide */
61ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    public ImsSuppServiceNotification(Parcel in) {
62f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger        notificationType = in.readInt();
63f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger        code = in.readInt();
64f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger        index = in.readInt();
65f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger        type = in.readInt();
66f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger        number = in.readString();
67f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger        history = in.createStringArray();
68ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    }
69ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
70ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    @Override
71ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    public String toString() {
72ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        return "{ notificationType=" + notificationType +
73ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh                ", code=" + code +
74ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh                ", index=" + index +
75ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh                ", type=" + type +
76ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh                ", number=" + number +
77ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh                ", history=" + Arrays.toString(history) +
78ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh                " }";
79ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    }
80ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
81ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    @Override
82ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    public int describeContents() {
83ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        return 0;
84ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    }
85ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
86ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    @Override
87ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    public void writeToParcel(Parcel out, int flags) {
88ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        out.writeInt(notificationType);
89ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        out.writeInt(code);
90ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        out.writeInt(index);
91ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        out.writeInt(type);
92ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        out.writeString(number);
93ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        out.writeStringArray(history);
94ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    }
95ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
96ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    public static final Creator<ImsSuppServiceNotification> CREATOR =
97ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh            new Creator<ImsSuppServiceNotification>() {
98ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        @Override
99ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        public ImsSuppServiceNotification createFromParcel(Parcel in) {
100ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh            return new ImsSuppServiceNotification(in);
101ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        }
102ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh
103ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        @Override
104ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        public ImsSuppServiceNotification[] newArray(int size) {
105ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh            return new ImsSuppServiceNotification[size];
106ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        }
107ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    };
108ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh}
109