summaryrefslogtreecommitdiffstats
path: root/telecomm
diff options
context:
space:
mode:
authorIhab Awad <ihab@google.com>2015-05-13 11:34:53 -0700
committerIhab Awad <ihab@google.com>2015-05-13 16:16:11 -0700
commita7684ed63820fd5d486da7b0ae16cdbafa883dc1 (patch)
tree533eb2dd61bedd4e9a9c3aae7dc15d58a4963fc2 /telecomm
parent5e4027fe258f92d2d8b1d181cd959086aa84ac15 (diff)
downloadframeworks_base-a7684ed63820fd5d486da7b0ae16cdbafa883dc1.zip
frameworks_base-a7684ed63820fd5d486da7b0ae16cdbafa883dc1.tar.gz
frameworks_base-a7684ed63820fd5d486da7b0ae16cdbafa883dc1.tar.bz2
Refactor StatusHints (1/3)
Refactor StatusHints to use the new Icon class. Bug: 21040387 Change-Id: I3e7aae38127294b46859efb6a2aec71cf90e0e2a
Diffstat (limited to 'telecomm')
-rw-r--r--telecomm/java/android/telecom/StatusHints.java73
1 files changed, 38 insertions, 35 deletions
diff --git a/telecomm/java/android/telecom/StatusHints.java b/telecomm/java/android/telecom/StatusHints.java
index a32eae7..99c8d7f 100644
--- a/telecomm/java/android/telecom/StatusHints.java
+++ b/telecomm/java/android/telecom/StatusHints.java
@@ -16,15 +16,15 @@
package android.telecom;
+import android.annotation.SystemApi;
import android.content.ComponentName;
import android.content.Context;
-import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
+import android.graphics.drawable.Icon;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
-import java.util.MissingResourceException;
import java.util.Objects;
/**
@@ -32,24 +32,34 @@ import java.util.Objects;
*/
public final class StatusHints implements Parcelable {
- private final ComponentName mPackageName;
private final CharSequence mLabel;
- private final int mIconResId;
+ private final Icon mIcon;
private final Bundle mExtras;
+ /**
+ * @hide
+ */
+ @SystemApi @Deprecated
public StatusHints(ComponentName packageName, CharSequence label, int iconResId,
Bundle extras) {
- mPackageName = packageName;
+ this(label, Icon.createWithResource(packageName.getPackageName(), iconResId), extras);
+ }
+
+ public StatusHints(CharSequence label, Icon icon, Bundle extras) {
mLabel = label;
- mIconResId = iconResId;
+ mIcon = icon;
mExtras = extras;
}
/**
* @return A package used to load the icon.
+ *
+ * @hide
*/
+ @SystemApi @Deprecated
public ComponentName getPackageName() {
- return mPackageName;
+ // Minimal compatibility shim for legacy apps' tests
+ return new ComponentName("", "");
}
/**
@@ -63,16 +73,30 @@ public final class StatusHints implements Parcelable {
* The icon resource ID for the icon to show.
*
* @return A resource ID.
+ *
+ * @hide
*/
+ @SystemApi @Deprecated
public int getIconResId() {
- return mIconResId;
+ // Minimal compatibility shim for legacy apps' tests
+ return 0;
}
/**
* @return An icon displayed in the in-call UI.
+ *
+ * @hide
*/
+ @SystemApi @Deprecated
public Drawable getIcon(Context context) {
- return getIcon(context, mIconResId);
+ return mIcon.loadDrawable(context);
+ }
+
+ /**
+ * @return An icon depicting the status.
+ */
+ public Icon getIcon() {
+ return mIcon;
}
/**
@@ -89,9 +113,8 @@ public final class StatusHints implements Parcelable {
@Override
public void writeToParcel(Parcel out, int flags) {
- out.writeParcelable(mPackageName, flags);
out.writeCharSequence(mLabel);
- out.writeInt(mIconResId);
+ out.writeParcelable(mIcon, 0);
out.writeParcelable(mExtras, 0);
}
@@ -107,36 +130,17 @@ public final class StatusHints implements Parcelable {
};
private StatusHints(Parcel in) {
- mPackageName = in.readParcelable(getClass().getClassLoader());
mLabel = in.readCharSequence();
- mIconResId = in.readInt();
+ mIcon = in.readParcelable(getClass().getClassLoader());
mExtras = in.readParcelable(getClass().getClassLoader());
}
- private Drawable getIcon(Context context, int resId) {
- Context packageContext;
- try {
- packageContext = context.createPackageContext(mPackageName.getPackageName(), 0);
- } catch (PackageManager.NameNotFoundException e) {
- Log.e(this, e, "Cannot find package %s", mPackageName.getPackageName());
- return null;
- }
- try {
- return packageContext.getDrawable(resId);
- } catch (MissingResourceException e) {
- Log.e(this, e, "Cannot find icon %d in package %s",
- resId, mPackageName.getPackageName());
- return null;
- }
- }
-
@Override
public boolean equals(Object other) {
if (other != null && other instanceof StatusHints) {
StatusHints otherHints = (StatusHints) other;
- return Objects.equals(otherHints.getPackageName(), getPackageName()) &&
- Objects.equals(otherHints.getLabel(), getLabel()) &&
- otherHints.getIconResId() == getIconResId() &&
+ return Objects.equals(otherHints.getLabel(), getLabel()) &&
+ Objects.equals(otherHints.getIcon(), getIcon()) &&
Objects.equals(otherHints.getExtras(), getExtras());
}
return false;
@@ -144,7 +148,6 @@ public final class StatusHints implements Parcelable {
@Override
public int hashCode() {
- return Objects.hashCode(mPackageName) + Objects.hashCode(mLabel) + mIconResId +
- Objects.hashCode(mExtras);
+ return Objects.hashCode(mLabel) + Objects.hashCode(mIcon) + Objects.hashCode(mExtras);
}
}