| /* |
| * Copyright (C) 2016 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.android.incallui.incall.protocol; |
| |
| import android.graphics.drawable.Drawable; |
| import android.support.annotation.Nullable; |
| import com.android.dialer.common.LogUtil; |
| import com.android.dialer.multimedia.MultimediaData; |
| import java.util.Locale; |
| |
| /** Information about the primary call. */ |
| public class PrimaryInfo { |
| @Nullable public final String number; |
| @Nullable public final String name; |
| public final boolean nameIsNumber; |
| // This is from contacts and shows the type of number. For example, "Mobile". |
| @Nullable public final String label; |
| @Nullable public final String location; |
| @Nullable public final Drawable photo; |
| @ContactPhotoType public final int photoType; |
| public final boolean isSipCall; |
| public final boolean isContactPhotoShown; |
| public final boolean isWorkCall; |
| public final boolean isSpam; |
| public final boolean answeringDisconnectsOngoingCall; |
| public final boolean shouldShowLocation; |
| // Used for consistent LetterTile coloring. |
| @Nullable public final String contactInfoLookupKey; |
| @Nullable public final MultimediaData multimediaData; |
| public final int numberPresentation; |
| |
| // TODO: Convert to autovalue. b/34502119 |
| public static PrimaryInfo createEmptyPrimaryInfo() { |
| return new PrimaryInfo( |
| null, |
| null, |
| false, |
| null, |
| null, |
| null, |
| ContactPhotoType.DEFAULT_PLACEHOLDER, |
| false, |
| false, |
| false, |
| false, |
| false, |
| false, |
| null, |
| null, |
| -1); |
| } |
| |
| public PrimaryInfo( |
| @Nullable String number, |
| @Nullable String name, |
| boolean nameIsNumber, |
| @Nullable String location, |
| @Nullable String label, |
| @Nullable Drawable photo, |
| @ContactPhotoType int phototType, |
| boolean isSipCall, |
| boolean isContactPhotoShown, |
| boolean isWorkCall, |
| boolean isSpam, |
| boolean answeringDisconnectsOngoingCall, |
| boolean shouldShowLocation, |
| @Nullable String contactInfoLookupKey, |
| @Nullable MultimediaData multimediaData, |
| int numberPresentation) { |
| this.number = number; |
| this.name = name; |
| this.nameIsNumber = nameIsNumber; |
| this.location = location; |
| this.label = label; |
| this.photo = photo; |
| this.photoType = phototType; |
| this.isSipCall = isSipCall; |
| this.isContactPhotoShown = isContactPhotoShown; |
| this.isWorkCall = isWorkCall; |
| this.isSpam = isSpam; |
| this.answeringDisconnectsOngoingCall = answeringDisconnectsOngoingCall; |
| this.shouldShowLocation = shouldShowLocation; |
| this.contactInfoLookupKey = contactInfoLookupKey; |
| this.multimediaData = multimediaData; |
| this.numberPresentation = numberPresentation; |
| } |
| |
| @Override |
| public String toString() { |
| return String.format( |
| Locale.US, |
| "PrimaryInfo, number: %s, name: %s, location: %s, label: %s, " |
| + "photo: %s, photoType: %d, isPhotoVisible: %b", |
| LogUtil.sanitizePhoneNumber(number), |
| LogUtil.sanitizePii(name), |
| LogUtil.sanitizePii(location), |
| label, |
| photo, |
| photoType, |
| isContactPhotoShown); |
| } |
| } |