Merge "[Settings] Avoid from accessing deprecated API getLine1Number()"
diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
index 7c5eb6b..fdd9e25 100644
--- a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
@@ -25,7 +25,9 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
-import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
@@ -37,6 +39,9 @@
import com.android.internal.app.AlertActivity;
import com.android.internal.app.AlertController;
import com.android.settings.R;
+import com.android.settings.network.SubscriptionUtil;
+
+import java.util.List;
/**
* BluetoothPermissionActivity shows a dialog for accepting incoming
@@ -184,11 +189,10 @@
private View createSapDialogView() {
String mRemoteName = Utils.createRemoteName(this, mDevice);
- TelephonyManager tm = getSystemService(TelephonyManager.class);
mView = getLayoutInflater().inflate(R.layout.bluetooth_access, null);
messageView = (TextView)mView.findViewById(R.id.message);
messageView.setText(getString(R.string.bluetooth_sim_card_access_dialog_content,
- mRemoteName, mRemoteName, tm.getLine1Number()));
+ mRemoteName, mRemoteName, getAnyPhoneNumberFromSubscriptions()));
return mView;
}
@@ -247,4 +251,17 @@
public boolean onPreferenceChange(Preference preference, Object newValue) {
return true;
}
+
+ // find any phone number available from active subscriptions
+ String getAnyPhoneNumberFromSubscriptions() {
+ SubscriptionManager sm = getSystemService(SubscriptionManager.class);
+ List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(sm);
+ if ((subs == null) || (subs.size() == 0)) {
+ return "";
+ }
+ return subs.stream()
+ .map(subinfo -> SubscriptionUtil.getFormattedPhoneNumber(this, subinfo))
+ .filter(phoneNumber -> !TextUtils.isEmpty(phoneNumber))
+ .findAny().orElse("");
+ }
}