diff options
Diffstat (limited to 'java/com/android/incallui/incall')
7 files changed, 32 insertions, 2 deletions
diff --git a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java index 0f4a95d38..0d0a93256 100644 --- a/java/com/android/incallui/incall/impl/ButtonChooserFactory.java +++ b/java/com/android/incallui/incall/impl/ButtonChooserFactory.java @@ -112,6 +112,7 @@ class ButtonChooserFactory { mapping.put(InCallButtonIds.BUTTON_AUDIO, MappingInfo.builder(2).build()); mapping.put(InCallButtonIds.BUTTON_MERGE, MappingInfo.builder(3).setSlotOrder(0).build()); mapping.put(InCallButtonIds.BUTTON_ADD_CALL, MappingInfo.builder(3).build()); + mapping.put(InCallButtonIds.BUTTON_SWAP_SIM, MappingInfo.builder(4).build()); return mapping; } } diff --git a/java/com/android/incallui/incall/impl/ButtonController.java b/java/com/android/incallui/incall/impl/ButtonController.java index b7a47f08e..cefbd723b 100644 --- a/java/com/android/incallui/incall/impl/ButtonController.java +++ b/java/com/android/incallui/incall/impl/ButtonController.java @@ -560,4 +560,21 @@ interface ButtonController { inCallScreenDelegate.onSecondaryInfoClicked(); } } + + class SwapSimButtonController extends SimpleNonCheckableButtonController { + + public SwapSimButtonController(InCallButtonUiDelegate delegate) { + super( + delegate, + InCallButtonIds.BUTTON_SWAP_SIM, + R.string.incall_content_description_swap_sim, + R.string.incall_label_swap_sim, + R.drawable.quantum_ic_swap_calls_white_36); + } + + @Override + public void onClick(View view) { + delegate.swapSimClicked(); + } + } } diff --git a/java/com/android/incallui/incall/impl/InCallFragment.java b/java/com/android/incallui/incall/impl/InCallFragment.java index 13175656d..f0504bc56 100644 --- a/java/com/android/incallui/incall/impl/InCallFragment.java +++ b/java/com/android/incallui/incall/impl/InCallFragment.java @@ -110,7 +110,8 @@ public class InCallFragment extends Fragment || id == InCallButtonIds.BUTTON_UPGRADE_TO_VIDEO || id == InCallButtonIds.BUTTON_ADD_CALL || id == InCallButtonIds.BUTTON_MERGE - || id == InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE; + || id == InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE + || id == InCallButtonIds.BUTTON_SWAP_SIM; } @Override @@ -198,6 +199,7 @@ public class InCallFragment extends Fragment buttonControllers.add(new ButtonController.AddCallButtonController(inCallButtonUiDelegate)); buttonControllers.add(new ButtonController.SwapButtonController(inCallButtonUiDelegate)); buttonControllers.add(new ButtonController.MergeButtonController(inCallButtonUiDelegate)); + buttonControllers.add(new ButtonController.SwapSimButtonController(inCallButtonUiDelegate)); buttonControllers.add( new ButtonController.UpgradeToVideoButtonController(inCallButtonUiDelegate)); buttonControllers.add( diff --git a/java/com/android/incallui/incall/impl/res/values/strings.xml b/java/com/android/incallui/incall/impl/res/values/strings.xml index 2b30dfa53..d0217566a 100644 --- a/java/com/android/incallui/incall/impl/res/values/strings.xml +++ b/java/com/android/incallui/incall/impl/res/values/strings.xml @@ -61,6 +61,10 @@ <string name="incall_label_swap">Swap</string> + <!-- Button shown during a call with a multi-SIM device to hang up and call with the other SIM + instead. [CHAR LIMIT=12] --> + <string name="incall_label_swap_sim">Change SIM</string> + <!-- Used to inform the user that the note associated with an outgoing call has been sent. [CHAR LIMIT=32] --> <string name="incall_note_sent">Note sent</string> diff --git a/java/com/android/incallui/incall/protocol/InCallButtonIds.java b/java/com/android/incallui/incall/protocol/InCallButtonIds.java index 50ebc6413..3de533519 100644 --- a/java/com/android/incallui/incall/protocol/InCallButtonIds.java +++ b/java/com/android/incallui/incall/protocol/InCallButtonIds.java @@ -37,6 +37,7 @@ import java.lang.annotation.RetentionPolicy; InCallButtonIds.BUTTON_MANAGE_VIDEO_CONFERENCE, InCallButtonIds.BUTTON_MANAGE_VOICE_CONFERENCE, InCallButtonIds.BUTTON_SWITCH_TO_SECONDARY, + InCallButtonIds.BUTTON_SWAP_SIM, InCallButtonIds.BUTTON_COUNT, }) public @interface InCallButtonIds { @@ -55,5 +56,6 @@ public @interface InCallButtonIds { int BUTTON_MANAGE_VIDEO_CONFERENCE = 11; int BUTTON_MANAGE_VOICE_CONFERENCE = 12; int BUTTON_SWITCH_TO_SECONDARY = 13; - int BUTTON_COUNT = 14; + int BUTTON_SWAP_SIM = 14; + int BUTTON_COUNT = 15; } diff --git a/java/com/android/incallui/incall/protocol/InCallButtonIdsExtension.java b/java/com/android/incallui/incall/protocol/InCallButtonIdsExtension.java index 6d802e346..db6e9009c 100644 --- a/java/com/android/incallui/incall/protocol/InCallButtonIdsExtension.java +++ b/java/com/android/incallui/incall/protocol/InCallButtonIdsExtension.java @@ -54,6 +54,8 @@ public class InCallButtonIdsExtension { return "MANAGE_VOICE_CONFERENCE"; } else if (id == InCallButtonIds.BUTTON_SWITCH_TO_SECONDARY) { return "SWITCH_TO_SECONDARY"; + } else if (id == InCallButtonIds.BUTTON_SWAP_SIM) { + return "SWAP_SIM"; } else { return "INVALID_BUTTON: " + id; } diff --git a/java/com/android/incallui/incall/protocol/InCallButtonUiDelegate.java b/java/com/android/incallui/incall/protocol/InCallButtonUiDelegate.java index e02ada96d..9f9c5fb03 100644 --- a/java/com/android/incallui/incall/protocol/InCallButtonUiDelegate.java +++ b/java/com/android/incallui/incall/protocol/InCallButtonUiDelegate.java @@ -63,5 +63,7 @@ public interface InCallButtonUiDelegate { void showAudioRouteSelector(); + void swapSimClicked(); + Context getContext(); } |