Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26810aa0 authored by Zoey Chen's avatar Zoey Chen Committed by Android (Google) Code Review
Browse files

Merge "[Settings] Hide package name if needed" into udc-dev

parents 89c64714 7beb190e
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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>
+28 −0
Original line number Diff line number Diff line
@@ -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);