From f65c4530e4c6ecc95c833a2f6e56cfea914d2e92 Mon Sep 17 00:00:00 2001 From: Weng Su Date: Wed, 10 May 2023 16:34:11 +0800 Subject: [PATCH] Hide carrier service package in Wi-Fi data usage settings - When there is no specified SubscriptionInfo, Wi-Fi data usage will be displayed. In this case, the carrier service package also needs to be hidden. - Fix failing test cases in DataUsageListTest Bug: 273167633 Bug: 280021214 Test: manual test Change-Id: I66ff8a28d9e7f7db77c8a210cb36676a07fc2c7d --- .../settings/datausage/DataUsageList.java | 19 +++++++++++++------ .../settings/datausage/DataUsageListTest.java | 1 + 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/datausage/DataUsageList.java b/src/com/android/settings/datausage/DataUsageList.java index 1855c2e44e9..dd8312cccdc 100644 --- a/src/com/android/settings/datausage/DataUsageList.java +++ b/src/com/android/settings/datausage/DataUsageList.java @@ -165,11 +165,7 @@ public class DataUsageList extends DataUsageBaseFragment } processArgument(); - mMobileNetworkRepository = MobileNetworkRepository.getInstance(getContext()); - ThreadUtils.postOnBackgroundThread(() -> { - mSubscriptionInfoEntity = mMobileNetworkRepository.getSubInfoById( - String.valueOf(mSubId)); - }); + updateSubscriptionInfoEntity(); mDataStateListener = new MobileDataEnabledListener(activity, this); } @@ -294,6 +290,15 @@ public class DataUsageList extends DataUsageBaseFragment } } + @VisibleForTesting + void updateSubscriptionInfoEntity() { + mMobileNetworkRepository = MobileNetworkRepository.getInstance(getContext()); + ThreadUtils.postOnBackgroundThread(() -> { + mSubscriptionInfoEntity = mMobileNetworkRepository.getSubInfoById( + String.valueOf(mSubId)); + }); + } + /** * Implementation of {@code MobileDataEnabledListener.Client} */ @@ -503,11 +508,13 @@ public class DataUsageList extends DataUsageBaseFragment Collections.sort(items); final List packageNames = Arrays.asList(getContext().getResources().getStringArray( R.array.datausage_hiding_carrier_service_package_names)); + // When there is no specified SubscriptionInfo, Wi-Fi data usage will be displayed. + // In this case, the carrier service package also needs to be hidden. boolean shouldHidePackageName = mSubscriptionInfoEntity != null ? Arrays.stream(getContext().getResources().getIntArray( R.array.datausage_hiding_carrier_service_carrier_id)) .anyMatch(carrierId -> (carrierId == mSubscriptionInfoEntity.carrierId)) - : false; + : true; for (int i = 0; i < items.size(); i++) { UidDetail detail = mUidDetailProvider.getUidDetail(items.get(i).key, true); diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java index 951829b1738..4640efea447 100644 --- a/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java +++ b/tests/robotests/src/com/android/settings/datausage/DataUsageListTest.java @@ -104,6 +104,7 @@ public class DataUsageListTest { ReflectionHelpers.setField(mDataUsageList, "services", mNetworkServices); doReturn(mLoaderManager).when(mDataUsageList).getLoaderManager(); mDataUsageList.mLoadingViewController = mock(LoadingViewController.class); + doNothing().when(mDataUsageList).updateSubscriptionInfoEntity(); } @Test