1ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian/*
2ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Copyright (C) 2016 The Android Open Source Project
3ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian *
4ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Licensed under the Apache License, Version 2.0 (the "License");
5ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * you may not use this file except in compliance with the License.
6ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * You may obtain a copy of the License at
7ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian *
8ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian *      http://www.apache.org/licenses/LICENSE-2.0
9ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian *
10ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * Unless required by applicable law or agreed to in writing, software
11ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * distributed under the License is distributed on an "AS IS" BASIS,
12ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * See the License for the specific language governing permissions and
14ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian * limitations under the License
15ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian */
16ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
17ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianpackage com.android.incallui.incall.protocol;
18ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
19ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.content.Context;
20ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.os.Bundle;
21ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianimport android.telecom.CallAudioState;
22ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
23ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian/** Callbacks from the module out to the container. */
24ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanianpublic interface InCallButtonUiDelegate {
25ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
26ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void onInCallButtonUiReady(InCallButtonUi inCallButtonUi);
27ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
28ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void onInCallButtonUiUnready();
29ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
30ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void onSaveInstanceState(Bundle outState);
31ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
32ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void onRestoreInstanceState(Bundle savedInstanceState);
33ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
34ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void refreshMuteState();
35ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
36ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void addCallClicked();
37ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
389a090c89e7a0c43a668bd6e2ac5e5e680f323aedEric Erfanian  void muteClicked(boolean checked, boolean clickedByUser);
39ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
40ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void mergeClicked();
41ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
42ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void holdClicked(boolean checked);
43ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
44ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void swapClicked();
45ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
46ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void showDialpadClicked(boolean checked);
47ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
48ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void changeToVideoClicked();
49ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
50ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void switchCameraClicked(boolean useFrontFacingCamera);
51ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
52ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void toggleCameraClicked();
53ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
54ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void pauseVideoClicked(boolean pause);
55ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
56ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void toggleSpeakerphone();
57ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
58ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  CallAudioState getCurrentAudioState();
59ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
60ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void setAudioRoute(int route);
61ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
62ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void onEndCallClicked();
63ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
64ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  void showAudioRouteSelector();
65ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian
66ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian  Context getContext();
67ccca31529c07970e89419fb85a9e8153a5396838Eric Erfanian}
68