1/** 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import Calls from '../contract/Calls'; 17 18export default class CallLogBuilder { 19 readonly id: number = -1; 20 readonly phoneNumber: string; 21 displayName: string; 22 callDirection: number; 23 voicemailUri: string; 24 simId: number; 25 simType: number; 26 isHD: boolean; 27 isRead: boolean; 28 ringDuration: number; 29 talkDuration: number; 30 formattedNumber: string; 31 quickSearchKey: string; 32 numberType: number; 33 numberTypeName: string; 34 beginTime: number; 35 endTime: number; 36 answerState: number; 37 createTime: number; 38 numberLocation: string; 39 photoId: number; 40 photoUri: string; 41 countryIsoCode: number; 42 constructor(id: number, phoneNumber: string) { 43 this.id = id; 44 this.phoneNumber = phoneNumber; 45 } 46 47 static fromResultSet(resultSet: any): CallLogBuilder{ 48 let callLogBuilder = new CallLogBuilder(resultSet.getLong(resultSet.getColumnIndex(Calls.ID)), 49 resultSet.getString(resultSet.getColumnIndex(Calls.PHONE_NUMBER))); 50 callLogBuilder.setDisplayName(resultSet.getString(resultSet.getColumnIndex(Calls.DISPLAY_NAME))); 51 callLogBuilder.setCallDirection(resultSet.getLong(resultSet.getColumnIndex(Calls.CALL_DIRECTION))); 52 callLogBuilder.setDisplayName(resultSet.getString(resultSet.getColumnIndex(Calls.DISPLAY_NAME))); 53 callLogBuilder.setVoicemailUri(resultSet.getString(resultSet.getColumnIndex(Calls.VOICEMAIL_URI))); 54 callLogBuilder.setSimId(resultSet.getLong(resultSet.getColumnIndex(Calls.SIM_ID))); 55 callLogBuilder.setSimType(resultSet.getLong(resultSet.getColumnIndex(Calls.SIM_TYPE))); 56 callLogBuilder.setIsHD(resultSet.getLong(resultSet.getColumnIndex(Calls.IS_HD)) > 0 ? true : false); 57 callLogBuilder.setIsRead(resultSet.getLong(resultSet.getColumnIndex(Calls.IS_READ)) > 0 ? true : false); 58 callLogBuilder.setRingDuration(resultSet.getLong(resultSet.getColumnIndex(Calls.RING_DURATION))); 59 callLogBuilder.setTalkDuration(resultSet.getLong(resultSet.getColumnIndex(Calls.TALK_DURATION))); 60 callLogBuilder.setFormattedNumber(resultSet.getString(resultSet.getColumnIndex(Calls.FORMAT_NUMBER))); 61 callLogBuilder.setQuickSearchKey(resultSet.getString(resultSet.getColumnIndex(Calls.QUICK_SEARCH_KEY))); 62 callLogBuilder.setNumberType(resultSet.getLong(resultSet.getColumnIndex(Calls.NUMBER_TYPE))); 63 callLogBuilder.setNumberTypeName(resultSet.getString(resultSet.getColumnIndex(Calls.NUMBER_TYPE_NAME))); 64 callLogBuilder.setBeginTime(resultSet.getLong(resultSet.getColumnIndex(Calls.BEGIN_TIME))); 65 callLogBuilder.setEndTime(resultSet.getLong(resultSet.getColumnIndex(Calls.END_TIME))); 66 callLogBuilder.setAnswerState(resultSet.getLong(resultSet.getColumnIndex(Calls.ANSWER_STATE))); 67 callLogBuilder.setCreateTime(resultSet.getLong(resultSet.getColumnIndex(Calls.CREATE_TIME))); 68 callLogBuilder.setNumberLocation(resultSet.getString(resultSet.getColumnIndex(Calls.NUMBER_LOCATION))); 69 callLogBuilder.setPhotoUri(resultSet.getString(resultSet.getColumnIndex(Calls.PHOTO_URI))); 70 callLogBuilder.setPhotoId(resultSet.getLong(resultSet.getColumnIndex(Calls.PHOTO_ID))); 71 callLogBuilder.setCountryIsoCode(resultSet.getLong(resultSet.getColumnIndex(Calls.COUNTRY_ISO_CODE))); 72 return callLogBuilder; 73 } 74 75 setDisplayName(displayName: string) { 76 this.displayName = displayName; 77 return this; 78 } 79 80 setCallDirection(callDirection: number) { 81 this.callDirection = callDirection; 82 return this; 83 } 84 85 setVoicemailUri(voicemailUri: string) { 86 this.voicemailUri = voicemailUri; 87 return this; 88 } 89 90 setSimId(simId: number) { 91 this.simId = simId; 92 return this; 93 } 94 95 setSimType(simType: number) { 96 this.simType = simType; 97 return this; 98 } 99 100 setIsHD(isHD: boolean) { 101 this.isHD = isHD; 102 return this; 103 } 104 105 setIsRead(isRead: boolean) { 106 this.isRead = isRead; 107 return this; 108 } 109 110 setRingDuration(ringDuration: number) { 111 this.ringDuration = ringDuration; 112 return this; 113 } 114 115 setTalkDuration(talkDuration: number) { 116 this.talkDuration = talkDuration; 117 return this; 118 } 119 120 setFormattedNumber(formattedNumber: string) { 121 this.formattedNumber = formattedNumber; 122 return this; 123 } 124 125 setQuickSearchKey(quickSearchKey: string) { 126 this.quickSearchKey = quickSearchKey; 127 return this; 128 } 129 130 setNumberType(numberType: number) { 131 this.numberType = numberType; 132 return this; 133 } 134 135 setNumberTypeName(numberTypeName: string) { 136 this.numberTypeName = numberTypeName; 137 return this; 138 } 139 140 setBeginTime(beginTime: number) { 141 this.beginTime = beginTime; 142 return this; 143 } 144 145 setEndTime(endTime: number) { 146 this.endTime = endTime; 147 return this; 148 } 149 150 setAnswerState(answerState: number) { 151 this.answerState = answerState; 152 return this; 153 } 154 155 setCreateTime(createTime: number) { 156 this.createTime = createTime; 157 return this; 158 } 159 160 setNumberLocation(numberLocation: string) { 161 this.numberLocation = numberLocation; 162 return this; 163 } 164 165 setPhotoId(photoId: number) { 166 this.photoId = photoId; 167 return this; 168 } 169 170 setPhotoUri(photoUri: string) { 171 this.photoUri = photoUri; 172 return this; 173 } 174 175 setCountryIsoCode(countryIsoCode: number) { 176 this.countryIsoCode = countryIsoCode; 177 return this; 178 } 179}