Merge "Refactor StatusHints (1/3)" into mnc-dev

This commit is contained in:
Ihab Awad
2015-05-13 23:26:04 +00:00
committed by Android (Google) Code Review
3 changed files with 46 additions and 43 deletions

View File

@@ -30453,13 +30453,11 @@ package android.telecom {
}
public final class StatusHints implements android.os.Parcelable {
ctor public StatusHints(android.content.ComponentName, java.lang.CharSequence, int, android.os.Bundle);
ctor public StatusHints(java.lang.CharSequence, android.graphics.drawable.Icon, android.os.Bundle);
method public int describeContents();
method public android.os.Bundle getExtras();
method public android.graphics.drawable.Drawable getIcon(android.content.Context);
method public int getIconResId();
method public android.graphics.drawable.Icon getIcon();
method public java.lang.CharSequence getLabel();
method public android.content.ComponentName getPackageName();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.telecom.StatusHints> CREATOR;
}

View File

@@ -32611,13 +32611,15 @@ package android.telecom {
}
public final class StatusHints implements android.os.Parcelable {
ctor public StatusHints(android.content.ComponentName, java.lang.CharSequence, int, android.os.Bundle);
ctor public deprecated StatusHints(android.content.ComponentName, java.lang.CharSequence, int, android.os.Bundle);
ctor public StatusHints(java.lang.CharSequence, android.graphics.drawable.Icon, android.os.Bundle);
method public int describeContents();
method public android.os.Bundle getExtras();
method public android.graphics.drawable.Drawable getIcon(android.content.Context);
method public int getIconResId();
method public deprecated android.graphics.drawable.Drawable getIcon(android.content.Context);
method public android.graphics.drawable.Icon getIcon();
method public deprecated int getIconResId();
method public java.lang.CharSequence getLabel();
method public android.content.ComponentName getPackageName();
method public deprecated android.content.ComponentName getPackageName();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.os.Parcelable.Creator<android.telecom.StatusHints> CREATOR;
}

View File

@@ -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);
}
}