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

Commit 1d3d688a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Put mobile NetworkTemplate in Intent for SearchResultTeampoline" into udc-dev

parents 4951384b 5cb2a1fa
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import android.icu.util.MeasureUnit;
import android.net.NetworkPolicy;
import android.net.NetworkTemplate;
import android.os.Bundle;
import android.provider.Settings;
import android.text.method.NumberKeyListener;
import android.util.Log;
import android.view.LayoutInflater;
@@ -54,6 +55,7 @@ import com.android.settingslib.search.SearchIndexable;

import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Optional;
import java.util.TimeZone;

@SearchIndexable
@@ -115,6 +117,18 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements

        Bundle args = getArguments();
        mNetworkTemplate = args.getParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE);
        if (mNetworkTemplate == null && getIntent() != null) {
            mNetworkTemplate = getIntent().getParcelableExtra(Settings.EXTRA_NETWORK_TEMPLATE);
        }

        if (mNetworkTemplate == null) {
            Optional<NetworkTemplate> mobileNetworkTemplateFromSim =
                    DataUsageUtils.getMobileNetworkTemplateFromSubId(context, getIntent());
            if (mobileNetworkTemplateFromSim.isPresent()) {
                mNetworkTemplate = mobileNetworkTemplateFromSim.get();
            }
        }

        if (mNetworkTemplate == null) {
            mNetworkTemplate = DataUsageUtils.getDefaultTemplate(context,
                DataUsageUtils.getDefaultSubscriptionId(context));
+9 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ import com.android.settingslib.net.UidDetailProvider;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;

/**
 * Panel showing data usage history across various networks, including options
@@ -266,6 +267,14 @@ public class DataUsageList extends DataUsageBaseFragment
            mSubId = intent.getIntExtra(Settings.EXTRA_SUB_ID,
                    SubscriptionManager.INVALID_SUBSCRIPTION_ID);
            mTemplate = intent.getParcelableExtra(Settings.EXTRA_NETWORK_TEMPLATE);

            if (mTemplate == null) {
                Optional<NetworkTemplate> mobileNetworkTemplateFromSim =
                        DataUsageUtils.getMobileNetworkTemplateFromSubId(getContext(), getIntent());
                if (mobileNetworkTemplateFromSim.isPresent()) {
                    mTemplate = mobileNetworkTemplateFromSim.get();
                }
            }
        }
    }

+21 −0
Original line number Diff line number Diff line
@@ -22,11 +22,13 @@ import static android.telephony.TelephonyManager.SIM_STATE_READY;
import android.app.usage.NetworkStats.Bucket;
import android.app.usage.NetworkStatsManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkTemplate;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -39,6 +41,7 @@ import com.android.settings.datausage.lib.DataUsageLib;
import com.android.settings.network.ProxySubscriptionManager;

import java.util.List;
import java.util.Optional;

/**
 * Utility methods for data usage classes.
@@ -193,4 +196,22 @@ public final class DataUsageUtils extends com.android.settingslib.net.DataUsageU
        }
    }

    /**
     * Returns a mobile NetworkTemplate if EXTRA_SUB_ID of the Intent is available and the subId
     * is valid & hasMobileData. Otherwise, returns empty data.
     */
    public static Optional<NetworkTemplate> getMobileNetworkTemplateFromSubId(Context context,
            Intent intent) {
        if (intent == null || !intent.hasExtra(Settings.EXTRA_SUB_ID)) {
            return Optional.empty();
        }

        int subId = intent.getIntExtra(Settings.EXTRA_SUB_ID,
                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
        if (SubscriptionManager.isValidSubscriptionId(subId) && hasMobileData(context)) {
            return Optional.of(DataUsageLib.getMobileTemplate(context, subId));
        }

        return  Optional.empty();
    }
}