1 /*
2  * Copyright (C) 2016 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.incallui.answer.protocol;
18 
19 import android.support.annotation.FloatRange;
20 import com.android.incallui.incalluilock.InCallUiLock;
21 
22 /** Callbacks implemented by the container app for this module. */
23 public interface AnswerScreenDelegate {
24 
onAnswerScreenUnready()25   void onAnswerScreenUnready();
26 
onRejectCallWithMessage(String message)27   void onRejectCallWithMessage(String message);
28 
onAnswer(boolean answerVideoAsAudio)29   void onAnswer(boolean answerVideoAsAudio);
30 
onReject()31   void onReject();
32 
onSpeakEasyCall()33   void onSpeakEasyCall();
34 
onAnswerAndReleaseCall()35   void onAnswerAndReleaseCall();
36 
onAnswerAndReleaseButtonEnabled()37   void onAnswerAndReleaseButtonEnabled();
38 
onAnswerAndReleaseButtonDisabled()39   void onAnswerAndReleaseButtonDisabled();
40   /**
41    * Sets the window background color based on foreground call's theme and the given progress. This
42    * is called from the answer UI to animate the accept and reject action.
43    *
44    * <p>When the user is rejecting we animate the background color to a mostly transparent gray. The
45    * end effect is that the home screen shows through.
46    *
47    * @param progress float from -1 to 1. -1 is fully rejected, 1 is fully accepted, and 0 is neutral
48    */
updateWindowBackgroundColor(@loatRangefrom = -1f, to = 1.0f) float progress)49   void updateWindowBackgroundColor(@FloatRange(from = -1f, to = 1.0f) float progress);
50 
51   /** Returns true if any answer/reject action timed out. */
isActionTimeout()52   boolean isActionTimeout();
53 
acquireInCallUiLock(String tag)54   InCallUiLock acquireInCallUiLock(String tag);
55 }
56