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;
307151cde3ca742d24ea97f163526519b83431c87eStuart Scottimport android.util.DisplayMetrics;
31fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
32fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville/**
33905bb54108d380555dbec1c9961a675740fe6e96Wink Saville * A Parcelable class for Subscription Information.
34fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville */
35a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Savillepublic class SubscriptionInfo implements Parcelable {
36fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
37905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
38da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott     * Size of text to render on the icon.
39da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott     */
407151cde3ca742d24ea97f163526519b83431c87eStuart Scott    private static final int TEXT_SIZE = 16;
41da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott
42da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott    /**
43905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * Subscription Identifier, this is a device unique number
44905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * and not an index into an array
45905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
4695fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mId;
4795fc99b33418f228aa0390032ad466814d33b164Stuart Scott
4895fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
4995fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * The GID for a SIM that maybe associated with this subscription, empty if unknown
5095fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
5195fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private String mIccId;
5295fc99b33418f228aa0390032ad466814d33b164Stuart Scott
53905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
5495fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * The index of the slot that currently contains the subscription
55905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * and not necessarily unique and maybe INVALID_SLOT_ID if unknown
56905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
5795fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mSimSlotIndex;
5895fc99b33418f228aa0390032ad466814d33b164Stuart Scott
59905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
6095fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * The name displayed to the user that identifies this subscription
61905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
6295fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private CharSequence mDisplayName;
6395fc99b33418f228aa0390032ad466814d33b164Stuart Scott
64905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
650590e4e5f1b3b2680cab6763212008ce4318e603Sanket Padawe     * String that identifies SPN/PLMN
660590e4e5f1b3b2680cab6763212008ce4318e603Sanket Padawe     * TODO : Add a new field that identifies only SPN for a sim
67e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     */
68e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    private CharSequence mCarrierName;
69e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe
70e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    /**
71905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * The source of the name, NAME_SOURCE_UNDEFINED, NAME_SOURCE_DEFAULT_SOURCE,
72905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * NAME_SOURCE_SIM_SOURCE or NAME_SOURCE_USER_INPUT.
73905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
7495fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mNameSource;
7595fc99b33418f228aa0390032ad466814d33b164Stuart Scott
76905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
77ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * The color to be used for tinting the icon when displaying to the user
78905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
79ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    private int mIconTint;
8095fc99b33418f228aa0390032ad466814d33b164Stuart Scott
81905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
82905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * A number presented to the user identify this subscription
83905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
8495fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private String mNumber;
8595fc99b33418f228aa0390032ad466814d33b164Stuart Scott
86905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
87905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * Data roaming state, DATA_RAOMING_ENABLE, DATA_RAOMING_DISABLE
88905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
8995fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mDataRoaming;
9095fc99b33418f228aa0390032ad466814d33b164Stuart Scott
91905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
92ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * SIM Icon bitmap
93905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
94ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    private Bitmap mIconBitmap;
9595fc99b33418f228aa0390032ad466814d33b164Stuart Scott
96905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
97905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * Mobile Country Code
98905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
9995fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mMcc;
10095fc99b33418f228aa0390032ad466814d33b164Stuart Scott
101905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    /**
102905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     * Mobile Network Code
103905bb54108d380555dbec1c9961a675740fe6e96Wink Saville     */
10495fc99b33418f228aa0390032ad466814d33b164Stuart Scott    private int mMnc;
105fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
10695fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
107d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville     * ISO Country code for the subscription's provider
108d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville     */
109d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville    private String mCountryIso;
110d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville
111d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville    /**
11295fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * @hide
11395fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
114a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville    public SubscriptionInfo(int id, String iccId, int simSlotIndex, CharSequence displayName,
115ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott            CharSequence carrierName, int nameSource, int iconTint, String number, int roaming,
116d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville            Bitmap icon, int mcc, int mnc, String countryIso) {
11795fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mId = id;
11895fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mIccId = iccId;
11995fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mSimSlotIndex = simSlotIndex;
12095fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mDisplayName = displayName;
121e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe        this.mCarrierName = carrierName;
12295fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mNameSource = nameSource;
123ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        this.mIconTint = iconTint;
12495fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mNumber = number;
12595fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mDataRoaming = roaming;
126ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        this.mIconBitmap = icon;
12795fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mMcc = mcc;
12895fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mMnc = mnc;
129d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville        this.mCountryIso = countryIso;
130fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    }
131fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
1323ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    /**
1334abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @return the subscription ID.
1343ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen     */
13595fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getSubscriptionId() {
13695fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mId;
1373ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    }
1383ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen
1393ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    /**
1404abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @return the ICC ID.
1413ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen     */
14295fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public String getIccId() {
14395fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mIccId;
14495fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
14595fc99b33418f228aa0390032ad466814d33b164Stuart Scott
14695fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
1474abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @return the slot index of this Subscription's SIM card.
14895fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
14995fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getSimSlotIndex() {
15095fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mSimSlotIndex;
15195fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
15295fc99b33418f228aa0390032ad466814d33b164Stuart Scott
15395fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
1544abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @return the name displayed to the user that identifies this subscription
15595fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
15695fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public CharSequence getDisplayName() {
15795fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mDisplayName;
15895fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
15995fc99b33418f228aa0390032ad466814d33b164Stuart Scott
16095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
16195fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Sets the name displayed to the user that identifies this subscription
16295fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * @hide
16395fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
16495fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public void setDisplayName(CharSequence name) {
16595fc99b33418f228aa0390032ad466814d33b164Stuart Scott        this.mDisplayName = name;
16695fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
16795fc99b33418f228aa0390032ad466814d33b164Stuart Scott
16895fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
1694abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @return the name displayed to the user that identifies Subscription provider name
170e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     */
171e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    public CharSequence getCarrierName() {
172e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe        return this.mCarrierName;
173e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    }
174e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe
175e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    /**
176e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     * Sets the name displayed to the user that identifies Subscription provider name
177e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     * @hide
178e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe     */
179e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    public void setCarrierName(CharSequence name) {
180e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe        this.mCarrierName = name;
181e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    }
182e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe
183e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe    /**
1844abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @return the source of the name, eg NAME_SOURCE_UNDEFINED, NAME_SOURCE_DEFAULT_SOURCE,
18595fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * NAME_SOURCE_SIM_SOURCE or NAME_SOURCE_USER_INPUT.
1864abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @hide
18795fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
18895fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getNameSource() {
18995fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mNameSource;
1903ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    }
1913ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen
1923ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    /**
193a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville     * Creates and returns an icon {@code Bitmap} to represent this {@code SubscriptionInfo} in a user
194ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * interface.
195ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     *
196ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * @param context A {@code Context} to get the {@code DisplayMetrics}s from.
197ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     *
198a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville     * @return A bitmap icon for this {@code SubscriptionInfo}.
1993ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen     */
200ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    public Bitmap createIconBitmap(Context context) {
201ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        int width = mIconBitmap.getWidth();
202ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        int height = mIconBitmap.getHeight();
2037151cde3ca742d24ea97f163526519b83431c87eStuart Scott        DisplayMetrics metrics = context.getResources().getDisplayMetrics();
204ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
205ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        // Create a new bitmap of the same size because it will be modified.
2067151cde3ca742d24ea97f163526519b83431c87eStuart Scott        Bitmap workingBitmap = Bitmap.createBitmap(metrics, width, height, mIconBitmap.getConfig());
207ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
208ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        Canvas canvas = new Canvas(workingBitmap);
209ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        Paint paint = new Paint();
210ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
211ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        // Tint the icon with the color.
212ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        paint.setColorFilter(new PorterDuffColorFilter(mIconTint, PorterDuff.Mode.SRC_ATOP));
213ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        canvas.drawBitmap(mIconBitmap, 0, 0, paint);
214ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        paint.setColorFilter(null);
215ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
216ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        // Write the sim slot index.
217da5be611d88c40bdb4299fa0d7fa446230035e0dStuart Scott        paint.setAntiAlias(true);
218ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        paint.setTypeface(Typeface.create("sans-serif", Typeface.NORMAL));
219ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        paint.setColor(Color.WHITE);
2207151cde3ca742d24ea97f163526519b83431c87eStuart Scott        // Set text size scaled by density
2217151cde3ca742d24ea97f163526519b83431c87eStuart Scott        paint.setTextSize(TEXT_SIZE * metrics.density);
2227151cde3ca742d24ea97f163526519b83431c87eStuart Scott        // Convert sim slot index to localized string
2237151cde3ca742d24ea97f163526519b83431c87eStuart Scott        final String index = String.format("%d", mSimSlotIndex + 1);
224ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        final Rect textBound = new Rect();
225ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        paint.getTextBounds(index, 0, 1, textBound);
226ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        final float xOffset = (width / 2.f) - textBound.centerX();
227ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        final float yOffset = (height / 2.f) - textBound.centerY();
228ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        canvas.drawText(index, xOffset, yOffset, paint);
229ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
230ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        return workingBitmap;
231ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    }
232ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott
233ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    /**
234ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * A highlight color to use in displaying information about this {@code PhoneAccount}.
235ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     *
236ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     * @return A hexadecimal color value.
237ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott     */
238ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    public int getIconTint() {
239ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        return mIconTint;
24095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
24195fc99b33418f228aa0390032ad466814d33b164Stuart Scott
24295fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
24395fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * Sets the color displayed to the user that identifies this subscription
24495fc99b33418f228aa0390032ad466814d33b164Stuart Scott     * @hide
24595fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
246ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott    public void setIconTint(int iconTint) {
247ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        this.mIconTint = iconTint;
24895fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
24995fc99b33418f228aa0390032ad466814d33b164Stuart Scott
25095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
2514abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @return the number of this subscription.
25295fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
25395fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public String getNumber() {
25495fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return mNumber;
25595fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
25695fc99b33418f228aa0390032ad466814d33b164Stuart Scott
25795fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
258400a3f6df20b92e639f20956301a36beb67b511bStuart Scott     * @return the data roaming state for this subscription, either
259400a3f6df20b92e639f20956301a36beb67b511bStuart Scott     * {@link SubscriptionManager#DATA_ROAMING_ENABLE} or {@link SubscriptionManager#DATA_ROAMING_DISABLE}.
26095fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
26195fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getDataRoaming() {
26295fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mDataRoaming;
26395fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
26495fc99b33418f228aa0390032ad466814d33b164Stuart Scott
26595fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
2664abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @return the MCC.
26795fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
26895fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getMcc() {
26995fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mMcc;
27095fc99b33418f228aa0390032ad466814d33b164Stuart Scott    }
27195fc99b33418f228aa0390032ad466814d33b164Stuart Scott
27295fc99b33418f228aa0390032ad466814d33b164Stuart Scott    /**
2734abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @return the MNC.
27495fc99b33418f228aa0390032ad466814d33b164Stuart Scott     */
27595fc99b33418f228aa0390032ad466814d33b164Stuart Scott    public int getMnc() {
27695fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return this.mMnc;
2773ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen    }
2783ace54b895c97f0e98e989667238be9c96c3b40cNancy Chen
279d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville    /**
2804abdd079498801edf6d144ba6d6965d4cb00e91eStuart Scott     * @return the ISO country code
281d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville     */
282d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville    public String getCountryIso() {
283d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville        return this.mCountryIso;
284d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville    }
285d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville
286a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville    public static final Parcelable.Creator<SubscriptionInfo> CREATOR = new Parcelable.Creator<SubscriptionInfo>() {
287905bb54108d380555dbec1c9961a675740fe6e96Wink Saville        @Override
288a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville        public SubscriptionInfo createFromParcel(Parcel source) {
28995fc99b33418f228aa0390032ad466814d33b164Stuart Scott            int id = source.readInt();
2907a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            String iccId = source.readString();
29195fc99b33418f228aa0390032ad466814d33b164Stuart Scott            int simSlotIndex = source.readInt();
2928b564c2af85c0f796a2396055c0c3e59a4249c7bStuart Scott            CharSequence displayName = source.readCharSequence();
293e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe            CharSequence carrierName = source.readCharSequence();
2947a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            int nameSource = source.readInt();
295ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott            int iconTint = source.readInt();
2967a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            String number = source.readString();
2977a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            int dataRoaming = source.readInt();
2987a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            int mcc = source.readInt();
2997a96207e2ba549843e9fcbbc7f2fde7ed96ada84Tom Taylor            int mnc = source.readInt();
300d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville            String countryIso = source.readString();
301ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott            Bitmap iconBitmap = Bitmap.CREATOR.createFromParcel(source);
302fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
303d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville            return new SubscriptionInfo(id, iccId, simSlotIndex, displayName, carrierName,
304d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville                    nameSource, iconTint, number, dataRoaming, iconBitmap, mcc, mnc, countryIso);
305fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville        }
306fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
307905bb54108d380555dbec1c9961a675740fe6e96Wink Saville        @Override
308a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville        public SubscriptionInfo[] newArray(int size) {
309a374c3d03b28f135cdfba2cadf6fe6f03ac010bdWink Saville            return new SubscriptionInfo[size];
310fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville        }
311fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    };
312fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
313905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    @Override
314fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    public void writeToParcel(Parcel dest, int flags) {
31595fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mId);
31695fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeString(mIccId);
31795fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mSimSlotIndex);
3188b564c2af85c0f796a2396055c0c3e59a4249c7bStuart Scott        dest.writeCharSequence(mDisplayName);
319e1013f964dc4eeb28521ed860005e1e21907b0ffSanket Padawe        dest.writeCharSequence(mCarrierName);
32095fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mNameSource);
321ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        dest.writeInt(mIconTint);
322bc6a9601d78ae0227d494a2684146dc9e32010d1Stuart Scott        dest.writeString(mNumber);
32395fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mDataRoaming);
32495fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mMcc);
32595fc99b33418f228aa0390032ad466814d33b164Stuart Scott        dest.writeInt(mMnc);
326d09c4cad65c708f2c4810d24295456708a2000d2Wink Saville        dest.writeString(mCountryIso);
327ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott        mIconBitmap.writeToParcel(dest, flags);
328fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    }
329fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
330905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    @Override
331fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    public int describeContents() {
332fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville        return 0;
333fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville    }
334fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville
335905bb54108d380555dbec1c9961a675740fe6e96Wink Saville    @Override
336eeacf9374748a5f7fc96a1beaf18c353d473d752Wink Saville    public String toString() {
33795fc99b33418f228aa0390032ad466814d33b164Stuart Scott        return "{id=" + mId + ", iccId=" + mIccId + " simSlotIndex=" + mSimSlotIndex
338ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott                + " displayName=" + mDisplayName + " carrierName=" + mCarrierName
33914d21344d21e379f6aeaa923cae7dc519efa16e3Sanket Padawe                + " nameSource=" + mNameSource + " iconTint=" + mIconTint
340ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott                + " dataRoaming=" + mDataRoaming + " iconBitmap=" + mIconBitmap + " mcc " + mMcc
341ab45ec177a787fee046f6a9c4d1098d529aff7bbStuart Scott                + " mnc " + mMnc + "}";
342eeacf9374748a5f7fc96a1beaf18c353d473d752Wink Saville    }
343fb40dd4d00bd3361b2535bc866e6c21eadc52558Wink Saville}
344