1 /*
2  * Copyright (C) 2020 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.server.telecom;
18 
19 public class RingerAttributes {
20     public static class Builder {
21         private boolean mEndEarly;
22         private boolean mLetDialerHandleRinging;
23         private boolean mAcquireAudioFocus;
24         private boolean mRingerAudible;
25         private String mInaudibleReason;
26         private boolean mShouldRingForContact;
27         private boolean mSilentRingingRequested;
28 
setEndEarly(boolean endEarly)29         public RingerAttributes.Builder setEndEarly(boolean endEarly) {
30             mEndEarly = endEarly;
31             return this;
32         }
33 
setLetDialerHandleRinging(boolean letDialerHandleRinging)34         public RingerAttributes.Builder setLetDialerHandleRinging(boolean letDialerHandleRinging) {
35             mLetDialerHandleRinging = letDialerHandleRinging;
36             return this;
37         }
38 
setAcquireAudioFocus(boolean acquireAudioFocus)39         public RingerAttributes.Builder setAcquireAudioFocus(boolean acquireAudioFocus) {
40             mAcquireAudioFocus = acquireAudioFocus;
41             return this;
42         }
43 
setRingerAudible(boolean ringerAudible)44         public RingerAttributes.Builder setRingerAudible(boolean ringerAudible) {
45             mRingerAudible = ringerAudible;
46             return this;
47         }
48 
setInaudibleReason(String inaudibleReason)49         public RingerAttributes.Builder setInaudibleReason(String inaudibleReason) {
50             mInaudibleReason = inaudibleReason;
51             return this;
52         }
53 
setShouldRingForContact(boolean shouldRingForContact)54         public RingerAttributes.Builder setShouldRingForContact(boolean shouldRingForContact) {
55             mShouldRingForContact = shouldRingForContact;
56             return this;
57         }
58 
setSilentRingingRequested(boolean silentRingingRequested)59         public RingerAttributes.Builder setSilentRingingRequested(boolean silentRingingRequested) {
60             mSilentRingingRequested = silentRingingRequested;
61             return this;
62         }
63 
build()64         public RingerAttributes build() {
65             return new RingerAttributes(mEndEarly, mLetDialerHandleRinging, mAcquireAudioFocus,
66                     mRingerAudible, mInaudibleReason, mShouldRingForContact,
67                     mSilentRingingRequested);
68         }
69     }
70 
71     private boolean mEndEarly;
72     private boolean mLetDialerHandleRinging;
73     private boolean mAcquireAudioFocus;
74     private boolean mRingerAudible;
75     private String mInaudibleReason;
76     private boolean mShouldRingForContact;
77     private boolean mSilentRingingRequested;
78 
RingerAttributes(boolean endEarly, boolean letDialerHandleRinging, boolean acquireAudioFocus, boolean ringerAudible, String inaudibleReason, boolean shouldRingForContact, boolean silentRingingRequested)79     private RingerAttributes(boolean endEarly, boolean letDialerHandleRinging,
80             boolean acquireAudioFocus, boolean ringerAudible, String inaudibleReason,
81             boolean shouldRingForContact, boolean silentRingingRequested) {
82         mEndEarly = endEarly;
83         mLetDialerHandleRinging = letDialerHandleRinging;
84         mAcquireAudioFocus = acquireAudioFocus;
85         mRingerAudible = ringerAudible;
86         mInaudibleReason = inaudibleReason;
87         mShouldRingForContact = shouldRingForContact;
88         mSilentRingingRequested = silentRingingRequested;
89     }
90 
isEndEarly()91     public boolean isEndEarly() {
92         return mEndEarly;
93     }
94 
letDialerHandleRinging()95     public boolean letDialerHandleRinging() {
96         return mLetDialerHandleRinging;
97     }
98 
shouldAcquireAudioFocus()99     public boolean shouldAcquireAudioFocus() {
100         return mAcquireAudioFocus;
101     }
102 
isRingerAudible()103     public boolean isRingerAudible() {
104         return mRingerAudible;
105     }
106 
getInaudibleReason()107     public String getInaudibleReason() {
108         return mInaudibleReason;
109     }
110 
shouldRingForContact()111     public boolean shouldRingForContact() {
112         return mShouldRingForContact;
113     }
114 
isSilentRingingRequested()115     public boolean isSilentRingingRequested() {
116         return mSilentRingingRequested;
117     }
118 }
119