From d9bc33e3b5e359ef1d4c0916efc22facb63c4b53 Mon Sep 17 00:00:00 2001 From: SongFerngWang Date: Tue, 12 Jul 2022 01:40:00 +0800 Subject: [PATCH 1/2] [WFC] The WFC UI did not refresh after the subscriptionInfoChanged Add the listener for subscriptionInfoChanged and update the Visible of the category. Bug: 233783112 Test: atest NetworkProviderWifiCallingGroupTest Change-Id: I7698915abb2f3b0ba2b40d8e78fe4e3302756c91 --- .../NetworkProviderWifiCallingGroup.java | 42 ++++++++++++------- 1 file changed, 27 insertions(+), 15 deletions(-) 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; } From dc82b6364e791f4a7827a23ab0379a28e8891716 Mon Sep 17 00:00:00 2001 From: Grace Cheng Date: Tue, 12 Jul 2022 19:19:09 +0000 Subject: [PATCH 2/2] Update SFPS Enrollment to have error messages replace title Update SFPS Enrollment to have error messages replace title rather than showing error messages underneath the fingerprint animation Fixes: 234135107 Test: Enroll finger and see error messages replace title Change-Id: I106a0147bf69d8dfab99d58e9e309cfb32c650fa --- .../biometrics/fingerprint/FingerprintEnrollEnrolling.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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("");