CallButtonFragment.java revision b585c66c5fbf485256ef8fef5b0d06f51d8d9bf5
1/* 2 * Copyright (C) 2013 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 17package com.android.incallui; 18 19import android.content.Context; 20import android.media.AudioManager; 21import android.os.Bundle; 22import android.view.LayoutInflater; 23import android.view.View; 24import android.view.ViewGroup; 25import android.widget.CompoundButton; 26import android.widget.ToggleButton; 27 28/** 29 * Fragment for call control buttons 30 */ 31public class CallButtonFragment extends BaseFragment<CallButtonPresenter> 32 implements CallButtonPresenter.CallButtonUi { 33 34 private ToggleButton mMuteButton; 35 private ToggleButton mAudioButton; 36 private ToggleButton mHoldButton; 37 private View mEndCallButton; 38 39 @Override 40 CallButtonPresenter createPresenter() { 41 return new CallButtonPresenter(); 42 } 43 44 @Override 45 public void onCreate(Bundle savedInstanceState) { 46 super.onCreate(savedInstanceState); 47 48 final AudioManager audioManager = (AudioManager) getActivity().getSystemService( 49 Context.AUDIO_SERVICE); 50 getPresenter().init(audioManager); 51 } 52 53 @Override 54 public View onCreateView(LayoutInflater inflater, ViewGroup container, 55 Bundle savedInstanceState) { 56 final View parent = inflater.inflate(R.layout.call_button_fragment, container, false); 57 58 mEndCallButton = parent.findViewById(R.id.endButton); 59 mEndCallButton.setOnClickListener(new View.OnClickListener() { 60 @Override 61 public void onClick(View v) { 62 getPresenter().endCallClicked(); 63 } 64 }); 65 66 mMuteButton = (ToggleButton) parent.findViewById(R.id.muteButton); 67 mMuteButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 68 @Override 69 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 70 getPresenter().muteClicked(isChecked); 71 } 72 }); 73 74 mAudioButton = (ToggleButton) parent.findViewById(R.id.audioButton); 75 mAudioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 76 @Override 77 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 78 getPresenter().speakerClicked(isChecked); 79 } 80 }); 81 82 mHoldButton = (ToggleButton) parent.findViewById(R.id.holdButton); 83 mHoldButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 84 @Override 85 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 86 getPresenter().holdClicked(isChecked); 87 } 88 }); 89 90 return parent; 91 } 92 93 @Override 94 public void onViewCreated(View view, Bundle savedInstanceState) { 95 getPresenter().onUiReady(this); 96 } 97 98 @Override 99 public void setVisible(boolean on) { 100 if (on) { 101 getView().setVisibility(View.VISIBLE); 102 } else { 103 getView().setVisibility(View.INVISIBLE); 104 } 105 } 106 107 @Override 108 public void setMute(boolean value) { 109 mMuteButton.setChecked(value); 110 } 111 112 /** 113 * TODO(klp): Rename this from setSpeaker() to setAudio() once it does more than speakerphone. 114 */ 115 @Override 116 public void setSpeaker(boolean value) { 117 mAudioButton.setChecked(value); 118 } 119 120 @Override 121 public void setHold(boolean value) { 122 mHoldButton.setChecked(value); 123 } 124} 125