summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-09-26 07:30:29 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-09-26 07:30:29 +0000
commit5c05696ae8183f79fb7346dca65adcd86b9b259d (patch)
treed4e41b1870de01ab7d166e3661dc2b7312eb44b9
parent9f8fa8f75d7a73e6a0404c826d4c9c7568a78bec (diff)
parentea9322395fa8977ea60793a6deb04a7a7cc7ab4d (diff)
downloadandroid_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
-rw-r--r--src/com/android/server/telecom/NewOutgoingCallIntentBroadcaster.java24
-rw-r--r--src/com/android/server/telecom/settings/BlockedNumbersAdapter.java9
-rw-r--r--src/com/android/server/telecom/settings/BlockedNumbersUtil.java24
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,