1f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville/*
2f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger * Copyright (C) 2018 The Android Open Source Project
3f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville *
4f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
5f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * you may not use this file except in compliance with the License.
6f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * You may obtain a copy of the License at
7f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville *
8f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
9f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville *
10f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Unless required by applicable law or agreed to in writing, software
11f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
12f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * See the License for the specific language governing permissions and
14f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger * limitations under the License
15f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */
16f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
17f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebingerpackage android.telephony.ims;
18f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
19f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebingerimport android.annotation.SystemApi;
20f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport android.os.Parcel;
21f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport android.os.Parcelable;
22f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
23f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville/**
24f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Provides the result to the update operation for the supplementary service configuration.
25f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville *
26f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @hide
27f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */
28f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger@SystemApi
29f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebingerpublic final class ImsSsInfo implements Parcelable {
30f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
31f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * For the status of service registration or activation/deactivation.
32f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
33f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int NOT_REGISTERED = (-1);
34f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int DISABLED = 0;
35f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int ENABLED = 1;
36f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
37f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 0: disabled, 1: enabled
38f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    /** @hide */
3937121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger    // TODO: Make private, do not modify this field directly, use getter!
40f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public int mStatus;
41f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    /** @hide */
4237121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger    // TODO: Make private, do not modify this field directly, use getter!
43ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh    public String mIcbNum;
44f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
4537121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger    /**@hide*/
4637121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger    // TODO: Remove! Do not use this constructor, instead use public version.
47f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public ImsSsInfo() {
48f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
49f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
5037121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger    /**
5137121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     *
5237121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     * @param status The status of the service registration of activation/deactiviation. Valid
5337121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     *    entries include:
5437121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     *    {@link #NOT_REGISTERED},
5537121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     *    {@link #DISABLED},
5637121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     *    {@link #ENABLED}
5737121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     * @param icbNum The Incoming barring number.
5837121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     */
5937121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger    public ImsSsInfo(int status, String icbNum) {
6037121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger        mStatus = status;
6137121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger        mIcbNum = icbNum;
6237121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger    }
6337121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger
64f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    private ImsSsInfo(Parcel in) {
65f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        readFromParcel(in);
66f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
67f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
68f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    @Override
69f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public int describeContents() {
70f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        return 0;
71f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
72f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
73f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    @Override
74f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public void writeToParcel(Parcel out, int flags) {
75f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        out.writeInt(mStatus);
76ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        out.writeString(mIcbNum);
77f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
78f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
79f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    @Override
80f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public String toString() {
81f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        return super.toString() + ", Status: " + ((mStatus == 0) ? "disabled" : "enabled");
82f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
83f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
84f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    private void readFromParcel(Parcel in) {
85f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mStatus = in.readInt();
86ddf570e8226bd21448b44b3327d4bcb2608f4d00Shriram Ganesh        mIcbNum = in.readString();
87f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
88f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
89f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final Creator<ImsSsInfo> CREATOR =
90f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville            new Creator<ImsSsInfo>() {
91f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        @Override
92f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        public ImsSsInfo createFromParcel(Parcel in) {
93f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville            return new ImsSsInfo(in);
94f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        }
95f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
96f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        @Override
97f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        public ImsSsInfo[] newArray(int size) {
98f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville            return new ImsSsInfo[size];
99f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        }
100f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    };
101f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger
10237121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger    /**
10337121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     * @return Supplementary Service Configuration status. Valid Values are:
10437121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     *     {@link #NOT_REGISTERED},
10537121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     *     {@link #DISABLED},
10637121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     *     {@link #ENABLED}
10737121d467c3e2fe56dc30cc2a6f6a37231791d7aBrad Ebinger     */
108f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    public int getStatus() {
109f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger        return mStatus;
110f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    }
111f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger
112f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    public String getIcbNum() {
113f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger        return mIcbNum;
114f8c3cd8b3530a27f7534c32bac84c464ad5f66aeBrad Ebinger    }
115f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville}
116