Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c05696a authored by android-build-team Robot's avatar android-build-team Robot
Browse files

release-request-787c7134-f106-4590-90f7-0fb685b91259-for-git_oc-mr1-release-43...

release-request-787c7134-f106-4590-90f7-0fb685b91259-for-git_oc-mr1-release-4360035 snap-temp-L24200000106060350

Change-Id: I6a835b48efef1d13f9d0cbefd6132f44f9808ac4
parents 9f8fa8f7 ea932239
Loading
Loading
Loading
Loading
+21 −3
Original line number Diff line number Diff line
@@ -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.
        }

        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;
    }

+3 −6
Original line number Diff line number Diff line
@@ -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);
            }
        });
    }
+17 −7
Original line number Diff line number Diff line
@@ -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 {
@@ -39,19 +39,29 @@ public final class BlockedNumbersUtil {
        return countryIso;
    }

    /**
     * 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,