• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2017 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 
17 package com.android.dialer.voicemail.model;
18 
19 import android.support.annotation.NonNull;
20 import android.support.annotation.Nullable;
21 import com.android.dialer.DialerPhoneNumber;
22 import com.android.dialer.NumberAttributes;
23 import com.android.dialer.compat.android.provider.VoicemailCompat;
24 import com.google.auto.value.AutoValue;
25 
26 /** Data class containing the contents of a voicemail entry from the AnnotatedCallLog. */
27 @AutoValue
28 public abstract class VoicemailEntry {
29 
builder()30   public static Builder builder() {
31     return new AutoValue_VoicemailEntry.Builder()
32         .setId(0)
33         .setTimestamp(0)
34         .setNumber(DialerPhoneNumber.getDefaultInstance())
35         .setNumberAttributes(NumberAttributes.getDefaultInstance())
36         .setDuration(0)
37         .setCallType(0)
38         .setIsRead(0)
39         .setTranscriptionState(VoicemailCompat.TRANSCRIPTION_NOT_STARTED);
40   }
41 
id()42   public abstract int id();
43 
timestamp()44   public abstract long timestamp();
45 
46   @NonNull
number()47   public abstract DialerPhoneNumber number();
48 
49   @Nullable
formattedNumber()50   public abstract String formattedNumber();
51 
52   @Nullable
geocodedLocation()53   public abstract String geocodedLocation();
54 
duration()55   public abstract long duration();
56 
57   @Nullable
transcription()58   public abstract String transcription();
59 
60   @Nullable
voicemailUri()61   public abstract String voicemailUri();
62 
callType()63   public abstract int callType();
64 
isRead()65   public abstract int isRead();
66 
numberAttributes()67   public abstract NumberAttributes numberAttributes();
68 
transcriptionState()69   public abstract int transcriptionState();
70 
71   @Nullable
phoneAccountComponentName()72   public abstract String phoneAccountComponentName();
73 
74   @Nullable
phoneAccountId()75   public abstract String phoneAccountId();
76 
77   /** Builder for {@link VoicemailEntry}. */
78   @AutoValue.Builder
79   public abstract static class Builder {
80 
setId(int id)81     public abstract Builder setId(int id);
82 
setTimestamp(long timestamp)83     public abstract Builder setTimestamp(long timestamp);
84 
setNumber(@onNull DialerPhoneNumber number)85     public abstract Builder setNumber(@NonNull DialerPhoneNumber number);
86 
setFormattedNumber(@ullable String formattedNumber)87     public abstract Builder setFormattedNumber(@Nullable String formattedNumber);
88 
setDuration(long duration)89     public abstract Builder setDuration(long duration);
90 
setTranscription(@ullable String transcription)91     public abstract Builder setTranscription(@Nullable String transcription);
92 
setVoicemailUri(@ullable String voicemailUri)93     public abstract Builder setVoicemailUri(@Nullable String voicemailUri);
94 
setGeocodedLocation(@ullable String geocodedLocation)95     public abstract Builder setGeocodedLocation(@Nullable String geocodedLocation);
96 
setCallType(int callType)97     public abstract Builder setCallType(int callType);
98 
setIsRead(int isRead)99     public abstract Builder setIsRead(int isRead);
100 
setNumberAttributes(NumberAttributes numberAttributes)101     public abstract Builder setNumberAttributes(NumberAttributes numberAttributes);
102 
setTranscriptionState(int transcriptionState)103     public abstract Builder setTranscriptionState(int transcriptionState);
104 
setPhoneAccountComponentName( @ullable String phoneAccountComponentName)105     public abstract Builder setPhoneAccountComponentName(
106         @Nullable String phoneAccountComponentName);
107 
setPhoneAccountId(@ullable String phoneAccountId)108     public abstract Builder setPhoneAccountId(@Nullable String phoneAccountId);
109 
build()110     public abstract VoicemailEntry build();
111   }
112 }
113