From 3ace54b895c97f0e98e989667238be9c96c3b40c Mon Sep 17 00:00:00 2001 From: Nancy Chen Date: Wed, 22 Oct 2014 17:45:26 -0700 Subject: [PATCH] Add getter methods in SubInfoRecord for UI. Adapt PhoneAccount. Settings and Dialer need label, icon, and color for UI display of subscriptions/SIMs. Add getters for these methods in SubInfoRecord. Sets up for the following changes: + getIcon will return a drawable instead of a resource ID + getColor will return a color value instead of an index PhoneAccount will also be adding these changes which will be adopted from SubInfoRecord. Adds changes that were reverted from ag/563976. Bug: 17971273 Change-Id: Ie2beedf8475c6deb48a6ab83bc9656c1142cc004 --- api/current.txt | 3 +++ .../java/android/telecom/PhoneAccount.java | 27 +++++++++++++++++++ .../java/android/telephony/SubInfoRecord.java | 26 ++++++++++++++++++ 3 files changed, 56 insertions(+) diff --git a/api/current.txt b/api/current.txt index 305ae57913fc5..d66867b51ffe6 100644 --- a/api/current.txt +++ b/api/current.txt @@ -28486,6 +28486,9 @@ package android.telephony { ctor public SubInfoRecord(); ctor public SubInfoRecord(long, java.lang.String, int, java.lang.String, int, int, java.lang.String, int, int, int[], int, int); method public int describeContents(); + method public int getColor(); + method public android.graphics.drawable.BitmapDrawable getIconDrawable(); + method public java.lang.String getLabel(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; field public int color; diff --git a/telecomm/java/android/telecom/PhoneAccount.java b/telecomm/java/android/telecom/PhoneAccount.java index 1d6d8bcc11472..67b63288b4611 100644 --- a/telecomm/java/android/telecom/PhoneAccount.java +++ b/telecomm/java/android/telecom/PhoneAccount.java @@ -108,11 +108,17 @@ public class PhoneAccount implements Parcelable { */ public static final String SCHEME_SIP = "sip"; + /** + * Indicating no color is set. + */ + public static final int NO_COLOR = -1; + private final PhoneAccountHandle mAccountHandle; private final Uri mAddress; private final Uri mSubscriptionAddress; private final int mCapabilities; private final int mIconResId; + private final int mColor; private final CharSequence mLabel; private final CharSequence mShortDescription; private final List mSupportedUriSchemes; @@ -123,6 +129,7 @@ public class PhoneAccount implements Parcelable { private Uri mSubscriptionAddress; private int mCapabilities; private int mIconResId; + private int mColor = NO_COLOR; private CharSequence mLabel; private CharSequence mShortDescription; private List mSupportedUriSchemes = new ArrayList(); @@ -144,6 +151,7 @@ public class PhoneAccount implements Parcelable { mSubscriptionAddress = phoneAccount.getSubscriptionAddress(); mCapabilities = phoneAccount.getCapabilities(); mIconResId = phoneAccount.getIconResId(); + mColor = phoneAccount.getColor(); mLabel = phoneAccount.getLabel(); mShortDescription = phoneAccount.getShortDescription(); mSupportedUriSchemes.addAll(phoneAccount.getSupportedUriSchemes()); @@ -169,6 +177,11 @@ public class PhoneAccount implements Parcelable { return this; } + public Builder setColor(int value) { + this.mColor = value; + return this; + } + public Builder setShortDescription(CharSequence value) { this.mShortDescription = value; return this; @@ -222,6 +235,7 @@ public class PhoneAccount implements Parcelable { mSubscriptionAddress, mCapabilities, mIconResId, + mColor, mLabel, mShortDescription, mSupportedUriSchemes); @@ -234,6 +248,7 @@ public class PhoneAccount implements Parcelable { Uri subscriptionAddress, int capabilities, int iconResId, + int color, CharSequence label, CharSequence shortDescription, List supportedUriSchemes) { @@ -242,6 +257,7 @@ public class PhoneAccount implements Parcelable { mSubscriptionAddress = subscriptionAddress; mCapabilities = capabilities; mIconResId = iconResId; + mColor = color; mLabel = label; mShortDescription = shortDescription; mSupportedUriSchemes = Collections.unmodifiableList(supportedUriSchemes); @@ -370,6 +386,15 @@ public class PhoneAccount implements Parcelable { return mIconResId; } + /** + * A highlight color to use in displaying information about this {@code PhoneAccount}. + * + * @return A hexadecimal color value. + */ + public int getColor() { + return mColor; + } + /** * An icon to represent this {@code PhoneAccount} in a user interface. * @@ -413,6 +438,7 @@ public class PhoneAccount implements Parcelable { out.writeParcelable(mSubscriptionAddress, 0); out.writeInt(mCapabilities); out.writeInt(mIconResId); + out.writeInt(mColor); out.writeCharSequence(mLabel); out.writeCharSequence(mShortDescription); out.writeList(mSupportedUriSchemes); @@ -439,6 +465,7 @@ public class PhoneAccount implements Parcelable { mSubscriptionAddress = in.readParcelable(getClass().getClassLoader()); mCapabilities = in.readInt(); mIconResId = in.readInt(); + mColor = in.readInt(); mLabel = in.readCharSequence(); mShortDescription = in.readCharSequence(); diff --git a/telephony/java/android/telephony/SubInfoRecord.java b/telephony/java/android/telephony/SubInfoRecord.java index b9de8719a4cf9..f2df079da4fa7 100644 --- a/telephony/java/android/telephony/SubInfoRecord.java +++ b/telephony/java/android/telephony/SubInfoRecord.java @@ -16,6 +16,7 @@ package android.telephony; +import android.graphics.drawable.BitmapDrawable; import android.os.Parcel; import android.os.Parcelable; @@ -107,6 +108,31 @@ public class SubInfoRecord implements Parcelable { this.mnc = mnc; } + /** + * Returns the string displayed to the user that identifies this subscription + */ + public String getLabel() { + return this.displayName; + } + + /** + * Return the icon used to identify this SIM. + * TODO: return the correct drawable. + */ + public BitmapDrawable getIconDrawable() { + return new BitmapDrawable(); + } + + /** + * Return the color to be used for when displaying to the user. This is the value of the color. + * ex: 0x00ff00 + */ + public int getColor() { + // Note: This color is currently an index into a list of drawables, but this is soon to + // change. + return this.color; + } + public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { @Override public SubInfoRecord createFromParcel(Parcel source) {