1c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela/* 2c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Copyright (C) 2014 The Android Open Source Project 3c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 4c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Licensed under the Apache License, Version 2.0 (the "License"); 5c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * you may not use this file except in compliance with the License. 6c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * You may obtain a copy of the License at 7c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 8c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * http://www.apache.org/licenses/LICENSE-2.0 9c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 10c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Unless required by applicable law or agreed to in writing, software 11c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * distributed under the License is distributed on an "AS IS" BASIS, 12c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * See the License for the specific language governing permissions and 14c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * limitations under the License. 15c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 16c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 17c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelapackage android.telephony; 18c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 19c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelaimport android.os.Parcel; 20c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelaimport android.os.Parcelable; 21c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelaimport android.telephony.DisconnectCause; 22c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelaimport android.telephony.PreciseDisconnectCause; 23c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 24c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela/** 25c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Contains precise call state and call fail causes generated by the 26c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * framework and the RIL. 27c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 28c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * The following call information is included in returned PreciseCallState: 29c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 30c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <ul> 31c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <li>Ringing call state. 32c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <li>Foreground call state. 33c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <li>Background call state. 34c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <li>Disconnect cause; generated by the framework. 35c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * <li>Precise disconnect cause; generated by the RIL. 36c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * </ul> 37c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 38c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @hide 39c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 40c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuelapublic class PreciseCallState implements Parcelable { 41c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 42c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state is not valid (Not received a call state). */ 43c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_NOT_VALID = -1; 44c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: No activity. */ 45c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_IDLE = 0; 46c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Active. */ 47c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_ACTIVE = 1; 48c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: On hold. */ 49c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_HOLDING = 2; 50c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Dialing. */ 51c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_DIALING = 3; 52c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Alerting. */ 53c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_ALERTING = 4; 54c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Incoming. */ 55c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_INCOMING = 5; 56c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Waiting. */ 57c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_WAITING = 6; 58c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Disconnected. */ 59c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_DISCONNECTED = 7; 60c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** Call state: Disconnecting. */ 61c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final int PRECISE_CALL_STATE_DISCONNECTING = 8; 62c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 63c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private int mRingingCallState = PRECISE_CALL_STATE_NOT_VALID; 64c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private int mForegroundCallState = PRECISE_CALL_STATE_NOT_VALID; 65c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private int mBackgroundCallState = PRECISE_CALL_STATE_NOT_VALID; 66c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private int mDisconnectCause = DisconnectCause.NOT_VALID; 67c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private int mPreciseDisconnectCause = PreciseDisconnectCause.NOT_VALID; 68c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 69c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 70c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Constructor 71c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 72c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @hide 73c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 74c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public PreciseCallState(int ringingCall, int foregroundCall, int backgroundCall, 75c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela int disconnectCause, int preciseDisconnectCause) { 76c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mRingingCallState = ringingCall; 77c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mForegroundCallState = foregroundCall; 78c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mBackgroundCallState = backgroundCall; 79c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mDisconnectCause = disconnectCause; 80c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mPreciseDisconnectCause = preciseDisconnectCause; 81c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 82c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 83c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 84c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Empty Constructor 85c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 86c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @hide 87c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 88c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public PreciseCallState() { 89c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 90c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 91c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 92c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Construct a PreciseCallState object from the given parcel. 93c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 94c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela private PreciseCallState(Parcel in) { 95c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mRingingCallState = in.readInt(); 96c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mForegroundCallState = in.readInt(); 97c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mBackgroundCallState = in.readInt(); 98c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mDisconnectCause = in.readInt(); 99c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mPreciseDisconnectCause = in.readInt(); 100c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 101c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 102c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 103c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Get precise ringing call state 104c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 105c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_NOT_VALID 106c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_IDLE 107c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ACTIVE 108c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_HOLDING 109c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DIALING 110c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ALERTING 111c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_INCOMING 112c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_WAITING 113c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTED 114c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTING 115c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 116c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int getRingingCallState() { 117c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return mRingingCallState; 118c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 119c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 120c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 121c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Get precise foreground call state 122c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 123c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_NOT_VALID 124c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_IDLE 125c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ACTIVE 126c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_HOLDING 127c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DIALING 128c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ALERTING 129c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_INCOMING 130c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_WAITING 131c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTED 132c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTING 133c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 134c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int getForegroundCallState() { 135c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return mForegroundCallState; 136c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 137c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 138c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 139c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Get precise background call state 140c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 141c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_NOT_VALID 142c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_IDLE 143c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ACTIVE 144c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_HOLDING 145c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DIALING 146c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_ALERTING 147c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_INCOMING 148c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_WAITING 149c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTED 150c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseCallState#PRECISE_CALL_STATE_DISCONNECTING 151c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 152c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int getBackgroundCallState() { 153c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return mBackgroundCallState; 154c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 155c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 156c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 157c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Get disconnect cause generated by the framework 158c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 159c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#NOT_VALID 160c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#NOT_DISCONNECTED 161c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#INCOMING_MISSED 162c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#NORMAL 163c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#LOCAL 164c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#BUSY 165c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CONGESTION 166c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#MMI 167c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#INVALID_NUMBER 168c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#NUMBER_UNREACHABLE 169c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#SERVER_UNREACHABLE 170c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#INVALID_CREDENTIALS 171c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#OUT_OF_NETWORK 172c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#SERVER_ERROR 173c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#TIMED_OUT 174c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#LOST_SIGNAL 175c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#LIMIT_EXCEEDED 176c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#INCOMING_REJECTED 177c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#POWER_OFF 178c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#OUT_OF_SERVICE 179c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#ICC_ERROR 180c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CALL_BARRED 181c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#FDN_BLOCKED 182c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CS_RESTRICTED 183c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CS_RESTRICTED_NORMAL 184c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CS_RESTRICTED_EMERGENCY 185c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#UNOBTAINABLE_NUMBER 186c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_LOCKED_UNTIL_POWER_CYCLE 187c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_DROP 188c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_INTERCEPT 189c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_REORDER 190c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_SO_REJECT 191c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_RETRY_ORDER 192c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_ACCESS_FAILURE 193c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_PREEMPTED 194c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_NOT_EMERGENCY 195c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#CDMA_ACCESS_BLOCKED 196c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see DisconnectCause#ERROR_UNSPECIFIED 197c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 198c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int getDisconnectCause() { 199c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return mDisconnectCause; 200c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 201c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 202c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela /** 203c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * Get disconnect cause generated by the RIL 204c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * 205c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NOT_VALID 206c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NO_DISCONNECT_CAUSE_AVAILABLE 207c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#UNOBTAINABLE_NUMBER 208c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NORMAL 209c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#BUSY 210c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NUMBER_CHANGED 211c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#STATUS_ENQUIRY 212c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NORMAL_UNSPECIFIED 213c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#NO_CIRCUIT_AVAIL 214c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#TEMPORARY_FAILURE 215c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#SWITCHING_CONGESTION 216c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CHANNEL_NOT_AVAIL 217c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#QOS_NOT_AVAIL 218c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#BEARER_NOT_AVAIL 219c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#ACM_LIMIT_EXCEEDED 220c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CALL_BARRED 221c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#FDN_BLOCKED 222c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#IMSI_UNKNOWN_IN_VLR 223c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#IMEI_NOT_ACCEPTED 224c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_LOCKED_UNTIL_POWER_CYCLE 225c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_DROP 226c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_INTERCEPT 227c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_REORDER 228c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_SO_REJECT 229c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_RETRY_ORDER 230c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_ACCESS_FAILURE 231c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_PREEMPTED 232c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_NOT_EMERGENCY 233c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#CDMA_ACCESS_BLOCKED 234c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela * @see PreciseDisconnectCause#ERROR_UNSPECIFIED 235c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela */ 236c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int getPreciseDisconnectCause() { 237c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return mPreciseDisconnectCause; 238c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 239c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 240c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela @Override 241c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int describeContents() { 242c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return 0; 243c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 244c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 245c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela @Override 246c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public void writeToParcel(Parcel out, int flags) { 247c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela out.writeInt(mRingingCallState); 248c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela out.writeInt(mForegroundCallState); 249c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela out.writeInt(mBackgroundCallState); 250c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela out.writeInt(mDisconnectCause); 251c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela out.writeInt(mPreciseDisconnectCause); 252c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 253c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 254c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public static final Parcelable.Creator<PreciseCallState> CREATOR 255c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela = new Parcelable.Creator<PreciseCallState>() { 256c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 257c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public PreciseCallState createFromParcel(Parcel in) { 258c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return new PreciseCallState(in); 259c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 260c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 261c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public PreciseCallState[] newArray(int size) { 262c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return new PreciseCallState[size]; 263c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 264c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela }; 265c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 266c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela @Override 267c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public int hashCode() { 268c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela final int prime = 31; 269c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela int result = 1; 270c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela result = prime * result + mRingingCallState; 271c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela result = prime * result + mForegroundCallState; 272c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela result = prime * result + mBackgroundCallState; 273c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela result = prime * result + mDisconnectCause; 274c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela result = prime * result + mPreciseDisconnectCause; 275c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return result; 276c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 277c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 278c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela @Override 279c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public boolean equals(Object obj) { 280c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela if (this == obj) { 281c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return true; 282c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 283c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela if (obj == null) { 284c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return false; 285c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 286c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela if (getClass() != obj.getClass()) { 287c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return false; 288c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 289c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela PreciseCallState other = (PreciseCallState) obj; 290c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return (mRingingCallState != other.mRingingCallState && 291c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mForegroundCallState != other.mForegroundCallState && 292c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mBackgroundCallState != other.mBackgroundCallState && 293c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mDisconnectCause != other.mDisconnectCause && 294c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela mPreciseDisconnectCause != other.mPreciseDisconnectCause); 295c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 296c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 297c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela @Override 298c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela public String toString() { 299c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela StringBuffer sb = new StringBuffer(); 300c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 301c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela sb.append("Ringing call state: " + mRingingCallState); 302c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela sb.append(", Foreground call state: " + mForegroundCallState); 303c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela sb.append(", Background call state: " + mBackgroundCallState); 304c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela sb.append(", Disconnect cause: " + mDisconnectCause); 305c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela sb.append(", Precise disconnect cause: " + mPreciseDisconnectCause); 306c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela 307c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela return sb.toString(); 308c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela } 309c5ac15a3e11c03951e269b243674858411204b67Antonio Marín Cerezuela} 310