diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-09-26 07:30:29 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-09-26 07:30:29 +0000 |
commit | 5c05696ae8183f79fb7346dca65adcd86b9b259d (patch) | |
tree | d4e41b1870de01ab7d166e3661dc2b7312eb44b9 | |
parent | 9f8fa8f75d7a73e6a0404c826d4c9c7568a78bec (diff) | |
parent | ea9322395fa8977ea60793a6deb04a7a7cc7ab4d (diff) | |
download | android_packages_services_Telecomm-5c05696ae8183f79fb7346dca65adcd86b9b259d.tar.gz android_packages_services_Telecomm-5c05696ae8183f79fb7346dca65adcd86b9b259d.tar.bz2 android_packages_services_Telecomm-5c05696ae8183f79fb7346dca65adcd86b9b259d.zip |
release-request-787c7134-f106-4590-90f7-0fb685b91259-for-git_oc-mr1-release-4360035 snap-temp-L24200000106060350
Change-Id: I6a835b48efef1d13f9d0cbefd6132f44f9808ac4
3 files changed, 41 insertions, 16 deletions
diff --git a/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java b/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java index 74ee668d..c592fcd1 100644 --- a/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java +++ b/src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java @@ -30,6 +30,7 @@ import android.os.UserHandle; import android.telecom.GatewayInfo; import android.telecom.Log; import android.telecom.PhoneAccount; +import android.telecom.PhoneAccountHandle; import android.telecom.TelecomManager; import android.telecom.VideoProfile; import android.telephony.DisconnectCause; @@ -269,6 +270,21 @@ public class NewOutgoingCallIntentBroadcaster { return DisconnectCause.INVALID_NUMBER; } + // True for all managed calls, false for self-managed calls. + boolean sendNewOutgoingCallBroadcast = true; + PhoneAccountHandle targetPhoneAccount = mIntent.getParcelableExtra( + TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE); + if (targetPhoneAccount != null) { + PhoneAccount phoneAccount = + mCallsManager.getPhoneAccountRegistrar().getPhoneAccountUnchecked( + targetPhoneAccount); + if (phoneAccount != null && phoneAccount.isSelfManaged()) { + callImmediately = true; + sendNewOutgoingCallBroadcast = false; + Log.i(this, "Skipping NewOutgoingCallBroadcast for self-managed call."); + } + } + if (callImmediately) { Log.i(this, "Placing call immediately instead of waiting for " + " OutgoingCallBroadcastReceiver: %s", intent); @@ -287,9 +303,11 @@ public class NewOutgoingCallIntentBroadcaster { // initiate the call again because of the presence of the EXTRA_ALREADY_CALLED extra. } - UserHandle targetUser = mCall.getInitiatingUser(); - Log.i(this, "Sending NewOutgoingCallBroadcast for %s to %s", mCall, targetUser); - broadcastIntent(intent, number, !callImmediately, targetUser); + if (sendNewOutgoingCallBroadcast) { + UserHandle targetUser = mCall.getInitiatingUser(); + Log.i(this, "Sending NewOutgoingCallBroadcast for %s to %s", mCall, targetUser); + broadcastIntent(intent, number, !callImmediately, targetUser); + } return DisconnectCause.NOT_DISCONNECTED; } diff --git a/src/com/android/server/telecom/settings/BlockedNumbersAdapter.java b/src/com/android/server/telecom/settings/BlockedNumbersAdapter.java index 705e0311..1278a4b4 100644 --- a/src/com/android/server/telecom/settings/BlockedNumbersAdapter.java +++ b/src/com/android/server/telecom/settings/BlockedNumbersAdapter.java @@ -41,12 +41,9 @@ public class BlockedNumbersAdapter extends SimpleCursorAdapter { super.bindView(view, context, cursor); final String rawNumber = cursor.getString(cursor.getColumnIndex( BlockedNumberContract.BlockedNumbers.COLUMN_ORIGINAL_NUMBER)); - String formattedNumber = PhoneNumberUtils.formatNumber(rawNumber, - BlockedNumbersUtil.getLocaleDefaultToUS()); - final String finalFormattedNumber = formattedNumber == null ? rawNumber : formattedNumber; - + final String formattedNumber = BlockedNumbersUtil.formatNumber(rawNumber); TextView numberView = (TextView) view.findViewById(R.id.blocked_number); - Spannable numberSpannable = new SpannableString(finalFormattedNumber); + Spannable numberSpannable = new SpannableString(formattedNumber); PhoneNumberUtils.addTtsSpan(numberSpannable, 0, numberSpannable.length()); numberView.setText(numberSpannable); @@ -54,7 +51,7 @@ public class BlockedNumbersAdapter extends SimpleCursorAdapter { deleteButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - showDeleteBlockedNumberDialog(context, rawNumber, finalFormattedNumber); + showDeleteBlockedNumberDialog(context, rawNumber, formattedNumber); } }); } diff --git a/src/com/android/server/telecom/settings/BlockedNumbersUtil.java b/src/com/android/server/telecom/settings/BlockedNumbersUtil.java index 5d2e2382..b75c4b3a 100644 --- a/src/com/android/server/telecom/settings/BlockedNumbersUtil.java +++ b/src/com/android/server/telecom/settings/BlockedNumbersUtil.java @@ -18,11 +18,11 @@ package com.android.server.telecom.settings; import android.content.Context; import android.telephony.PhoneNumberUtils; +import android.text.BidiFormatter; import android.text.Spannable; import android.text.SpannableString; +import android.text.TextDirectionHeuristics; import android.widget.Toast; -import com.android.server.telecom.R; - import java.util.Locale; public final class BlockedNumbersUtil { @@ -40,18 +40,28 @@ public final class BlockedNumbersUtil { } /** + * Attempts to format the number, or returns the original number if it is not formattable. Also + * wraps the returned number as LTR. + */ + public static String formatNumber(String number){ + String formattedNumber = PhoneNumberUtils.formatNumber(number, getLocaleDefaultToUS()); + return BidiFormatter.getInstance().unicodeWrap( + formattedNumber == null ? number : formattedNumber, + TextDirectionHeuristics.LTR); + } + + /** * Formats the number in the string and shows a toast for {@link Toast#LENGTH_SHORT}. * * <p>Adds the number in a TsSpan so that it reads as a phone number when talk back is on. */ public static void showToastWithFormattedNumber(Context context, int stringId, String number) { - String formattedNumber = PhoneNumberUtils.formatNumber(number, getLocaleDefaultToUS()); - String finalFormattedNumber = formattedNumber == null ? number : formattedNumber; - String message = context.getString(stringId, finalFormattedNumber); - int startingPosition = message.indexOf(finalFormattedNumber); + String formattedNumber = formatNumber(number); + String message = context.getString(stringId, formattedNumber); + int startingPosition = message.indexOf(formattedNumber); Spannable messageSpannable = new SpannableString(message); PhoneNumberUtils.addTtsSpan(messageSpannable, startingPosition, - startingPosition + finalFormattedNumber.length()); + startingPosition + formattedNumber.length()); Toast.makeText( context, messageSpannable, |