SubscriptionInfo.java revision da5be611d88c40bdb4299fa0d7fa446230035e0d
1fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville/*
2905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * Copyright (C) 2014 The Android Open Source Project
3905bb54108d380555dbec1c9961a675740fe6e96Wink Saville *
4905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
5905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * you may not use this file except in compliance with the License.
6905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * You may obtain a copy of the License at
7905bb54108d380555dbec1c9961a675740fe6e96Wink Saville *
8905bb54108d380555dbec1c9961a675740fe6e96Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
9905bb54108d380555dbec1c9961a675740fe6e96Wink Saville *
10905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * Unless required by applicable law or agreed to in writing, software
11905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
12905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * See the License for the specific language governing permissions and
14905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * limitations under the License.
15905bb54108d380555dbec1c9961a675740fe6e96Wink Saville */
16fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
17fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savillepackage android.telephony;
18fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
19ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scottimport android.content.Context;
20ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scottimport android.graphics.Bitmap;
21ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scottimport android.graphics.Canvas;
22ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scottimport android.graphics.Color;
23ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scottimport android.graphics.Paint;
24ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scottimport android.graphics.PorterDuff;
25ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scottimport android.graphics.PorterDuffColorFilter;
26ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scottimport android.graphics.Rect;
27ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scottimport android.graphics.Typeface;
28fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.os.Parcel;
29fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Savilleimport android.os.Parcelable;
30fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
31fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville/**
32905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * A Parcelable class for Subscription Information.
33fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */
34a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Savillepublic class SubscriptionInfo implements Parcelable {
35fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
36905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
37da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott     * Size of text to render on the icon.
38da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott     */
39da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott    private static final int TEXT_SIZE = 22;
40da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott
41da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott    /**
42905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * Subscription Identifier, this is a device unique number
43905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * and not an index into an array
44905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
4595fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mId;
4695fc99b33418f228aa0390032ad466814d33b164Stuart Scott
4795fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
4895fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * The GID for a SIM that maybe associated with this subscription, empty if unknown
4995fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
5095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private String mIccId;
5195fc99b33418f228aa0390032ad466814d33b164Stuart Scott
52905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
5395fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * The index of the slot that currently contains the subscription
54905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * and not necessarily unique and maybe INVALID_SLOT_ID if unknown
55905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
5695fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mSimSlotIndex;
5795fc99b33418f228aa0390032ad466814d33b164Stuart Scott
58905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
5995fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * The name displayed to the user that identifies this subscription
60905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
6195fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private CharSequence mDisplayName;
6295fc99b33418f228aa0390032ad466814d33b164Stuart Scott
63905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
64e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     * The string displayed to the user that identifies Subscription Provider Name
65e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     */
66e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    private CharSequence mCarrierName;
67e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe
68e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    /**
69905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * The source of the name, NAME_SOURCE_UNDEFINED, NAME_SOURCE_DEFAULT_SOURCE,
70905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * NAME_SOURCE_SIM_SOURCE or NAME_SOURCE_USER_INPUT.
71905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
7295fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mNameSource;
7395fc99b33418f228aa0390032ad466814d33b164Stuart Scott
74905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
75ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * The color to be used for tinting the icon when displaying to the user
76905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
77ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    private int mIconTint;
7895fc99b33418f228aa0390032ad466814d33b164Stuart Scott
79905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
80905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * A number presented to the user identify this subscription
81905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
8295fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private String mNumber;
8395fc99b33418f228aa0390032ad466814d33b164Stuart Scott
84905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
85905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * Data roaming state, DATA_RAOMING_ENABLE, DATA_RAOMING_DISABLE
86905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
8795fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mDataRoaming;
8895fc99b33418f228aa0390032ad466814d33b164Stuart Scott
89905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
90ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * SIM Icon bitmap
91905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
92ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    private Bitmap mIconBitmap;
9395fc99b33418f228aa0390032ad466814d33b164Stuart Scott
94905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
95905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * Mobile Country Code
96905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
9795fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mMcc;
9895fc99b33418f228aa0390032ad466814d33b164Stuart Scott
99905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
100905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * Mobile Network Code
101905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
10295fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mMnc;
103fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
10495fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
10595fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * @hide
10695fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
107a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville    public SubscriptionInfo(int id, String iccId, int simSlotIndex, CharSequence displayName,
108ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott            CharSequence carrierName, int nameSource, int iconTint, String number, int roaming,
109ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott            Bitmap icon, int mcc, int mnc) {
11095fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mId = id;
11195fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mIccId = iccId;
11295fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mSimSlotIndex = simSlotIndex;
11395fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mDisplayName = displayName;
114e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe        this.mCarrierName = carrierName;
11595fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mNameSource = nameSource;
116ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        this.mIconTint = iconTint;
11795fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mNumber = number;
11895fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mDataRoaming = roaming;
119ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        this.mIconBitmap = icon;
12095fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mMcc = mcc;
12195fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mMnc = mnc;
122fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    }
123fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
1243ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    /**
12595fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Returns the subscription ID.
1263ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen     */
12795fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getSubscriptionId() {
12895fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mId;
1293ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    }
1303ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen
1313ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    /**
13295fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Returns the ICC ID.
1333ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen     */
13495fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public String getIccId() {
13595fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mIccId;
13695fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
13795fc99b33418f228aa0390032ad466814d33b164Stuart Scott
13895fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
13995fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Returns the slot index of this Subscription's SIM card.
14095fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
14195fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getSimSlotIndex() {
14295fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mSimSlotIndex;
14395fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
14495fc99b33418f228aa0390032ad466814d33b164Stuart Scott
14595fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
14695fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Returns the name displayed to the user that identifies this subscription
14795fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
14895fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public CharSequence getDisplayName() {
14995fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mDisplayName;
15095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
15195fc99b33418f228aa0390032ad466814d33b164Stuart Scott
15295fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
15395fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Sets the name displayed to the user that identifies this subscription
15495fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * @hide
15595fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
15695fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public void setDisplayName(CharSequence name) {
15795fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mDisplayName = name;
15895fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
15995fc99b33418f228aa0390032ad466814d33b164Stuart Scott
16095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
161e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     * Returns the name displayed to the user that identifies Subscription provider name
162e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     * @hide
163e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     */
164e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    public CharSequence getCarrierName() {
165e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe        return this.mCarrierName;
166e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    }
167e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe
168e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    /**
169e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     * Sets the name displayed to the user that identifies Subscription provider name
170e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     * @hide
171e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     */
172e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    public void setCarrierName(CharSequence name) {
173e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe        this.mCarrierName = name;
174e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    }
175e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe
176e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    /**
17795fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Return the source of the name, eg NAME_SOURCE_UNDEFINED, NAME_SOURCE_DEFAULT_SOURCE,
17895fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * NAME_SOURCE_SIM_SOURCE or NAME_SOURCE_USER_INPUT.
17995fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
18095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getNameSource() {
18195fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mNameSource;
1823ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    }
1833ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen
1843ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    /**
185a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville     * Creates and returns an icon {@code Bitmap} to represent this {@code SubscriptionInfo} in a user
186ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * interface.
187ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     *
188ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * @param context A {@code Context} to get the {@code DisplayMetrics}s from.
189ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     *
190a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville     * @return A bitmap icon for this {@code SubscriptionInfo}.
1913ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen     */
192ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    public Bitmap createIconBitmap(Context context) {
193ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        int width = mIconBitmap.getWidth();
194ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        int height = mIconBitmap.getHeight();
195ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
196ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        // Create a new bitmap of the same size because it will be modified.
197ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        Bitmap workingBitmap = Bitmap.createBitmap(context.getResources().getDisplayMetrics(),
198ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott                width, height, mIconBitmap.getConfig());
199ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
200ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        Canvas canvas = new Canvas(workingBitmap);
201ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        Paint paint = new Paint();
202ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
203ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        // Tint the icon with the color.
204ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        paint.setColorFilter(new PorterDuffColorFilter(mIconTint, PorterDuff.Mode.SRC_ATOP));
205ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        canvas.drawBitmap(mIconBitmap, 0, 0, paint);
206ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        paint.setColorFilter(null);
207ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
208ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        // Write the sim slot index.
209da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott        paint.setAntiAlias(true);
210ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        paint.setTypeface(Typeface.create("sans-serif", Typeface.NORMAL));
211ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        paint.setColor(Color.WHITE);
212da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott        paint.setTextSize(TEXT_SIZE);
213da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott        final String index = Integer.toString(mSimSlotIndex + 1);
214ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        final Rect textBound = new Rect();
215ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        paint.getTextBounds(index, 0, 1, textBound);
216ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        final float xOffset = (width / 2.f) - textBound.centerX();
217ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        final float yOffset = (height / 2.f) - textBound.centerY();
218ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        canvas.drawText(index, xOffset, yOffset, paint);
219ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
220ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        return workingBitmap;
221ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    }
222ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
223ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    /**
224ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * A highlight color to use in displaying information about this {@code PhoneAccount}.
225ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     *
226ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * @return A hexadecimal color value.
227ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     */
228ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    public int getIconTint() {
229ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        return mIconTint;
23095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
23195fc99b33418f228aa0390032ad466814d33b164Stuart Scott
23295fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
23395fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Sets the color displayed to the user that identifies this subscription
23495fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * @hide
23595fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
236ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    public void setIconTint(int iconTint) {
237ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        this.mIconTint = iconTint;
23895fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
23995fc99b33418f228aa0390032ad466814d33b164Stuart Scott
24095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
24195fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Returns the number of this subscription.
24295fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
24395fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public String getNumber() {
24495fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return mNumber;
24595fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
24695fc99b33418f228aa0390032ad466814d33b164Stuart Scott
24795fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
24895fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Return the data roaming value.
24995fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
25095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getDataRoaming() {
25195fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mDataRoaming;
25295fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
25395fc99b33418f228aa0390032ad466814d33b164Stuart Scott
25495fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
25595fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Returns the MCC.
25695fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
25795fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getMcc() {
25895fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mMcc;
25995fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
26095fc99b33418f228aa0390032ad466814d33b164Stuart Scott
26195fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
26295fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Returns the MNC.
26395fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
26495fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getMnc() {
26595fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mMnc;
2663ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    }
2673ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen
268a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville    public static final Parcelable.Creator<SubscriptionInfo> CREATOR = new Parcelable.Creator<SubscriptionInfo>() {
269905bb54108d380555dbec1c9961a675740fe6e96Wink Saville        @Override
270a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville        public SubscriptionInfo createFromParcel(Parcel source) {
27195fc99b33418f228aa0390032ad466814d33b164Stuart Scott            int id = source.readInt();
2727a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            String iccId = source.readString();
27395fc99b33418f228aa0390032ad466814d33b164Stuart Scott            int simSlotIndex = source.readInt();
2748b564c2af85c0f796a2396055c0c3e59a4249c7bStuart Scott            CharSequence displayName = source.readCharSequence();
275e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe            CharSequence carrierName = source.readCharSequence();
2767a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            int nameSource = source.readInt();
277ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott            int iconTint = source.readInt();
2787a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            String number = source.readString();
2797a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            int dataRoaming = source.readInt();
2807a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            int mcc = source.readInt();
2817a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            int mnc = source.readInt();
282ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott            Bitmap iconBitmap = Bitmap.CREATOR.createFromParcel(source);
283fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
284a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville            return new SubscriptionInfo(id, iccId, simSlotIndex, displayName, carrierName, nameSource,
285ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott                    iconTint, number, dataRoaming, iconBitmap, mcc, mnc);
286fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville        }
287fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
288905bb54108d380555dbec1c9961a675740fe6e96Wink Saville        @Override
289a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville        public SubscriptionInfo[] newArray(int size) {
290a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville            return new SubscriptionInfo[size];
291fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville        }
292fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    };
293fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
294905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    @Override
295fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    public void writeToParcel(Parcel dest, int flags) {
29695fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mId);
29795fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeString(mIccId);
29895fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mSimSlotIndex);
2998b564c2af85c0f796a2396055c0c3e59a4249c7bStuart Scott        dest.writeCharSequence(mDisplayName);
300e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe        dest.writeCharSequence(mCarrierName);
30195fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mNameSource);
302ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        dest.writeInt(mIconTint);
303bc6a9601d78ae0227d494a2684146dc9e32010d1Stuart Scott        dest.writeString(mNumber);
30495fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mDataRoaming);
30595fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mMcc);
30695fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mMnc);
307ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        mIconBitmap.writeToParcel(dest, flags);
308fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    }
309fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
310905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    @Override
311fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    public int describeContents() {
312fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville        return 0;
313fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    }
314fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
315905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    @Override
316eeacf9374748a5f7fc96a1beaf18c353d473d752Wink Saville    public String toString() {
31795fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return "{id=" + mId + ", iccId=" + mIccId + " simSlotIndex=" + mSimSlotIndex
318ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott                + " displayName=" + mDisplayName + " carrierName=" + mCarrierName
319ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott                + " nameSource=" + mNameSource + " iconTint=" + mIconTint + " number=" + mNumber
320ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott                + " dataRoaming=" + mDataRoaming + " iconBitmap=" + mIconBitmap + " mcc " + mMcc
321ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott                + " mnc " + mMnc + "}";
322eeacf9374748a5f7fc96a1beaf18c353d473d752Wink Saville    }
323fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville}
324