diff options
-rw-r--r-- | InCallUI/res/drawable/btn_compound_audio.xml | 2 | ||||
-rw-r--r-- | InCallUI/res/drawable/btn_fake_compound_background.xml | 36 | ||||
-rw-r--r-- | InCallUI/res/drawable/btn_fake_compound_hold.xml (renamed from InCallUI/res/drawable/btn_compound_hold.xml) | 2 | ||||
-rw-r--r-- | InCallUI/res/drawable/btn_fake_compound_mute.xml (renamed from InCallUI/res/drawable/btn_compound_mute.xml) | 2 | ||||
-rw-r--r-- | InCallUI/res/drawable/list_selector_selected_and_pressed.xml | 20 | ||||
-rw-r--r-- | InCallUI/res/layout/call_button_fragment.xml | 16 | ||||
-rw-r--r-- | InCallUI/src/com/android/incallui/CallButtonFragment.java | 29 | ||||
-rw-r--r-- | InCallUI/src/com/android/incallui/CallButtonPresenter.java | 3 |
8 files changed, 84 insertions, 26 deletions
diff --git a/InCallUI/res/drawable/btn_compound_audio.xml b/InCallUI/res/drawable/btn_compound_audio.xml index c348c98c1..5d364942d 100644 --- a/InCallUI/res/drawable/btn_compound_audio.xml +++ b/InCallUI/res/drawable/btn_compound_audio.xml @@ -37,7 +37,7 @@ (In states where the audio button *not* a toggle, we explicitly hide this layer.) --> <item android:id="@+id/compoundBackgroundItem" - android:drawable="@drawable/btn_compound_background" /> + android:drawable="@drawable/btn_fake_compound_background" /> <!-- The little triangle that indicates that this isn't a plain button, but will instead pop up a menu. This layer is *not* diff --git a/InCallUI/res/drawable/btn_fake_compound_background.xml b/InCallUI/res/drawable/btn_fake_compound_background.xml new file mode 100644 index 000000000..197f589d1 --- /dev/null +++ b/InCallUI/res/drawable/btn_fake_compound_background.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<!-- Background resource for "compound buttons" in the in-call UI. + These buttons have two states (checked and unchecked), and + show a blue bar along the bottom edge when checked. --> +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + + <item android:state_pressed="true" android:state_selected="true" + android:drawable="@drawable/list_selector_selected_and_pressed" /> + <item android:state_pressed="true" + android:drawable="@drawable/list_pressed_holo_dark" /> + <item android:state_selected="true" android:state_focused="true" + android:drawable="@drawable/list_selector_focused_and_checked" /> + <item android:state_focused="true" + android:drawable="@drawable/list_focused_holo" /> + <item android:state_selected="true" + android:drawable="@drawable/ic_active_state_dialer_holo_dark" /> + + <item + android:drawable="@android:color/transparent" /> + +</selector>
\ No newline at end of file diff --git a/InCallUI/res/drawable/btn_compound_hold.xml b/InCallUI/res/drawable/btn_fake_compound_hold.xml index 50161eac8..04bdd9441 100644 --- a/InCallUI/res/drawable/btn_compound_hold.xml +++ b/InCallUI/res/drawable/btn_fake_compound_hold.xml @@ -18,7 +18,7 @@ <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- The standard "compound button" background. --> - <item android:drawable="@drawable/btn_compound_background" /> + <item android:drawable="@drawable/btn_fake_compound_background" /> <!-- ...and the actual icon on top. Use an explicit <bitmap> to avoid scaling the icon up to the full size of the button. --> diff --git a/InCallUI/res/drawable/btn_compound_mute.xml b/InCallUI/res/drawable/btn_fake_compound_mute.xml index 4e09bd9c3..69048a27f 100644 --- a/InCallUI/res/drawable/btn_compound_mute.xml +++ b/InCallUI/res/drawable/btn_fake_compound_mute.xml @@ -18,7 +18,7 @@ <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- The standard "compound button" background. --> - <item android:drawable="@drawable/btn_compound_background" /> + <item android:drawable="@drawable/btn_fake_compound_background" /> <!-- ...and the actual icon on top. Use an explicit <bitmap> to avoid scaling the icon up to the full size of the button. --> diff --git a/InCallUI/res/drawable/list_selector_selected_and_pressed.xml b/InCallUI/res/drawable/list_selector_selected_and_pressed.xml new file mode 100644 index 000000000..d81ee36ea --- /dev/null +++ b/InCallUI/res/drawable/list_selector_selected_and_pressed.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2011 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:drawable="@drawable/ic_active_state_dialer_holo_dark" /> + <item android:drawable="@drawable/list_pressed_holo_dark" /> +</layer-list>
\ No newline at end of file diff --git a/InCallUI/res/layout/call_button_fragment.xml b/InCallUI/res/layout/call_button_fragment.xml index 1e7049d30..013d1b22a 100644 --- a/InCallUI/res/layout/call_button_fragment.xml +++ b/InCallUI/res/layout/call_button_fragment.xml @@ -101,8 +101,8 @@ action button that brings up a popup menu; see btn_compound_audio.xml and InCallTouchUi.updateAudioButton() for the full details. --> - <ToggleButton android:id="@+id/audioButton" - style="@style/InCallCompoundButton" + <ImageButton android:id="@+id/audioButton" + style="@style/InCallButton" android:background="@drawable/btn_compound_audio" android:contentDescription="@string/onscreenAudioText" /> @@ -112,9 +112,9 @@ <!-- "Mute" --> <!-- This is a "compound button": it has checked and unchecked states. --> - <ToggleButton android:id="@+id/muteButton" - style="@style/InCallCompoundButton" - android:background="@drawable/btn_compound_mute" + <ImageButton android:id="@+id/muteButton" + style="@style/InCallButton" + android:background="@drawable/btn_fake_compound_mute" android:contentDescription="@string/onscreenMuteText" /> @@ -126,9 +126,9 @@ must always be set to GONE. --> <!-- "Hold" --> <!-- This is a "compound button": it has checked and unchecked states. --> - <ToggleButton android:id="@+id/holdButton" - style="@style/InCallCompoundButton" - android:background="@drawable/btn_compound_hold" + <ImageButton android:id="@+id/holdButton" + style="@style/InCallButton" + android:background="@drawable/btn_fake_compound_hold" android:contentDescription="@string/onscreenHoldText" /> <!-- "Swap" (or "Manage calls" in some CDMA states) --> diff --git a/InCallUI/src/com/android/incallui/CallButtonFragment.java b/InCallUI/src/com/android/incallui/CallButtonFragment.java index b0fdda18c..ed7690334 100644 --- a/InCallUI/src/com/android/incallui/CallButtonFragment.java +++ b/InCallUI/src/com/android/incallui/CallButtonFragment.java @@ -41,9 +41,9 @@ public class CallButtonFragment implements CallButtonPresenter.CallButtonUi, OnMenuItemClickListener, OnDismissListener, View.OnClickListener, CompoundButton.OnCheckedChangeListener { - private ToggleButton mMuteButton; - private ToggleButton mAudioButton; - private ToggleButton mHoldButton; + private ImageButton mMuteButton; + private ImageButton mAudioButton; + private ImageButton mHoldButton; private ToggleButton mShowDialpadButton; private ImageButton mMergeButton; private ImageButton mAddCallButton; @@ -107,16 +107,16 @@ public class CallButtonFragment // along the inside perimeter of the button. mEndCallButton.setOnTouchListener(new SmallerHitTargetTouchListener()); - mMuteButton = (ToggleButton) parent.findViewById(R.id.muteButton); + mMuteButton = (ImageButton) parent.findViewById(R.id.muteButton); mMuteButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { - final CompoundButton button = (CompoundButton) v; - getPresenter().muteClicked(button.isChecked()); + final ImageButton button = (ImageButton) v; + getPresenter().muteClicked(!button.isSelected()); } }); - mAudioButton = (ToggleButton) parent.findViewById(R.id.audioButton); + mAudioButton = (ImageButton) parent.findViewById(R.id.audioButton); mAudioButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -124,11 +124,12 @@ public class CallButtonFragment } }); - mHoldButton = (ToggleButton) parent.findViewById(R.id.holdButton); - mHoldButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + mHoldButton = (ImageButton) parent.findViewById(R.id.holdButton); + mHoldButton.setOnClickListener(new OnClickListener() { @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - getPresenter().holdClicked(isChecked); + public void onClick(View v) { + final ImageButton button = (ImageButton) v; + getPresenter().holdClicked(!button.isSelected()); } }); @@ -210,7 +211,7 @@ public class CallButtonFragment @Override public void setMute(boolean value) { - mMuteButton.setChecked(value); + mMuteButton.setSelected(value); } @Override @@ -220,7 +221,7 @@ public class CallButtonFragment @Override public void setHold(boolean value) { - mHoldButton.setChecked(value); + mHoldButton.setSelected(value); } @Override @@ -422,7 +423,7 @@ public class CallButtonFragment final int VISIBLE = 255; mAudioButton.setEnabled(audioButtonEnabled); - mAudioButton.setChecked(audioButtonChecked); + mAudioButton.setSelected(audioButtonChecked); final LayerDrawable layers = (LayerDrawable) mAudioButton.getBackground(); Log.d(this, "'layers' drawable: " + layers); diff --git a/InCallUI/src/com/android/incallui/CallButtonPresenter.java b/InCallUI/src/com/android/incallui/CallButtonPresenter.java index 3b1411be1..be257378f 100644 --- a/InCallUI/src/com/android/incallui/CallButtonPresenter.java +++ b/InCallUI/src/com/android/incallui/CallButtonPresenter.java @@ -66,6 +66,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto @Override public void onStateChange(InCallState state, CallList callList) { + if (state == InCallState.OUTGOING) { mCall = callList.getOutgoingCall(); } else if (state == InCallState.INCALL) { @@ -171,6 +172,7 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto public void muteClicked(boolean checked) { Log.d(this, "turning on mute: " + checked); + CallCommandClient.getInstance().mute(checked); } @@ -182,7 +184,6 @@ public class CallButtonPresenter extends Presenter<CallButtonPresenter.CallButto Log.d(this, "holding: " + mCall.getCallId()); CallCommandClient.getInstance().hold(mCall.getCallId(), checked); - getUi().setHold(checked); } public void mergeClicked() { |