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

Commit fbbecbd4 authored by Meng Wang's avatar Meng Wang
Browse files

Revert "Use getPhoneNumber API to get phone number on T"

This reverts commit 35b45a77.

Reason for revert: Some carrier require to see SIM phone number in Settings UI. Revert for now and need to think of a better UI.

Bug: 228424584
Bug: 159459637
Test: build and manual test
Change-Id: I9381f7cdc6343a2e3b886d58f732587a2c8d8b7e
parent 41eed224
Loading
Loading
Loading
Loading
+8 −25
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import android.system.Os;
import android.system.StructUtsname;
import android.telephony.PhoneNumberUtils;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.BidiFormatter;
import android.text.TextDirectionHeuristics;
@@ -34,11 +33,8 @@ import android.text.TextUtils;
import android.text.format.DateFormat;
import android.util.Log;

import androidx.annotation.RequiresApi;
import androidx.annotation.VisibleForTesting;

import com.android.settingslib.utils.BuildCompatUtils;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
@@ -183,8 +179,10 @@ public class DeviceInfoUtils {
            SubscriptionInfo subscriptionInfo) {
        String formattedNumber = null;
        if (subscriptionInfo != null) {
            final String rawNumber = getRawPhoneNumber(
                    context, subscriptionInfo.getSubscriptionId());
            final TelephonyManager telephonyManager = context.getSystemService(
                    TelephonyManager.class);
            final String rawNumber = telephonyManager.createForSubscriptionId(
                    subscriptionInfo.getSubscriptionId()).getLine1Number();
            if (!TextUtils.isEmpty(rawNumber)) {
                formattedNumber = PhoneNumberUtils.formatNumber(rawNumber);
            }
@@ -196,10 +194,12 @@ public class DeviceInfoUtils {
            List<SubscriptionInfo> subscriptionInfoList) {
        StringBuilder sb = new StringBuilder();
        if (subscriptionInfoList != null) {
            final TelephonyManager telephonyManager = context.getSystemService(
                    TelephonyManager.class);
            final int count = subscriptionInfoList.size();
            for (SubscriptionInfo subscriptionInfo : subscriptionInfoList) {
                final String rawNumber = getRawPhoneNumber(
                        context, subscriptionInfo.getSubscriptionId());
                final String rawNumber = telephonyManager.createForSubscriptionId(
                        subscriptionInfo.getSubscriptionId()).getLine1Number();
                if (!TextUtils.isEmpty(rawNumber)) {
                    sb.append(PhoneNumberUtils.formatNumber(rawNumber)).append("\n");
                }
@@ -219,21 +219,4 @@ public class DeviceInfoUtils {
        final String phoneNumber = getFormattedPhoneNumber(context, subscriptionInfo);
        return BidiFormatter.getInstance().unicodeWrap(phoneNumber, TextDirectionHeuristics.LTR);
    }

    private static String getRawPhoneNumber(Context context, int subscriptionId) {
        if (BuildCompatUtils.isAtLeastT()) {
            return getRawPhoneNumberFromT(context, subscriptionId);
        } else {
            final TelephonyManager telephonyManager = context.getSystemService(
                    TelephonyManager.class);
            return telephonyManager.createForSubscriptionId(subscriptionId).getLine1Number();
        }
    }

    @RequiresApi(Build.VERSION_CODES.TIRAMISU)
    private static String getRawPhoneNumberFromT(Context context, int subscriptionId) {
        final SubscriptionManager subscriptionManager = context.getSystemService(
                    SubscriptionManager.class);
        return subscriptionManager.getPhoneNumber(subscriptionId);
    }
}