diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java index bf04d5ffa3d..26a661a6fbd 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -115,6 +115,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { private FingerprintManager mFingerprintManager; private boolean mCanAssumeUdfps; + private boolean mCanAssumeSidefps; @Nullable private ProgressBar mProgressBar; private ObjectAnimator mProgressAnim; private TextView mDescriptionText; @@ -156,7 +157,8 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { mFingerprintManager = getSystemService(FingerprintManager.class); final List props = mFingerprintManager.getSensorPropertiesInternal(); - mCanAssumeUdfps = props.size() == 1 && props.get(0).isAnyUdfpsType(); + mCanAssumeUdfps = props != null && props.size() == 1 && props.get(0).isAnyUdfpsType(); + mCanAssumeSidefps = props != null && props.size() == 1 && props.get(0).isAnySidefpsType(); mAccessibilityManager = getSystemService(AccessibilityManager.class); mIsAccessibilityEnabled = mAccessibilityManager.isEnabled(); @@ -567,7 +569,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { } private void showError(CharSequence error) { - if (mCanAssumeUdfps) { + if (mCanAssumeUdfps || mCanAssumeSidefps) { setHeaderText(error); // Show nothing for subtitle when getting an error message. setDescriptionText(""); diff --git a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java index 14bdd4123ab..688084f4488 100644 --- a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java +++ b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java @@ -74,6 +74,7 @@ public class NetworkProviderWifiCallingGroup extends private Map mSimCallManagerList = new HashMap<>(); private Map mWifiCallingForSubPreferences; private List mSubInfoListForWfc; + private SubscriptionsChangeListener mChangeListener; public NetworkProviderWifiCallingGroup(Context context, Lifecycle lifecycle, String preferenceGroupKey) { @@ -87,26 +88,25 @@ public class NetworkProviderWifiCallingGroup extends mTelephonyCallback = new PhoneCallStateTelephonyCallback(); } lifecycle.addObserver(this); + mChangeListener = new SubscriptionsChangeListener(context, this); } private void setSubscriptionInfoList(Context context) { mSubInfoListForWfc = new ArrayList<>( SubscriptionUtil.getActiveSubscriptions(mSubscriptionManager)); - if (mSubInfoListForWfc != null) { - mSubInfoListForWfc.removeIf(info -> { - final int subId = info.getSubscriptionId(); - setTelephonyManagerForSubscriptionId(context, subId); - setPhoneAccountHandleForSubscriptionId(context, subId); - boolean isExisted = mSubInfoListForWfc.contains(info); - boolean shouldShowWfcForSub = shouldShowWifiCallingForSub(subId); - if (!shouldShowWfcForSub && isExisted) { - return true; - } - return false; - }); - } else { - Log.d(TAG, "No active subscriptions"); - } + mSubInfoListForWfc.removeIf(info -> { + final int subId = info.getSubscriptionId(); + setTelephonyManagerForSubscriptionId(context, subId); + setPhoneAccountHandleForSubscriptionId(context, subId); + boolean isExisted = mSubInfoListForWfc.contains(info); + boolean shouldShowWfcForSub = shouldShowWifiCallingForSub(subId); + if (!shouldShowWfcForSub && isExisted) { + return true; + } + return false; + }); + Log.d(TAG, "setSubscriptionInfoList: mSubInfoListForWfc size:" + + mSubInfoListForWfc.size()); } private void setTelephonyManagerForSubscriptionId(Context context, int subId) { @@ -137,12 +137,18 @@ public class NetworkProviderWifiCallingGroup extends @OnLifecycleEvent(Event.ON_RESUME) public void onResume() { + if (mChangeListener != null) { + mChangeListener.start(); + } updateListener(); update(); } @OnLifecycleEvent(Event.ON_PAUSE) public void onPause() { + if (mChangeListener != null) { + mChangeListener.stop(); + } if ((mTelephonyCallback != null)) { mTelephonyCallback.unregister(); } @@ -176,6 +182,7 @@ public class NetworkProviderWifiCallingGroup extends private void update() { if (mPreferenceGroup == null) { + Log.d(TAG, "mPreferenceGroup == null"); return; } @@ -255,7 +262,11 @@ public class NetworkProviderWifiCallingGroup extends @Override public void onSubscriptionsChanged() { + Log.d(TAG, "onSubscriptionsChanged:"); setSubscriptionInfoList(mContext); + if (mPreferenceGroup != null) { + mPreferenceGroup.setVisible(isAvailable()); + } updateListener(); update(); } @@ -322,6 +333,7 @@ public class NetworkProviderWifiCallingGroup extends CarrierConfigManager.KEY_CARRIER_WFC_IMS_AVAILABLE_BOOL); } } + Log.d(TAG, "isWifiCallingAvailableForCarrier:" + isWifiCallingAvailableForCarrier); return isWifiCallingAvailableForCarrier; }