Merge TQ2A.230405.003
Bug: 271343657
Merged-In: Ic2c3014cecfd5db84dc2023b4c247d96ad1c3414
Change-Id: Ica104f83c124f16b73a433784893d77cbb12f632
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index d122ff8..c26650c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -277,7 +277,7 @@
<activity android:name=".settings.EnableAccountPreferenceActivity"
android:label="@string/enable_account_preference_title"
android:configChanges="orientation|screenSize|keyboardHidden"
- android:theme="@style/Theme.Telecom.DialerSettings"
+ android:theme="@style/Theme.Telecom.EnableAccount"
android:process=":ui"
android:exported="true">
<intent-filter>
diff --git a/OWNERS b/OWNERS
index 39be2c1..97cc81f 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,6 +1,8 @@
breadley@google.com
-hallliu@google.com
tgunn@google.com
xiaotonj@google.com
-shuoq@google.com
+chinmayd@google.com
+tjstuart@google.com
rgreenwalt@google.com
+pmadapurmath@google.com
+grantmenke@google.com
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 4322be5..ae9aa26 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -59,7 +59,7 @@
<string name="change_default_dialer_warning_message" msgid="8461963987376916114">"Deien aspektu guztiak erabili eta kontrolatu ahal izango ditu <xliff:g id="NEW_APP">%s</xliff:g> aplikazioak. Fidagarriak diren aplikazioak bakarrik erabili beharko lirateke Telefonoa aplikazio lehenetsi gisa."</string>
<string name="change_default_call_screening_dialog_title" msgid="5365787219927262408">"Deiak iragazteko aplikazio lehenetsia <xliff:g id="NEW_APP">%s</xliff:g> izatea nahi duzu?"</string>
<string name="change_default_call_screening_warning_message_for_disable_old_app" msgid="2039830033533243164">"Aurrerantzean, <xliff:g id="OLD_APP">%s</xliff:g> aplikazioak ezingo ditu iragazi deiak."</string>
- <string name="change_default_call_screening_warning_message" msgid="9020537562292754269">"Kontaktuetan gordeta ez dituzun deitzaileei buruzko informazioa ikusteko eta dei horiek blokeatzeko gai izango da <xliff:g id="NEW_APP">%s</xliff:g>. Aplikazio fidagarriak soilik ezarri beharko lirateke deiak iragazteko aplikazio lehenetsi gisa."</string>
+ <string name="change_default_call_screening_warning_message" msgid="9020537562292754269">"Kontaktuetan gordeta ez dauzkazun deitzaileei buruzko informazioa ikusteko eta dei horiek blokeatzeko gai izango da <xliff:g id="NEW_APP">%s</xliff:g>. Aplikazio fidagarriak soilik ezarri beharko lirateke deiak iragazteko aplikazio lehenetsi gisa."</string>
<string name="change_default_call_screening_dialog_affirmative" msgid="7162433828280058647">"Ezarri lehenetsi gisa"</string>
<string name="change_default_call_screening_dialog_negative" msgid="1839266125623106342">"Utzi"</string>
<string name="blocked_numbers" msgid="8322134197039865180">"Blokeatutako zenbakiak"</string>
diff --git a/res/values/config.xml b/res/values/config.xml
index b0e50b0..15f765b 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -73,4 +73,8 @@
<!-- When set, Telecom will attempt to bind to the {@link CallDiagnosticService} implementation
defined by the app with this package name. -->
<string name="call_diagnostic_service_package_name"></string>
+
+ <!-- When true, the options in the call blocking settings to block unavailable and unknown
+ callers are combined into a single toggle. -->
+ <bool name="combine_options_to_block_unavailable_and_unknown_callers">true</bool>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 53e1bcb..c8b24d3 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -29,19 +29,21 @@
<style name="Theme.Telecom.DialerSettings" parent="@android:style/Theme.DeviceDefault.Light">
<item name="android:forceDarkAllowed">true</item>
<item name="android:actionBarStyle">@style/TelecomDialerSettingsActionBarStyle</item>
- <item name="android:actionOverflowButtonStyle">@style/TelecomDialerSettingsActionOverflowButtonStyle</item>
+ <item name="android:navigationBarColor">@android:color/transparent</item>
<item name="android:windowLightStatusBar">true</item>
<item name="android:windowLightNavigationBar">true</item>
+ </style>
+
+ <style name="Theme.Telecom.EnableAccount" parent="Theme.Telecom.DialerSettings">
+ <item name="android:actionOverflowButtonStyle">
+ @style/TelecomDialerSettingsActionOverflowButtonStyle
+ </item>
<item name="android:windowContentOverlay">@null</item>
</style>
- <style name="Theme.Telecom.BlockedNumbers" parent="@android:style/Theme.DeviceDefault.Light">
- <item name="android:forceDarkAllowed">true</item>
- <item name="android:actionBarStyle">@style/TelecomDialerSettingsActionBarStyle</item>
- <item name="android:windowLightStatusBar">true</item>
- <item name="android:windowLightNavigationBar">true</item>
- <item name="android:windowContentOverlay">@null</item>
+ <style name="Theme.Telecom.BlockedNumbers" parent="Theme.Telecom.DialerSettings">
<item name="android:listDivider">@null</item>
+ <item name="android:windowContentOverlay">@null</item>
</style>
<style name="TelecomDialerSettingsActionBarStyle" parent="android:Widget.DeviceDefault.ActionBar">
diff --git a/res/xml/activity_blocked_numbers.xml b/res/xml/activity_blocked_numbers.xml
index f884ec9..e77184d 100644
--- a/res/xml/activity_blocked_numbers.xml
+++ b/res/xml/activity_blocked_numbers.xml
@@ -70,6 +70,8 @@
android:layout_height="wrap_content"
android:text="@string/blocked_numbers_msg"
android:paddingBottom="@dimen/blocked_numbers_extra_large_padding"
+ android:clickable="false"
+ android:longClickable="false"
style="@style/BlockedNumbersTextPrimary2" />
<TextView
diff --git a/res/xml/add_blocked_number_dialog.xml b/res/xml/add_blocked_number_dialog.xml
index 35ab633..c344280 100644
--- a/res/xml/add_blocked_number_dialog.xml
+++ b/res/xml/add_blocked_number_dialog.xml
@@ -28,6 +28,8 @@
android:text="@string/add_blocked_dialog_body"
android:paddingBottom="@dimen/blocked_numbers_large_padding"
android:gravity="start"
+ android:clickable="false"
+ android:longClickable="false"
style="@style/BlockedNumbersTextPrimary2" />
<EditText
android:id="@+id/add_blocked_number"
diff --git a/src/com/android/server/telecom/Analytics.java b/src/com/android/server/telecom/Analytics.java
index 0aaeca9..145e9b4 100644
--- a/src/com/android/server/telecom/Analytics.java
+++ b/src/com/android/server/telecom/Analytics.java
@@ -16,6 +16,8 @@
package com.android.server.telecom;
+import static java.util.Map.entry;
+
import android.content.Context;
import android.os.SystemProperties;
@@ -69,101 +71,95 @@
public static final String ANALYTICS_DUMPSYS_ARG = "analytics";
private static final String CLEAR_ANALYTICS_ARG = "clear";
- public static final Map<String, Integer> sLogEventToAnalyticsEvent =
- new HashMap<String, Integer>() {{
- put(LogUtils.Events.SET_SELECT_PHONE_ACCOUNT,
- AnalyticsEvent.SET_SELECT_PHONE_ACCOUNT);
- put(LogUtils.Events.REQUEST_HOLD, AnalyticsEvent.REQUEST_HOLD);
- put(LogUtils.Events.REQUEST_UNHOLD, AnalyticsEvent.REQUEST_UNHOLD);
- put(LogUtils.Events.SWAP, AnalyticsEvent.SWAP);
- put(LogUtils.Events.SKIP_RINGING, AnalyticsEvent.SKIP_RINGING);
- put(LogUtils.Events.CONFERENCE_WITH, AnalyticsEvent.CONFERENCE_WITH);
- put(LogUtils.Events.SPLIT_FROM_CONFERENCE, AnalyticsEvent.SPLIT_CONFERENCE);
- put(LogUtils.Events.SET_PARENT, AnalyticsEvent.SET_PARENT);
- put(LogUtils.Events.MUTE, AnalyticsEvent.MUTE);
- put(LogUtils.Events.UNMUTE, AnalyticsEvent.UNMUTE);
- put(LogUtils.Events.AUDIO_ROUTE_BT, AnalyticsEvent.AUDIO_ROUTE_BT);
- put(LogUtils.Events.AUDIO_ROUTE_EARPIECE, AnalyticsEvent.AUDIO_ROUTE_EARPIECE);
- put(LogUtils.Events.AUDIO_ROUTE_HEADSET, AnalyticsEvent.AUDIO_ROUTE_HEADSET);
- put(LogUtils.Events.AUDIO_ROUTE_SPEAKER, AnalyticsEvent.AUDIO_ROUTE_SPEAKER);
- put(LogUtils.Events.SILENCE, AnalyticsEvent.SILENCE);
- put(LogUtils.Events.SCREENING_COMPLETED, AnalyticsEvent.SCREENING_COMPLETED);
- put(LogUtils.Events.BLOCK_CHECK_FINISHED, AnalyticsEvent.BLOCK_CHECK_FINISHED);
- put(LogUtils.Events.DIRECT_TO_VM_FINISHED, AnalyticsEvent.DIRECT_TO_VM_FINISHED);
- put(LogUtils.Events.REMOTELY_HELD, AnalyticsEvent.REMOTELY_HELD);
- put(LogUtils.Events.REMOTELY_UNHELD, AnalyticsEvent.REMOTELY_UNHELD);
- put(LogUtils.Events.REQUEST_PULL, AnalyticsEvent.REQUEST_PULL);
- put(LogUtils.Events.REQUEST_ACCEPT, AnalyticsEvent.REQUEST_ACCEPT);
- put(LogUtils.Events.REQUEST_REJECT, AnalyticsEvent.REQUEST_REJECT);
- put(LogUtils.Events.SET_ACTIVE, AnalyticsEvent.SET_ACTIVE);
- put(LogUtils.Events.SET_DISCONNECTED, AnalyticsEvent.SET_DISCONNECTED);
- put(LogUtils.Events.SET_HOLD, AnalyticsEvent.SET_HOLD);
- put(LogUtils.Events.SET_DIALING, AnalyticsEvent.SET_DIALING);
- put(LogUtils.Events.START_CONNECTION, AnalyticsEvent.START_CONNECTION);
- put(LogUtils.Events.BIND_CS, AnalyticsEvent.BIND_CS);
- put(LogUtils.Events.CS_BOUND, AnalyticsEvent.CS_BOUND);
- put(LogUtils.Events.SCREENING_SENT, AnalyticsEvent.SCREENING_SENT);
- put(LogUtils.Events.DIRECT_TO_VM_INITIATED, AnalyticsEvent.DIRECT_TO_VM_INITIATED);
- put(LogUtils.Events.BLOCK_CHECK_INITIATED, AnalyticsEvent.BLOCK_CHECK_INITIATED);
- put(LogUtils.Events.FILTERING_INITIATED, AnalyticsEvent.FILTERING_INITIATED);
- put(LogUtils.Events.FILTERING_COMPLETED, AnalyticsEvent.FILTERING_COMPLETED);
- put(LogUtils.Events.FILTERING_TIMED_OUT, AnalyticsEvent.FILTERING_TIMED_OUT);
- }};
+ public static final Map<String, Integer> sLogEventToAnalyticsEvent = Map.ofEntries(
+ entry(LogUtils.Events.SET_SELECT_PHONE_ACCOUNT,
+ AnalyticsEvent.SET_SELECT_PHONE_ACCOUNT),
+ entry(LogUtils.Events.REQUEST_HOLD, AnalyticsEvent.REQUEST_HOLD),
+ entry(LogUtils.Events.REQUEST_UNHOLD, AnalyticsEvent.REQUEST_UNHOLD),
+ entry(LogUtils.Events.SWAP, AnalyticsEvent.SWAP),
+ entry(LogUtils.Events.SKIP_RINGING, AnalyticsEvent.SKIP_RINGING),
+ entry(LogUtils.Events.CONFERENCE_WITH, AnalyticsEvent.CONFERENCE_WITH),
+ entry(LogUtils.Events.SPLIT_FROM_CONFERENCE, AnalyticsEvent.SPLIT_CONFERENCE),
+ entry(LogUtils.Events.SET_PARENT, AnalyticsEvent.SET_PARENT),
+ entry(LogUtils.Events.MUTE, AnalyticsEvent.MUTE),
+ entry(LogUtils.Events.UNMUTE, AnalyticsEvent.UNMUTE),
+ entry(LogUtils.Events.AUDIO_ROUTE_BT, AnalyticsEvent.AUDIO_ROUTE_BT),
+ entry(LogUtils.Events.AUDIO_ROUTE_EARPIECE, AnalyticsEvent.AUDIO_ROUTE_EARPIECE),
+ entry(LogUtils.Events.AUDIO_ROUTE_HEADSET, AnalyticsEvent.AUDIO_ROUTE_HEADSET),
+ entry(LogUtils.Events.AUDIO_ROUTE_SPEAKER, AnalyticsEvent.AUDIO_ROUTE_SPEAKER),
+ entry(LogUtils.Events.SILENCE, AnalyticsEvent.SILENCE),
+ entry(LogUtils.Events.SCREENING_COMPLETED, AnalyticsEvent.SCREENING_COMPLETED),
+ entry(LogUtils.Events.BLOCK_CHECK_FINISHED, AnalyticsEvent.BLOCK_CHECK_FINISHED),
+ entry(LogUtils.Events.DIRECT_TO_VM_FINISHED, AnalyticsEvent.DIRECT_TO_VM_FINISHED),
+ entry(LogUtils.Events.REMOTELY_HELD, AnalyticsEvent.REMOTELY_HELD),
+ entry(LogUtils.Events.REMOTELY_UNHELD, AnalyticsEvent.REMOTELY_UNHELD),
+ entry(LogUtils.Events.REQUEST_PULL, AnalyticsEvent.REQUEST_PULL),
+ entry(LogUtils.Events.REQUEST_ACCEPT, AnalyticsEvent.REQUEST_ACCEPT),
+ entry(LogUtils.Events.REQUEST_REJECT, AnalyticsEvent.REQUEST_REJECT),
+ entry(LogUtils.Events.SET_ACTIVE, AnalyticsEvent.SET_ACTIVE),
+ entry(LogUtils.Events.SET_DISCONNECTED, AnalyticsEvent.SET_DISCONNECTED),
+ entry(LogUtils.Events.SET_HOLD, AnalyticsEvent.SET_HOLD),
+ entry(LogUtils.Events.SET_DIALING, AnalyticsEvent.SET_DIALING),
+ entry(LogUtils.Events.START_CONNECTION, AnalyticsEvent.START_CONNECTION),
+ entry(LogUtils.Events.BIND_CS, AnalyticsEvent.BIND_CS),
+ entry(LogUtils.Events.CS_BOUND, AnalyticsEvent.CS_BOUND),
+ entry(LogUtils.Events.SCREENING_SENT, AnalyticsEvent.SCREENING_SENT),
+ entry(LogUtils.Events.DIRECT_TO_VM_INITIATED,
+ AnalyticsEvent.DIRECT_TO_VM_INITIATED),
+ entry(LogUtils.Events.BLOCK_CHECK_INITIATED, AnalyticsEvent.BLOCK_CHECK_INITIATED),
+ entry(LogUtils.Events.FILTERING_INITIATED, AnalyticsEvent.FILTERING_INITIATED),
+ entry(LogUtils.Events.FILTERING_COMPLETED, AnalyticsEvent.FILTERING_COMPLETED),
+ entry(LogUtils.Events.FILTERING_TIMED_OUT, AnalyticsEvent.FILTERING_TIMED_OUT));
- public static final Map<String, Integer> sLogSessionToSessionId =
- new HashMap<String, Integer> () {{
- put(LogUtils.Sessions.ICA_ANSWER_CALL, SessionTiming.ICA_ANSWER_CALL);
- put(LogUtils.Sessions.ICA_REJECT_CALL, SessionTiming.ICA_REJECT_CALL);
- put(LogUtils.Sessions.ICA_DISCONNECT_CALL, SessionTiming.ICA_DISCONNECT_CALL);
- put(LogUtils.Sessions.ICA_HOLD_CALL, SessionTiming.ICA_HOLD_CALL);
- put(LogUtils.Sessions.ICA_UNHOLD_CALL, SessionTiming.ICA_UNHOLD_CALL);
- put(LogUtils.Sessions.ICA_MUTE, SessionTiming.ICA_MUTE);
- put(LogUtils.Sessions.ICA_SET_AUDIO_ROUTE, SessionTiming.ICA_SET_AUDIO_ROUTE);
- put(LogUtils.Sessions.ICA_CONFERENCE, SessionTiming.ICA_CONFERENCE);
- put(LogUtils.Sessions.CSW_HANDLE_CREATE_CONNECTION_COMPLETE,
- SessionTiming.CSW_HANDLE_CREATE_CONNECTION_COMPLETE);
- put(LogUtils.Sessions.CSW_SET_ACTIVE, SessionTiming.CSW_SET_ACTIVE);
- put(LogUtils.Sessions.CSW_SET_RINGING, SessionTiming.CSW_SET_RINGING);
- put(LogUtils.Sessions.CSW_SET_DIALING, SessionTiming.CSW_SET_DIALING);
- put(LogUtils.Sessions.CSW_SET_DISCONNECTED, SessionTiming.CSW_SET_DISCONNECTED);
- put(LogUtils.Sessions.CSW_SET_ON_HOLD, SessionTiming.CSW_SET_ON_HOLD);
- put(LogUtils.Sessions.CSW_REMOVE_CALL, SessionTiming.CSW_REMOVE_CALL);
- put(LogUtils.Sessions.CSW_SET_IS_CONFERENCED, SessionTiming.CSW_SET_IS_CONFERENCED);
- put(LogUtils.Sessions.CSW_ADD_CONFERENCE_CALL,
- SessionTiming.CSW_ADD_CONFERENCE_CALL);
+ public static final Map<String, Integer> sLogSessionToSessionId = Map.ofEntries(
+ entry(LogUtils.Sessions.ICA_ANSWER_CALL, SessionTiming.ICA_ANSWER_CALL),
+ entry(LogUtils.Sessions.ICA_REJECT_CALL, SessionTiming.ICA_REJECT_CALL),
+ entry(LogUtils.Sessions.ICA_DISCONNECT_CALL, SessionTiming.ICA_DISCONNECT_CALL),
+ entry(LogUtils.Sessions.ICA_HOLD_CALL, SessionTiming.ICA_HOLD_CALL),
+ entry(LogUtils.Sessions.ICA_UNHOLD_CALL, SessionTiming.ICA_UNHOLD_CALL),
+ entry(LogUtils.Sessions.ICA_MUTE, SessionTiming.ICA_MUTE),
+ entry(LogUtils.Sessions.ICA_SET_AUDIO_ROUTE, SessionTiming.ICA_SET_AUDIO_ROUTE),
+ entry(LogUtils.Sessions.ICA_CONFERENCE, SessionTiming.ICA_CONFERENCE),
+ entry(LogUtils.Sessions.CSW_HANDLE_CREATE_CONNECTION_COMPLETE,
+ SessionTiming.CSW_HANDLE_CREATE_CONNECTION_COMPLETE),
+ entry(LogUtils.Sessions.CSW_SET_ACTIVE, SessionTiming.CSW_SET_ACTIVE),
+ entry(LogUtils.Sessions.CSW_SET_RINGING, SessionTiming.CSW_SET_RINGING),
+ entry(LogUtils.Sessions.CSW_SET_DIALING, SessionTiming.CSW_SET_DIALING),
+ entry(LogUtils.Sessions.CSW_SET_DISCONNECTED, SessionTiming.CSW_SET_DISCONNECTED),
+ entry(LogUtils.Sessions.CSW_SET_ON_HOLD, SessionTiming.CSW_SET_ON_HOLD),
+ entry(LogUtils.Sessions.CSW_REMOVE_CALL, SessionTiming.CSW_REMOVE_CALL),
+ entry(LogUtils.Sessions.CSW_SET_IS_CONFERENCED, SessionTiming.CSW_SET_IS_CONFERENCED),
+ entry(LogUtils.Sessions.CSW_ADD_CONFERENCE_CALL,
+ SessionTiming.CSW_ADD_CONFERENCE_CALL));
- }};
-
- public static final Map<String, Integer> sLogEventTimingToAnalyticsEventTiming =
- new HashMap<String, Integer>() {{
- put(LogUtils.Events.Timings.ACCEPT_TIMING,
- ParcelableCallAnalytics.EventTiming.ACCEPT_TIMING);
- put(LogUtils.Events.Timings.REJECT_TIMING,
- ParcelableCallAnalytics.EventTiming.REJECT_TIMING);
- put(LogUtils.Events.Timings.DISCONNECT_TIMING,
- ParcelableCallAnalytics.EventTiming.DISCONNECT_TIMING);
- put(LogUtils.Events.Timings.HOLD_TIMING,
- ParcelableCallAnalytics.EventTiming.HOLD_TIMING);
- put(LogUtils.Events.Timings.UNHOLD_TIMING,
- ParcelableCallAnalytics.EventTiming.UNHOLD_TIMING);
- put(LogUtils.Events.Timings.OUTGOING_TIME_TO_DIALING_TIMING,
- ParcelableCallAnalytics.EventTiming.OUTGOING_TIME_TO_DIALING_TIMING);
- put(LogUtils.Events.Timings.BIND_CS_TIMING,
- ParcelableCallAnalytics.EventTiming.BIND_CS_TIMING);
- put(LogUtils.Events.Timings.SCREENING_COMPLETED_TIMING,
- ParcelableCallAnalytics.EventTiming.SCREENING_COMPLETED_TIMING);
- put(LogUtils.Events.Timings.DIRECT_TO_VM_FINISHED_TIMING,
- ParcelableCallAnalytics.EventTiming.DIRECT_TO_VM_FINISHED_TIMING);
- put(LogUtils.Events.Timings.BLOCK_CHECK_FINISHED_TIMING,
- ParcelableCallAnalytics.EventTiming.BLOCK_CHECK_FINISHED_TIMING);
- put(LogUtils.Events.Timings.FILTERING_COMPLETED_TIMING,
- ParcelableCallAnalytics.EventTiming.FILTERING_COMPLETED_TIMING);
- put(LogUtils.Events.Timings.FILTERING_TIMED_OUT_TIMING,
- ParcelableCallAnalytics.EventTiming.FILTERING_TIMED_OUT_TIMING);
- put(LogUtils.Events.Timings.START_CONNECTION_TO_REQUEST_DISCONNECT_TIMING,
+ public static final Map<String, Integer> sLogEventTimingToAnalyticsEventTiming = Map.ofEntries(
+ entry(LogUtils.Events.Timings.ACCEPT_TIMING,
+ ParcelableCallAnalytics.EventTiming.ACCEPT_TIMING),
+ entry(LogUtils.Events.Timings.REJECT_TIMING,
+ ParcelableCallAnalytics.EventTiming.REJECT_TIMING),
+ entry(LogUtils.Events.Timings.DISCONNECT_TIMING,
+ ParcelableCallAnalytics.EventTiming.DISCONNECT_TIMING),
+ entry(LogUtils.Events.Timings.HOLD_TIMING,
+ ParcelableCallAnalytics.EventTiming.HOLD_TIMING),
+ entry(LogUtils.Events.Timings.UNHOLD_TIMING,
+ ParcelableCallAnalytics.EventTiming.UNHOLD_TIMING),
+ entry(LogUtils.Events.Timings.OUTGOING_TIME_TO_DIALING_TIMING,
+ ParcelableCallAnalytics.EventTiming.OUTGOING_TIME_TO_DIALING_TIMING),
+ entry(LogUtils.Events.Timings.BIND_CS_TIMING,
+ ParcelableCallAnalytics.EventTiming.BIND_CS_TIMING),
+ entry(LogUtils.Events.Timings.SCREENING_COMPLETED_TIMING,
+ ParcelableCallAnalytics.EventTiming.SCREENING_COMPLETED_TIMING),
+ entry(LogUtils.Events.Timings.DIRECT_TO_VM_FINISHED_TIMING,
+ ParcelableCallAnalytics.EventTiming.DIRECT_TO_VM_FINISHED_TIMING),
+ entry(LogUtils.Events.Timings.BLOCK_CHECK_FINISHED_TIMING,
+ ParcelableCallAnalytics.EventTiming.BLOCK_CHECK_FINISHED_TIMING),
+ entry(LogUtils.Events.Timings.FILTERING_COMPLETED_TIMING,
+ ParcelableCallAnalytics.EventTiming.FILTERING_COMPLETED_TIMING),
+ entry(LogUtils.Events.Timings.FILTERING_TIMED_OUT_TIMING,
+ ParcelableCallAnalytics.EventTiming.FILTERING_TIMED_OUT_TIMING),
+ entry(LogUtils.Events.Timings.START_CONNECTION_TO_REQUEST_DISCONNECT_TIMING,
ParcelableCallAnalytics.EventTiming.
- START_CONNECTION_TO_REQUEST_DISCONNECT_TIMING);
- }};
+ START_CONNECTION_TO_REQUEST_DISCONNECT_TIMING));
public static final Map<Integer, String> sSessionIdToLogSession = new HashMap<>();
static {
diff --git a/src/com/android/server/telecom/InCallTonePlayer.java b/src/com/android/server/telecom/InCallTonePlayer.java
index 4665ec2..0367ba0 100644
--- a/src/com/android/server/telecom/InCallTonePlayer.java
+++ b/src/com/android/server/telecom/InCallTonePlayer.java
@@ -524,7 +524,7 @@
mMainThreadHandler.post(new Runnable("ICTP.cUTP", mLock) {
@Override
public void loggedRun() {
- int newToneCount = sTonesPlaying.updateAndGet( t -> Math.min(0, t--));
+ int newToneCount = sTonesPlaying.updateAndGet( t -> Math.max(0, --t));
if (newToneCount == 0) {
Log.i(InCallTonePlayer.this,
diff --git a/src/com/android/server/telecom/RespondViaSmsManager.java b/src/com/android/server/telecom/RespondViaSmsManager.java
index 23ccc1c..8507703 100644
--- a/src/com/android/server/telecom/RespondViaSmsManager.java
+++ b/src/com/android/server/telecom/RespondViaSmsManager.java
@@ -31,11 +31,13 @@
import android.telephony.PhoneNumberUtils;
import android.telephony.SmsManager;
import android.telephony.SubscriptionManager;
+import android.text.BidiFormatter;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.TextUtils;
import android.widget.Toast;
+import java.text.Bidi;
import java.util.ArrayList;
import java.util.List;
@@ -158,7 +160,9 @@
final String formatString = res.getString(success
? R.string.respond_via_sms_confirmation_format
: R.string.respond_via_sms_failure_format);
- final String confirmationMsg = String.format(formatString, phoneNumber);
+ final BidiFormatter phoneNumberFormatter = BidiFormatter.getInstance();
+ final String confirmationMsg = String.format(formatString,
+ phoneNumberFormatter.unicodeWrap(phoneNumber));
int startingPosition = confirmationMsg.indexOf(phoneNumber);
int endingPosition = startingPosition + phoneNumber.length();
@@ -207,10 +211,12 @@
PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE);
sentIntents.add(pendingIntent);
}
+
MessageSentReceiver receiver = new MessageSentReceiver(
!TextUtils.isEmpty(contactName) ? contactName : phoneNumber,
messageParts.size());
- context.registerReceiver(receiver, new IntentFilter(ACTION_MESSAGE_SENT));
+ context.registerReceiver(receiver, new IntentFilter(ACTION_MESSAGE_SENT),
+ Context.RECEIVER_NOT_EXPORTED);
smsManager.sendMultipartTextMessage(phoneNumber, null, messageParts,
sentIntents/*sentIntent*/, null /*deliveryIntent*/, context.getOpPackageName(),
context.getAttributionTag());
diff --git a/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java b/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java
index 196c62f..473e7b9 100644
--- a/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java
+++ b/src/com/android/server/telecom/bluetooth/BluetoothDeviceManager.java
@@ -223,10 +223,10 @@
}
for (LinkedHashMap.Entry<BluetoothDevice, Integer> entry : mGroupsByDevice.entrySet()) {
- if (Objects.equals(entry.getKey(),
+ if (Objects.equals(entry.getKey(),
mBluetoothLeAudioService.getConnectedGroupLeadDevice(entry.getValue()))) {
- devices.add(entry.getKey());
- }
+ devices.add(entry.getKey());
+ }
}
devices.removeIf(device -> !mLeAudioDevicesByAddress.containsValue(device));
return devices;
@@ -439,6 +439,7 @@
AudioDeviceInfo audioDeviceInfo = mAudioManager.getCommunicationDevice();
if (audioDeviceInfo != null && audioDeviceInfo.getType()
== AudioDeviceInfo.TYPE_BLE_HEADSET) {
+ mBluetoothRouteManager.onAudioLost(audioDeviceInfo.getAddress());
mAudioManager.clearCommunicationDevice();
}
}
@@ -464,9 +465,7 @@
if (audioDeviceInfo != null && audioDeviceInfo.getType()
== AudioDeviceInfo.TYPE_HEARING_AID) {
mAudioManager.clearCommunicationDevice();
- mHearingAidSetAsCommunicationDevice = false;
}
- mHearingAidSetAsCommunicationDevice = false;
}
public boolean setLeAudioCommunicationDevice() {
@@ -647,6 +646,25 @@
}
}
+ public boolean isInbandRingingEnabled() {
+ BluetoothDevice activeDevice = mBluetoothRouteManager.getBluetoothAudioConnectedDevice();
+ Log.i(this, "isInbandRingingEnabled: activeDevice: " + activeDevice);
+ if (mBluetoothRouteManager.isCachedLeAudioDevice(activeDevice)) {
+ if (mBluetoothLeAudioService == null) {
+ Log.i(this, "isInbandRingingEnabled: no leaudio service available.");
+ return false;
+ }
+ int groupId = mBluetoothLeAudioService.getGroupId(activeDevice);
+ return mBluetoothLeAudioService.isInbandRingtoneEnabled(groupId);
+ } else {
+ if (mBluetoothHeadset == null) {
+ Log.i(this, "isInbandRingingEnabled: no headset service available.");
+ return false;
+ }
+ return mBluetoothHeadset.isInbandRingingEnabled();
+ }
+ }
+
public void dump(IndentingPrintWriter pw) {
mLocalLog.dump(pw);
}
diff --git a/src/com/android/server/telecom/bluetooth/BluetoothRouteManager.java b/src/com/android/server/telecom/bluetooth/BluetoothRouteManager.java
index 1945e28..7966f73 100644
--- a/src/com/android/server/telecom/bluetooth/BluetoothRouteManager.java
+++ b/src/com/android/server/telecom/bluetooth/BluetoothRouteManager.java
@@ -850,12 +850,7 @@
*/
@VisibleForTesting
public boolean isInbandRingingEnabled() {
- BluetoothHeadset bluetoothHeadset = mDeviceManager.getBluetoothHeadset();
- if (bluetoothHeadset == null) {
- Log.i(this, "isInbandRingingEnabled: no headset service available.");
- return false;
- }
- return bluetoothHeadset.isInbandRingingEnabled();
+ return mDeviceManager.isInbandRingingEnabled();
}
private boolean addDevice(String address) {
diff --git a/src/com/android/server/telecom/callredirection/CallRedirectionProcessor.java b/src/com/android/server/telecom/callredirection/CallRedirectionProcessor.java
index adeb311..2f057b0 100644
--- a/src/com/android/server/telecom/callredirection/CallRedirectionProcessor.java
+++ b/src/com/android/server/telecom/callredirection/CallRedirectionProcessor.java
@@ -329,8 +329,7 @@
} else {
performCarrierCallRedirection();
}
- }
- if (mIsCarrierRedirectionPending) {
+ } else if (mIsCarrierRedirectionPending) {
Log.addEvent(mCall, LogUtils.Events.REDIRECTION_COMPLETED_CARRIER);
mIsCarrierRedirectionPending = false;
mCallsManager.onCallRedirectionComplete(mCall, mDestinationUri,
diff --git a/src/com/android/server/telecom/settings/EnhancedCallBlockingFragment.java b/src/com/android/server/telecom/settings/EnhancedCallBlockingFragment.java
index c0bb56a..b1a1b0e 100644
--- a/src/com/android/server/telecom/settings/EnhancedCallBlockingFragment.java
+++ b/src/com/android/server/telecom/settings/EnhancedCallBlockingFragment.java
@@ -45,6 +45,7 @@
private static final String BLOCK_UNAVAILABLE_NUMBERS_KEY =
"block_unavailable_calls_setting";
private boolean mIsCombiningRestrictedAndUnknownOption = false;
+ private boolean mIsCombiningUnavailableAndUnknownOption = false;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -94,11 +95,17 @@
R.bool.combine_options_to_block_restricted_and_unknown_callers);
if (mIsCombiningRestrictedAndUnknownOption) {
Preference restricted_pref = findPreference(BLOCK_RESTRICTED_NUMBERS_KEY);
- Preference unavailable_pref = findPreference(BLOCK_UNAVAILABLE_NUMBERS_KEY);
screen.removePreference(restricted_pref);
- screen.removePreference(unavailable_pref);
Log.i(this, "onCreate: removed block restricted preference.");
}
+
+ mIsCombiningUnavailableAndUnknownOption = getResources().getBoolean(
+ R.bool.combine_options_to_block_unavailable_and_unknown_callers);
+ if (mIsCombiningUnavailableAndUnknownOption) {
+ Preference unavailable_pref = findPreference(BLOCK_UNAVAILABLE_NUMBERS_KEY);
+ screen.removePreference(unavailable_pref);
+ Log.i(this, "onCreate: removed block unavailable preference.");
+ }
}
/**
@@ -136,14 +143,20 @@
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
- if (mIsCombiningRestrictedAndUnknownOption
- && preference.getKey().equals(BLOCK_UNKNOWN_NUMBERS_KEY)) {
- Log.i(this, "onPreferenceChange: changing %s and %s to %b",
- preference.getKey(), BLOCK_RESTRICTED_NUMBERS_KEY, (boolean) objValue);
- BlockedNumbersUtil.setEnhancedBlockSetting(getActivity(), BLOCK_RESTRICTED_NUMBERS_KEY,
- (boolean) objValue);
- BlockedNumbersUtil.setEnhancedBlockSetting(getActivity(),
- BLOCK_UNAVAILABLE_NUMBERS_KEY, (boolean) objValue);
+ if (preference.getKey().equals(BLOCK_UNKNOWN_NUMBERS_KEY)) {
+ if (mIsCombiningRestrictedAndUnknownOption) {
+ Log.i(this, "onPreferenceChange: changing %s and %s to %b",
+ preference.getKey(), BLOCK_RESTRICTED_NUMBERS_KEY, (boolean) objValue);
+ BlockedNumbersUtil.setEnhancedBlockSetting(getActivity(),
+ BLOCK_RESTRICTED_NUMBERS_KEY, (boolean) objValue);
+ }
+
+ if (mIsCombiningUnavailableAndUnknownOption) {
+ Log.i(this, "onPreferenceChange: changing %s and %s to %b",
+ preference.getKey(), BLOCK_UNAVAILABLE_NUMBERS_KEY, (boolean) objValue);
+ BlockedNumbersUtil.setEnhancedBlockSetting(getActivity(),
+ BLOCK_UNAVAILABLE_NUMBERS_KEY, (boolean) objValue);
+ }
}
BlockedNumbersUtil.setEnhancedBlockSetting(getActivity(), preference.getKey(),
(boolean) objValue);
diff --git a/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java b/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java
index c1025e1..c37d136 100644
--- a/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/BluetoothDeviceManagerTest.java
@@ -16,12 +16,15 @@
package com.android.server.telecom.tests;
+import static android.media.AudioDeviceInfo.TYPE_BUILTIN_SPEAKER;
+
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothHeadset;
import android.bluetooth.BluetoothHearingAid;
import android.bluetooth.BluetoothLeAudio;
import android.bluetooth.BluetoothProfile;
+import android.content.BroadcastReceiver;
import android.content.Intent;
import android.media.AudioDeviceInfo;
import android.media.AudioManager;
@@ -43,12 +46,14 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -66,6 +71,7 @@
@Mock BluetoothHearingAid mBluetoothHearingAid;
@Mock BluetoothLeAudio mBluetoothLeAudio;
@Mock AudioManager mockAudioManager;
+ @Mock AudioDeviceInfo mSpeakerInfo;
BluetoothDeviceManager mBluetoothDeviceManager;
BluetoothProfile.ServiceListener serviceListenerUnderTest;
@@ -117,6 +123,8 @@
ArgumentCaptor.forClass(BluetoothLeAudio.Callback.class);
mBluetoothDeviceManager.setLeAudioServiceForTesting(mBluetoothLeAudio);
verify(mBluetoothLeAudio).registerCallback(any(), leAudioCallbacksTest.capture());
+
+ when(mSpeakerInfo.getType()).thenReturn(TYPE_BUILTIN_SPEAKER);
}
@Override
@@ -500,14 +508,39 @@
when(mockAudioManager.getAvailableCommunicationDevices())
.thenReturn(devices);
+ when(mockAudioManager.setCommunicationDevice(eq(mockAudioDeviceInfo)))
+ .thenReturn(true);
mBluetoothDeviceManager.setHearingAidCommunicationDevice();
- when(mockAudioManager.getCommunicationDevice()).thenReturn(null);
+ when(mockAudioManager.getCommunicationDevice()).thenReturn(mSpeakerInfo);
mBluetoothDeviceManager.clearHearingAidCommunicationDevice();
verify(mRouteManager).onAudioLost(eq(DEVICE_ADDRESS_1));
assertFalse(mBluetoothDeviceManager.isHearingAidSetAsCommunicationDevice());
}
+ @SmallTest
+ @Test
+ public void testInBandRingingEnabledForLeDevice() {
+ when(mBluetoothHeadset.isInbandRingingEnabled()).thenReturn(false);
+ when(mBluetoothLeAudio.isInbandRingtoneEnabled(1)).thenReturn(true);
+ when(mBluetoothLeAudio.getGroupId(eq(device3))).thenReturn(1);
+ receiverUnderTest.onReceive(mContext,
+ buildConnectionActionIntent(BluetoothHeadset.STATE_CONNECTED, device1,
+ BluetoothDeviceManager.DEVICE_TYPE_HEADSET));
+ receiverUnderTest.onReceive(mContext,
+ buildConnectionActionIntent(BluetoothHeadset.STATE_CONNECTED, device2,
+ BluetoothDeviceManager.DEVICE_TYPE_HEADSET));
+ receiverUnderTest.onReceive(mContext,
+ buildConnectionActionIntent(BluetoothHeadset.STATE_CONNECTED, device3,
+ BluetoothDeviceManager.DEVICE_TYPE_LE_AUDIO));
+ leAudioCallbacksTest.getValue().onGroupNodeAdded(device3, 1);
+ when(mBluetoothLeAudio.getConnectedGroupLeadDevice(1)).thenReturn(device3);
+ when(mRouteManager.getBluetoothAudioConnectedDevice()).thenReturn(device3);
+ when(mRouteManager.isCachedLeAudioDevice(eq(device3))).thenReturn(true);
+ assertEquals(3, mBluetoothDeviceManager.getNumConnectedDevices());
+ assertTrue(mBluetoothDeviceManager.isInbandRingingEnabled());
+ }
+
private Intent buildConnectionActionIntent(int state, BluetoothDevice device, int deviceType) {
String intentString;
diff --git a/tests/src/com/android/server/telecom/tests/CallsManagerTest.java b/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
index e7d0a26..160114a 100644
--- a/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/CallsManagerTest.java
@@ -167,11 +167,9 @@
private static final Uri TEST_ADDRESS = Uri.parse("tel:555-1212");
private static final Uri TEST_ADDRESS2 = Uri.parse("tel:555-1213");
private static final Uri TEST_ADDRESS3 = Uri.parse("tel:555-1214");
- private static final Map<Uri, PhoneAccountHandle> CONTACT_PREFERRED_ACCOUNT =
- new HashMap<Uri, PhoneAccountHandle>() {{
- put(TEST_ADDRESS2, SIM_1_HANDLE);
- put(TEST_ADDRESS3, SIM_2_HANDLE);
- }};
+ private static final Map<Uri, PhoneAccountHandle> CONTACT_PREFERRED_ACCOUNT = Map.of(
+ TEST_ADDRESS2, SIM_1_HANDLE,
+ TEST_ADDRESS3, SIM_2_HANDLE);
private static int sCallId = 1;
private final TelecomSystem.SyncRoot mLock = new TelecomSystem.SyncRoot() { };
diff --git a/tests/src/com/android/server/telecom/tests/ProximitySensorManagerTest.java b/tests/src/com/android/server/telecom/tests/ProximitySensorManagerTest.java
index eafaa53..807b7cf 100644
--- a/tests/src/com/android/server/telecom/tests/ProximitySensorManagerTest.java
+++ b/tests/src/com/android/server/telecom/tests/ProximitySensorManagerTest.java
@@ -31,7 +31,7 @@
import org.junit.runners.JUnit4;
import org.mockito.Mock;
-import java.util.ArrayList;
+import java.util.List;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
@@ -67,9 +67,7 @@
@SmallTest
@Test
public void testTurnOnProximityWithCallsActive() throws Exception {
- when(mCallsManager.getCalls()).thenReturn(new ArrayList<Call>(){{
- add(mCall);
- }});
+ when(mCallsManager.getCalls()).thenReturn(List.of(mCall));
when(mWakeLockAdapter.isHeld()).thenReturn(false);
mProximitySensorManager.turnOn();
@@ -80,7 +78,7 @@
@SmallTest
@Test
public void testTurnOnProximityWithNoCallsActive() throws Exception {
- when(mCallsManager.getCalls()).thenReturn(new ArrayList<Call>());
+ when(mCallsManager.getCalls()).thenReturn(List.of());
when(mWakeLockAdapter.isHeld()).thenReturn(false);
mProximitySensorManager.turnOn();
@@ -102,9 +100,7 @@
@SmallTest
@Test
public void testCallRemovedFromCallsManagerCallsActive() throws Exception {
- when(mCallsManager.getCalls()).thenReturn(new ArrayList<Call>(){{
- add(mCall);
- }});
+ when(mCallsManager.getCalls()).thenReturn(List.of(mCall));
when(mWakeLockAdapter.isHeld()).thenReturn(true);
mProximitySensorManager.onCallRemoved(mock(Call.class));
@@ -115,7 +111,7 @@
@SmallTest
@Test
public void testCallRemovedFromCallsManagerNoCallsActive() throws Exception {
- when(mCallsManager.getCalls()).thenReturn(new ArrayList<Call>());
+ when(mCallsManager.getCalls()).thenReturn(List.of());
when(mWakeLockAdapter.isHeld()).thenReturn(true);
mProximitySensorManager.onCallRemoved(mock(Call.class));
diff --git a/tests/src/com/android/server/telecom/tests/SessionTest.java b/tests/src/com/android/server/telecom/tests/SessionTest.java
index 4be3dad..f38618c 100644
--- a/tests/src/com/android/server/telecom/tests/SessionTest.java
+++ b/tests/src/com/android/server/telecom/tests/SessionTest.java
@@ -144,6 +144,7 @@
* Ensure creating two sessions that are parent/child of each other does not lead to a crash
* or infinite recursion when using Session#toString.
*/
+ @SuppressWarnings("ReturnValueIgnored")
@SmallTest
@Test
public void testRecursion_toString() {
@@ -159,7 +160,6 @@
// Make sure calling these methods does not result in a crash
try {
-
parentSession.toString();
childSession.toString();
} catch (Exception e) {
@@ -176,6 +176,7 @@
* Ensure creating two sessions and setting the child as the parent to itself doesn't cause a
* crash due to infinite recursion.
*/
+ @SuppressWarnings("ReturnValueIgnored")
@SmallTest
@Test
public void testRecursion_toString_childCircDep() {
@@ -237,6 +238,7 @@
* Ensure creating two sessions that are parent/child of each other does not lead to a crash
* or infinite recursion in the general case.
*/
+ @SuppressWarnings("ReturnValueIgnored")
@SmallTest
@Test
public void testRecursion() {
diff --git a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
index 90bdc80..f6f2ae2 100644
--- a/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
+++ b/tests/src/com/android/server/telecom/tests/TelecomServiceImplTest.java
@@ -372,14 +372,9 @@
@SmallTest
@Test
public void testGetCallCapablePhoneAccounts() throws RemoteException {
- List<PhoneAccountHandle> fullPHList = new ArrayList<PhoneAccountHandle>() {{
- add(TEL_PA_HANDLE_16);
- add(SIP_PA_HANDLE_17);
- }};
+ List<PhoneAccountHandle> fullPHList = List.of(TEL_PA_HANDLE_16, SIP_PA_HANDLE_17);
+ List<PhoneAccountHandle> smallPHList = List.of(SIP_PA_HANDLE_17);
- List<PhoneAccountHandle> smallPHList = new ArrayList<PhoneAccountHandle>() {{
- add(SIP_PA_HANDLE_17);
- }};
// Returns all phone accounts when getCallCapablePhoneAccounts is called.
when(mFakePhoneAccountRegistrar
.getCallCapablePhoneAccounts(nullable(String.class), eq(true),
@@ -401,10 +396,8 @@
@SmallTest
@Test
public void testGetCallCapablePhoneAccountsFailure() throws RemoteException {
- List<String> enforcedPermissions = new ArrayList<String>() {{
- add(READ_PHONE_STATE);
- add(READ_PRIVILEGED_PHONE_STATE);
- }};
+ List<String> enforcedPermissions = List.of(READ_PHONE_STATE, READ_PRIVILEGED_PHONE_STATE);
+
doThrow(new SecurityException()).when(mContext).enforceCallingOrSelfPermission(
argThat(new AnyStringIn(enforcedPermissions)), anyString());
@@ -422,13 +415,9 @@
@SmallTest
@Test
public void testGetPhoneAccountsSupportingScheme() throws RemoteException {
- List<PhoneAccountHandle> sipPHList = new ArrayList<PhoneAccountHandle>() {{
- add(SIP_PA_HANDLE_17);
- }};
+ List<PhoneAccountHandle> sipPHList = List.of(SIP_PA_HANDLE_17);
+ List<PhoneAccountHandle> telPHList = List.of(TEL_PA_HANDLE_16);
- List<PhoneAccountHandle> telPHList = new ArrayList<PhoneAccountHandle>() {{
- add(TEL_PA_HANDLE_16);
- }};
when(mFakePhoneAccountRegistrar
.getCallCapablePhoneAccounts(eq("tel"), anyBoolean(), any(UserHandle.class)))
.thenReturn(telPHList);
@@ -448,10 +437,8 @@
@SmallTest
@Test
public void testGetPhoneAccountsForPackage() throws RemoteException {
- List<PhoneAccountHandle> phoneAccountHandleList = new ArrayList<PhoneAccountHandle>() {{
- add(TEL_PA_HANDLE_16);
- add(SIP_PA_HANDLE_17);
- }};
+ List<PhoneAccountHandle> phoneAccountHandleList = List.of(
+ TEL_PA_HANDLE_16, SIP_PA_HANDLE_17);
when(mFakePhoneAccountRegistrar
.getPhoneAccountsForPackage(anyString(), any(UserHandle.class)))
.thenReturn(phoneAccountHandleList);
@@ -480,10 +467,10 @@
@SmallTest
@Test
public void testGetAllPhoneAccounts() throws RemoteException {
- List<PhoneAccount> phoneAccountList = new ArrayList<PhoneAccount>() {{
- add(makePhoneAccount(TEL_PA_HANDLE_16).build());
- add(makePhoneAccount(SIP_PA_HANDLE_17).build());
- }};
+ List<PhoneAccount> phoneAccountList = List.of(
+ makePhoneAccount(TEL_PA_HANDLE_16).build(),
+ makePhoneAccount(SIP_PA_HANDLE_17).build());
+
when(mFakePhoneAccountRegistrar.getAllPhoneAccounts(any(UserHandle.class)))
.thenReturn(phoneAccountList);