DisconnectCause.java revision 7f3d41fd124dd7c4a8b72c1d48df08a8ee7209ec
17f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee/* 27f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Copyright (C) 2014 The Android Open Source Project 37f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 47f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Licensed under the Apache License, Version 2.0 (the "License"); 57f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * you may not use this file except in compliance with the License. 67f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * You may obtain a copy of the License at 77f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 87f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * http://www.apache.org/licenses/LICENSE-2.0 97f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 107f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Unless required by applicable law or agreed to in writing, software 117f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * distributed under the License is distributed on an "AS IS" BASIS, 127f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * See the License for the specific language governing permissions and 147f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * limitations under the License. 157f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 167f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 177f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Leepackage android.telecom; 187f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 197f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Leeimport android.os.Parcel; 207f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Leeimport android.os.Parcelable; 217f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Leeimport android.media.ToneGenerator; 227f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Leeimport android.text.TextUtils; 237f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 247f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Leeimport java.util.Objects; 257f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 267f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee/** 277f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Describes the cause of a disconnected call. This always includes a code describing the generic 287f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * cause of the disconnect. Optionally, it may include a localized label and/or localized description 297f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * to display to the user which is provided by the {@link ConnectionService}. It also may contain a 307f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * reason for the the disconnect, which is intended for logging and not for display to the user. 317f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 327f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Leepublic final class DisconnectCause implements Parcelable { 337f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 347f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** Disconnected because of an unknown or unspecified reason. */ 357f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final int UNKNOWN = 0; 367f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** Disconnected because there was an error, such as a problem with the network. */ 377f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final int ERROR = 1; 387f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** Disconnected because of a local user-initiated action, such as hanging up. */ 397f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final int LOCAL = 2; 407f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** 417f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Disconnected because of a remote user-initiated action, such as the other party hanging up 427f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * up. 437f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 447f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final int REMOTE = 3; 457f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** Disconnected because it has been canceled. */ 467f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final int CANCELED = 4; 477f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** Disconnected because there was no response to an incoming call. */ 487f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final int MISSED = 5; 497f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** Disconnected because the user rejected an incoming call. */ 507f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final int REJECTED = 6; 517f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** Disconnected because the other party was busy. */ 527f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final int BUSY = 7; 537f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** 547f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Disconnected because of a restriction on placing the call, such as dialing in airplane 557f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * mode. 567f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 577f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final int RESTRICTED = 8; 587f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** Disconnected for reason not described by other disconnect codes. */ 597f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final int OTHER = 9; 607f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 617f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee private int mDisconnectCode; 627f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee private CharSequence mDisconnectLabel; 637f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee private CharSequence mDisconnectDescription; 647f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee private String mDisconnectReason; 657f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee private int mToneToPlay; 667f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 677f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** 687f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Creates a new DisconnectCause. 697f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 707f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @param code The code for the disconnect cause. 717f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 727f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public DisconnectCause(int code) { 737f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee this(code, null, null, null, ToneGenerator.TONE_UNKNOWN); 747f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 757f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 767f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** 777f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Creates a new DisconnectCause. 787f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 797f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @param code The code for the disconnect cause. 807f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @param reason The reason for the disconnect. 817f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 827f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public DisconnectCause(int code, String reason) { 837f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee this(code, null, null, reason, ToneGenerator.TONE_UNKNOWN); 847f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 857f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 867f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** 877f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Creates a new DisconnectCause. 887f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 897f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @param code The code for the disconnect cause. 907f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @param label The localized label to show to the user to explain the disconnect. 917f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @param description The localized description to show to the user to explain the disconnect. 927f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @param reason The reason for the disconnect. 937f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @param toneToPlay The tone to play on disconnect, as defined in {@link ToneGenerator}. 947f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 957f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public DisconnectCause(int code, CharSequence label, CharSequence description, String reason, 967f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee int toneToPlay) { 977f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee mDisconnectCode = code; 987f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee mDisconnectLabel = label; 997f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee mDisconnectDescription = description; 1007f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee mDisconnectReason = reason; 1017f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee mToneToPlay = toneToPlay; 1027f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1037f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1047f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** 1057f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Returns the code for the reason for this disconnect. 1067f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 1077f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @return The disconnect code. 1087f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 1097f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public int getCode() { 1107f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return mDisconnectCode; 1117f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1127f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1137f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** 1147f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Returns a short label which explains the reason for the disconnect cause and is for display 1157f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * in the user interface. The {@link ConnectionService } is responsible for providing and 1167f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * localizing this label. If there is no string provided, returns null. 1177f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 1187f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @return The disconnect label. 1197f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 1207f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public CharSequence getLabel() { 1217f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return mDisconnectLabel; 1227f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1237f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1247f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** 1257f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Returns a description which explains the reason for the disconnect cause and is for display 1267f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * in the user interface. The {@link ConnectionService } is responsible for providing and 1277f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * localizing this message. If there is no string provided, returns null. 1287f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 1297f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @return The disconnect description. 1307f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 1317f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public CharSequence getDescription() { 1327f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return mDisconnectDescription; 1337f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1347f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1357f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** 1367f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Returns an explanation of the reason for the disconnect. This is not intended for display to 1377f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * the user and is used mainly for logging. 1387f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 1397f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @return The disconnect reason. 1407f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 1417f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public String getReason() { 1427f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return mDisconnectReason; 1437f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1447f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1457f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee /** 1467f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * Returns the tone to play when disconnected. 1477f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * 1487f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee * @return the tone as defined in {@link ToneGenerator} to play when disconnected. 1497f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee */ 1507f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public int getTone() { 1517f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return mToneToPlay; 1527f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1537f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1547f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public static final Creator<DisconnectCause> CREATOR = new Creator<DisconnectCause>() { 1557f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee @Override 1567f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public DisconnectCause createFromParcel(Parcel source) { 1577f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee int code = source.readInt(); 1587f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee CharSequence label = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source); 1597f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee CharSequence description = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(source); 1607f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee String reason = source.readString(); 1617f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee int tone = source.readInt(); 1627f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return new DisconnectCause(code, label, description, reason, tone); 1637f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1647f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1657f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee @Override 1667f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public DisconnectCause[] newArray(int size) { 1677f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return new DisconnectCause[size]; 1687f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1697f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee }; 1707f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1717f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee @Override 1727f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public void writeToParcel(Parcel destination, int flags) { 1737f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee destination.writeInt(mDisconnectCode); 1747f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee TextUtils.writeToParcel(mDisconnectLabel, destination, flags); 1757f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee TextUtils.writeToParcel(mDisconnectDescription, destination, flags); 1767f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee destination.writeString(mDisconnectReason); 1777f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee destination.writeInt(mToneToPlay); 1787f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1797f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1807f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee @Override 1817f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public int describeContents() { 1827f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return 0; 1837f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1847f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1857f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee @Override 1867f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public int hashCode() { 1877f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return Objects.hashCode(mDisconnectCode) 1887f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee + Objects.hashCode(mDisconnectLabel) 1897f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee + Objects.hashCode(mDisconnectDescription) 1907f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee + Objects.hashCode(mDisconnectReason) 1917f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee + Objects.hashCode(mToneToPlay); 1927f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 1937f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 1947f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee @Override 1957f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public boolean equals(Object o) { 1967f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee if (o instanceof DisconnectCause) { 1977f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee DisconnectCause d = (DisconnectCause) o; 1987f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return Objects.equals(mDisconnectCode, d.getCode()) 1997f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee && Objects.equals(mDisconnectLabel, d.getLabel()) 2007f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee && Objects.equals(mDisconnectDescription, d.getDescription()) 2017f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee && Objects.equals(mDisconnectReason, d.getReason()) 2027f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee && Objects.equals(mToneToPlay, d.getTone()); 2037f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 2047f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return false; 2057f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 2067f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee 2077f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee @Override 2087f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee public String toString() { 2097f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee String code = ""; 2107f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee switch (getCode()) { 2117f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee case ERROR: 2127f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee code = "ERROR"; 2137f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee break; 2147f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee case LOCAL: 2157f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee code = "LOCAL"; 2167f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee break; 2177f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee case REMOTE: 2187f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee code = "REMOTE"; 2197f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee break; 2207f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee case MISSED: 2217f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee code = "MISSED"; 2227f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee break; 2237f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee case REJECTED: 2247f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee code = "REJECTED"; 2257f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee break; 2267f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee case BUSY: 2277f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee code = "BUSY"; 2287f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee break; 2297f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee case RESTRICTED: 2307f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee code = "RESTRICTED"; 2317f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee break; 2327f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee case OTHER: 2337f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee code = "OTHER"; 2347f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee break; 2357f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee case UNKNOWN: 2367f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee default: 2377f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee code = "UNKNOWN"; 2387f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 2397f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee String label = mDisconnectLabel == null ? "" : mDisconnectLabel.toString(); 2407f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee String description = mDisconnectDescription == null 2417f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee ? "" : mDisconnectDescription.toString(); 2427f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee String reason = mDisconnectReason == null ? "" : mDisconnectReason; 2437f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee return "DisconnectCause [ Code: (" + code + ")" 2447f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee + " Label: (" + label + ")" 2457f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee + " Description: (" + description + ")" 2467f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee + " Reason: (" + reason + ")" 2477f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee + " Tone: (" + mToneToPlay + ") ]"; 2487f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee } 2497f3d41fd124dd7c4a8b72c1d48df08a8ee7209ecAndrew Lee} 250