1 /* 2 * Copyright 2018 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.bluetooth.hfp; 17 18 import java.util.Objects; 19 20 /** 21 * A blob of data representing an overall call state on the phone 22 */ 23 class HeadsetCallState extends HeadsetMessageObject { 24 /** 25 * Number of active calls 26 */ 27 int mNumActive; 28 /** 29 * Number of held calls 30 */ 31 int mNumHeld; 32 /** 33 * Current call setup state as defined in bthf_call_state_t of bt_hf.h or 34 * {@link com.android.server.telecom.BluetoothPhoneServiceImpl} or {@link HeadsetHalConstants} 35 */ 36 int mCallState; 37 /** 38 * Currently active call's phone number 39 */ 40 String mNumber; 41 /** 42 * Phone number type 43 */ 44 int mType; 45 /** 46 * Caller display name 47 */ 48 String mName; 49 HeadsetCallState(int numActive, int numHeld, int callState, String number, int type, String name)50 HeadsetCallState(int numActive, int numHeld, int callState, String number, int type, 51 String name) { 52 mNumActive = numActive; 53 mNumHeld = numHeld; 54 mCallState = callState; 55 mNumber = number; 56 mType = type; 57 mName = name; 58 } 59 60 @Override buildString(StringBuilder builder)61 public void buildString(StringBuilder builder) { 62 if (builder == null) { 63 return; 64 } 65 builder.append(this.getClass().getSimpleName()) 66 .append("[numActive=") 67 .append(mNumActive) 68 .append(", numHeld=") 69 .append(mNumHeld) 70 .append(", callState=") 71 .append(mCallState) 72 .append(", number="); 73 if (mNumber == null) { 74 builder.append("null"); 75 } else { 76 builder.append("***"); 77 } 78 builder.append(", type=").append(mType).append(", name="); 79 if (mName == null) { 80 builder.append("null"); 81 } else { 82 builder.append("***"); 83 } 84 builder.append("]"); 85 } 86 87 @Override equals(Object object)88 public boolean equals(Object object) { 89 if (this == object) { 90 return true; 91 } 92 if (!(object instanceof HeadsetCallState)) { 93 return false; 94 } 95 HeadsetCallState that = (HeadsetCallState) object; 96 return mNumActive == that.mNumActive && mNumHeld == that.mNumHeld 97 && mCallState == that.mCallState && Objects.equals(mNumber, that.mNumber) 98 && mType == that.mType && Objects.equals(mName, that.mName); 99 } 100 101 @Override hashCode()102 public int hashCode() { 103 return Objects.hash(mNumActive, mNumHeld, mCallState, mNumber, mType, mName); 104 } 105 } 106