diff options
author | tmfang <tmfang@google.com> | 2018-06-22 16:56:37 +0800 |
---|---|---|
committer | tmfang <tmfang@google.com> | 2018-10-01 11:15:02 +0800 |
commit | e402cb2744c0dd3c42ca80df13ec2f1d4e1f8814 (patch) | |
tree | e417682a69a9a2bed3470f6e6029c7b5acc7625d /src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java | |
parent | 3f9ded6206db318d481e88c26fcfb8f564d84ea7 (diff) | |
download | packages_apps_Settings-e402cb2744c0dd3c42ca80df13ec2f1d4e1f8814.tar.gz packages_apps_Settings-e402cb2744c0dd3c42ca80df13ec2f1d4e1f8814.tar.bz2 packages_apps_Settings-e402cb2744c0dd3c42ca80df13ec2f1d4e1f8814.zip |
Support phone number in Settings slices
- Let controller of phoner number extends BasePreferenceController,
so it can be supported showing slice view by SettingsSliceProvider.
Test: make RunSettingsRoboTests
Bug: 74900516
Change-Id: Id98e6aac981025159a0530c6e0709ba0f2ebcd15
Diffstat (limited to 'src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java')
-rw-r--r-- | src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java index 8e60b06fee..6f5f346f89 100644 --- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java +++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java @@ -29,15 +29,13 @@ import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import com.android.settings.R; -import com.android.settings.core.PreferenceControllerMixin; +import com.android.settings.core.BasePreferenceController; import com.android.settingslib.DeviceInfoUtils; -import com.android.settingslib.core.AbstractPreferenceController; import java.util.ArrayList; import java.util.List; -public class PhoneNumberPreferenceController extends AbstractPreferenceController implements - PreferenceControllerMixin { +public class PhoneNumberPreferenceController extends BasePreferenceController { private final static String KEY_PHONE_NUMBER = "phone_number"; @@ -45,21 +43,20 @@ public class PhoneNumberPreferenceController extends AbstractPreferenceControlle private final SubscriptionManager mSubscriptionManager; private final List<Preference> mPreferenceList = new ArrayList<>(); - public PhoneNumberPreferenceController(Context context) { - super(context); - mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - mSubscriptionManager = (SubscriptionManager) context.getSystemService( - Context.TELEPHONY_SUBSCRIPTION_SERVICE); + public PhoneNumberPreferenceController(Context context, String key) { + super(context, key); + mTelephonyManager = mContext.getSystemService(TelephonyManager.class); + mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class); } @Override - public String getPreferenceKey() { - return KEY_PHONE_NUMBER; + public int getAvailabilityStatus() { + return mTelephonyManager.isVoiceCapable() ? AVAILABLE : UNSUPPORTED_ON_DEVICE; } @Override - public boolean isAvailable() { - return mTelephonyManager.isVoiceCapable(); + public CharSequence getSummary() { + return getFirstPhoneNumber(); } @Override @@ -89,10 +86,26 @@ public class PhoneNumberPreferenceController extends AbstractPreferenceControlle } } + @Override + public boolean isSliceable() { + return true; + } + + private CharSequence getFirstPhoneNumber() { + final List<SubscriptionInfo> subscriptionInfoList = + mSubscriptionManager.getActiveSubscriptionInfoList(); + if (subscriptionInfoList == null) { + return mContext.getText(R.string.device_info_default); + } + + // For now, We only return first result for slice view. + return getFormattedPhoneNumber(subscriptionInfoList.get(0)); + } + private CharSequence getPhoneNumber(int simSlot) { final SubscriptionInfo subscriptionInfo = getSubscriptionInfo(simSlot); if (subscriptionInfo == null) { - return mContext.getString(R.string.device_info_default); + return mContext.getText(R.string.device_info_default); } return getFormattedPhoneNumber(subscriptionInfo); |