Merge "[Settings] Hide package name if needed" into udc-dev am: 26810aa0c5

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/22221905

Change-Id: I28e6c65719cdb4b7a615c30f53d8efd772a13c8d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Zoey Chen
2023-03-27 09:02:46 +00:00
committed by Automerger Merge Worker
2 changed files with 33 additions and 0 deletions

View File

@@ -710,4 +710,9 @@
<item></item>
</string-array>
<!-- List of packages that should be hidden for MVNO. Do not translate -->
<string-array name="datausage_hiding_carrier_service_package_names" translatable="false"/>
<!-- List of MVNO. Do not translate -->
<integer-array name="datausage_hiding_carrier_service_carrier_id" translatable="false"/>
</resources>

View File

@@ -58,15 +58,20 @@ import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.datausage.CycleAdapter.SpinnerInterface;
import com.android.settings.network.MobileDataEnabledListener;
import com.android.settings.network.MobileNetworkRepository;
import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.widget.LoadingViewController;
import com.android.settingslib.AppItem;
import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
import com.android.settingslib.net.NetworkCycleChartData;
import com.android.settingslib.net.NetworkCycleChartDataLoader;
import com.android.settingslib.net.NetworkStatsSummaryLoader;
import com.android.settingslib.net.UidDetail;
import com.android.settingslib.net.UidDetailProvider;
import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@@ -118,6 +123,8 @@ public class DataUsageList extends DataUsageBaseFragment
private Preference mUsageAmount;
private PreferenceGroup mApps;
private View mHeader;
private MobileNetworkRepository mMobileNetworkRepository;
private SubscriptionInfoEntity mSubscriptionInfoEntity;
@Override
public int getMetricsCategory() {
@@ -146,6 +153,11 @@ public class DataUsageList extends DataUsageBaseFragment
}
processArgument();
mMobileNetworkRepository = MobileNetworkRepository.getInstance(getContext());
ThreadUtils.postOnBackgroundThread(() -> {
mSubscriptionInfoEntity = mMobileNetworkRepository.getSubInfoById(
String.valueOf(mSubId));
});
mDataStateListener = new MobileDataEnabledListener(activity, this);
}
@@ -451,7 +463,23 @@ public class DataUsageList extends DataUsageBaseFragment
}
Collections.sort(items);
final List<String> packageNames = Arrays.asList(getContext().getResources().getStringArray(
R.array.datausage_hiding_carrier_service_package_names));
boolean shouldHidePackageName = mSubscriptionInfoEntity != null
? Arrays.stream(getContext().getResources().getIntArray(
R.array.datausage_hiding_carrier_service_carrier_id))
.anyMatch(carrierId -> (carrierId == mSubscriptionInfoEntity.carrierId))
: false;
for (int i = 0; i < items.size(); i++) {
UidDetail detail = mUidDetailProvider.getUidDetail(items.get(i).key, true);
// Do not show carrier service package in data usage list if it should be hidden for
// the carrier.
if (detail != null && shouldHidePackageName && packageNames.contains(
detail.packageName)) {
continue;
}
final int percentTotal = largest != 0 ? (int) (items.get(i).total * 100 / largest) : 0;
final AppDataUsagePreference preference = new AppDataUsagePreference(getContext(),
items.get(i), percentTotal, mUidDetailProvider);