From dcaa5d6d09150b24aacf677c8a57fc34b6b63157 Mon Sep 17 00:00:00 2001 From: Ihab Awad Date: Tue, 8 Jul 2014 10:33:46 -0700 Subject: [PATCH] Fix short description and name values for PhoneAccount. Change-Id: If8effee1d1dc0b40cf59dd69fb3141e9d3a202a6 --- .../java/android/telecomm/PhoneAccount.java | 82 +++++++------------ 1 file changed, 31 insertions(+), 51 deletions(-) diff --git a/telecomm/java/android/telecomm/PhoneAccount.java b/telecomm/java/android/telecomm/PhoneAccount.java index e972aee9f9657..fa7120d3ff285 100644 --- a/telecomm/java/android/telecomm/PhoneAccount.java +++ b/telecomm/java/android/telecomm/PhoneAccount.java @@ -28,6 +28,7 @@ import android.util.DisplayMetrics; import android.util.Log; import java.util.MissingResourceException; +import java.util.Objects; /** * Represents a distinct account, line of service or call placement method that @@ -42,9 +43,8 @@ public class PhoneAccount implements Parcelable { private final ComponentName mComponentName; private final String mId; private final Uri mHandle; - private final int mLabelResId; - private final int mShortDescriptionResId; - private final int mIconResId; + private final String mLabel; + private final String mShortDescription; private final boolean mIsEnabled; private final boolean mIsSystemDefault; @@ -59,9 +59,8 @@ public class PhoneAccount implements Parcelable { mComponentName = componentName; mId = id; mHandle = handle; - mLabelResId = 0; // labelResId; - mShortDescriptionResId = 0; // shortDescriptionResId; - mIconResId = 0; // iconResId; + mLabel = label; + mShortDescription = shortDescription; mIsSystemDefault = isSystemDefault; mIsEnabled = isEnabled; } @@ -103,10 +102,12 @@ public class PhoneAccount implements Parcelable { * * @param context The invoking {@code Context}, used for retrieving resources. * + * TODO(ihab): If don't need context, remove param + * * @return A label for this {@code PhoneAccount}. */ public String getLabel(Context context) { - return getString(context, mLabelResId); + return mLabel; } /** @@ -114,12 +115,19 @@ public class PhoneAccount implements Parcelable { * * @param context The invoking {@code Context}, used for retrieving resources. * + * TODO(ihab): If don't need context, remove param + * * @return A description for this {@code PhoneAccount}. */ public String getShortDescription(Context context) { - return getString(context, mShortDescriptionResId); + return mShortDescription; } + // TODO(ihab): Representation of the icons + // + // Refactor to pass a Bitmap (scale it at runtime), but if they don't pass one, fall + // back to the android:icon attr in the manifest ( first, second) + /** * An icon to represent this {@code PhoneAccount} in a user interface. * @@ -128,7 +136,7 @@ public class PhoneAccount implements Parcelable { * @return An icon for this {@code PhoneAccount}. */ public Drawable getIcon(Context context) { - return getIcon(context, mIconResId, NO_DENSITY); + return null; // TODO(ihab): See above } /** @@ -140,7 +148,7 @@ public class PhoneAccount implements Parcelable { * @return An icon for this {@code PhoneAccount}. */ public Drawable getIcon(Context context, int density) { - return getIcon(context, mIconResId, density); + return null; // TODO(ihab): See above } /** @@ -169,9 +177,8 @@ public class PhoneAccount implements Parcelable { out.writeParcelable(mComponentName, flags); out.writeString(mId); out.writeString(mHandle != null ? mHandle.toString() : ""); - out.writeInt(mLabelResId); - out.writeInt(mShortDescriptionResId); - out.writeInt(mIconResId); + out.writeString(mLabel); + out.writeString(mShortDescription); out.writeInt(mIsEnabled ? 1 : 0); out.writeInt(mIsSystemDefault ? 1 : 0); } @@ -192,49 +199,22 @@ public class PhoneAccount implements Parcelable { mId = in.readString(); String uriString = in.readString(); mHandle = uriString.length() > 0 ? Uri.parse(uriString) : null; - mLabelResId = in.readInt(); - mShortDescriptionResId = in.readInt(); - mIconResId = in.readInt(); + mLabel = in.readString(); + mShortDescription = in.readString(); mIsEnabled = in.readInt() == 1; mIsSystemDefault = in.readInt() == 1; } - private String getString(Context context, int resId) { - Context packageContext; - try { - packageContext = context.createPackageContext(mComponentName.getPackageName(), 0); - } catch (PackageManager.NameNotFoundException e) { - if (Rlog.isLoggable(LOG_TAG, Log.WARN)) { - Rlog.w(LOG_TAG, "Cannot find package " + mComponentName.getPackageName()); - } - return null; - } - String result = packageContext.getString(resId); - if (result == null && Rlog.isLoggable(LOG_TAG, Log.WARN)) { - Rlog.w(LOG_TAG, "Cannot find string " + resId + " in package " + - mComponentName.getPackageName()); - } - return result; + @Override + public boolean equals(Object other) { + return + other instanceof PhoneAccount && + Objects.equals(mComponentName, ((PhoneAccount) other).mComponentName) && + Objects.equals(mId, ((PhoneAccount) other).mId); } - private Drawable getIcon(Context context, int resId, int density) { - Context packageContext; - try { - packageContext = context.createPackageContext(mComponentName.getPackageName(), 0); - } catch (PackageManager.NameNotFoundException e) { - if (Rlog.isLoggable(LOG_TAG, Log.WARN)) { - Rlog.w(LOG_TAG, "Cannot find package " + mComponentName.getPackageName()); - } - return null; - } - try { - return density == NO_DENSITY ? - packageContext.getResources().getDrawable(resId) : - packageContext.getResources().getDrawableForDensity(resId, density); - } catch (MissingResourceException e) { - Rlog.e(LOG_TAG, "Cannot find icon " + resId + " in package " + - mComponentName.getPackageName() + ": " + e.toString()); - return null; - } + @Override + public int hashCode() { + return Objects.hashCode(mComponentName) + Objects.hashCode(mId); } }