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

Commit 8d5dde35 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Put mobile NetworkTemplate in Intent for SearchResultTeampoline" into udc-dev am: 1d3d688a

parents 0f7889fe 1d3d688a
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();
    }
}