summaryrefslogtreecommitdiffstats
path: root/java/com/android/incallui/incall/protocol/PrimaryInfo.java
blob: c1709501ddd18cb7e6a3110bfdebd4dca2cbabac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/*
 * 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);
  }
}