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

Commit cd65235a authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Note network interfaces based on transport" am: 8334a265

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1562876

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Iae2ae51e3819b37cf2c85ce12715978d6ba68c55
parents f8bac85e 8334a265
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@ interface IBatteryStats {
    void noteWifiBatchedScanStartedFromSource(in WorkSource ws, int csph);
    void noteWifiBatchedScanStoppedFromSource(in WorkSource ws);
    void noteWifiRadioPowerState(int powerState, long timestampNs, int uid);
    void noteNetworkInterfaceType(String iface, int type);
    void noteNetworkInterfaceForTransports(String iface, in int[] transportTypes);
    void noteNetworkStatsEnabled();
    void noteDeviceIdleMode(int mode, String activeReason, int activeUid);
    void setBatteryState(int status, int health, int plugType, int level, int temp, int volt,
+4 −5
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.hardware.SensorManager;
import android.net.ConnectivityManager;
import android.os.BatteryStats;
import android.os.BatteryStats.Uid;
import android.os.Build;
@@ -37,6 +36,7 @@ import android.os.SELinux;
import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.UserHandle;
import android.telephony.TelephonyManager;
import android.text.format.DateUtils;
import android.util.ArrayMap;
import android.util.Log;
@@ -148,12 +148,11 @@ public class BatteryStatsHelper {
    boolean mHasBluetoothPowerReporting = false;

    public static boolean checkWifiOnly(Context context) {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(
                Context.CONNECTIVITY_SERVICE);
        if (cm == null) {
        final TelephonyManager tm = context.getSystemService(TelephonyManager.class);
        if (tm == null) {
            return false;
        }
        return !cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
        return !tm.isDataCapable();
    }

    public static boolean checkHasWifiPowerReporting(BatteryStats stats, PowerProfile profile) {
+7 −4
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@
package com.android.internal.os;
import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR;
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
import static android.os.BatteryStatsManager.NUM_WIFI_STATES;
import static android.os.BatteryStatsManager.NUM_WIFI_SUPPL_STATES;
@@ -32,7 +34,6 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.database.ContentObserver;
import android.hardware.usb.UsbManager;
import android.net.ConnectivityManager;
import android.net.INetworkStatsService;
import android.net.NetworkStats;
import android.net.Uri;
@@ -101,6 +102,7 @@ import com.android.internal.util.FastPrintWriter;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.XmlUtils;
import com.android.net.module.util.NetworkCapabilitiesUtils;
import libcore.util.EmptyArray;
@@ -6099,11 +6101,12 @@ public class BatteryStatsImpl extends BatteryStats {
    }
    /** @hide */
    public void noteNetworkInterfaceType(String iface, int networkType) {
    public void noteNetworkInterfaceForTransports(String iface, int[] transportTypes) {
        if (TextUtils.isEmpty(iface)) return;
        final int displayTransport = NetworkCapabilitiesUtils.getDisplayTransport(transportTypes);
        synchronized (mModemNetworkLock) {
            if (ConnectivityManager.isNetworkTypeMobile(networkType)) {
            if (displayTransport == TRANSPORT_CELLULAR) {
                mModemIfaces = includeInStringArray(mModemIfaces, iface);
                if (DEBUG) Slog.d(TAG, "Note mobile iface " + iface + ": " + mModemIfaces);
            } else {
@@ -6113,7 +6116,7 @@ public class BatteryStatsImpl extends BatteryStats {
        }
        synchronized (mWifiNetworkLock) {
            if (ConnectivityManager.isNetworkTypeWifi(networkType)) {
            if (displayTransport == TRANSPORT_WIFI) {
                mWifiIfaces = includeInStringArray(mWifiIfaces, iface);
                if (DEBUG) Slog.d(TAG, "Note wifi iface " + iface + ": " + mWifiIfaces);
            } else {
+5 −5
Original line number Diff line number Diff line
@@ -6196,7 +6196,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
        nai.networkAgentPortalData = lp.getCaptivePortalData();
    }

    private void updateLinkProperties(NetworkAgentInfo networkAgent, LinkProperties newLp,
    private void updateLinkProperties(NetworkAgentInfo networkAgent, @NonNull LinkProperties newLp,
            @NonNull LinkProperties oldLp) {
        int netId = networkAgent.network.getNetId();

@@ -6205,8 +6205,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
        // the LinkProperties for the network are accurate.
        networkAgent.clatd.fixupLinkProperties(oldLp, newLp);

        updateInterfaces(newLp, oldLp, netId, networkAgent.networkCapabilities,
                networkAgent.networkInfo.getType());
        updateInterfaces(newLp, oldLp, netId, networkAgent.networkCapabilities);

        // update filtering rules, need to happen after the interface update so netd knows about the
        // new interface (the interface name -> index map becomes initialized)
@@ -6345,7 +6344,7 @@ public class ConnectivityService extends IConnectivityManager.Stub

    private void updateInterfaces(final @Nullable LinkProperties newLp,
            final @Nullable LinkProperties oldLp, final int netId,
            final @Nullable NetworkCapabilities caps, final int legacyType) {
            final @NonNull NetworkCapabilities caps) {
        final CompareResult<String> interfaceDiff = new CompareResult<>(
                oldLp != null ? oldLp.getAllInterfaceNames() : null,
                newLp != null ? newLp.getAllInterfaceNames() : null);
@@ -6356,7 +6355,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
                    if (DBG) log("Adding iface " + iface + " to network " + netId);
                    mNetd.networkAddInterface(netId, iface);
                    wakeupModifyInterface(iface, caps, true);
                    bs.noteNetworkInterfaceType(iface, legacyType);
                    bs.noteNetworkInterfaceForTransports(iface, caps.getTransportTypes());
                } catch (Exception e) {
                    loge("Exception adding interface: " + e);
                }
@@ -6628,6 +6627,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
     * maintained here that the NetworkAgent is not aware of (e.g., validated, captive portal,
     * and foreground status).
     */
    @NonNull
    private NetworkCapabilities mixInCapabilities(NetworkAgentInfo nai, NetworkCapabilities nc) {
        // Once a NetworkAgent is connected, complain if some immutable capabilities are removed.
         // Don't complain for VPNs since they're not driven by requests and there is no risk of
+2 −2
Original line number Diff line number Diff line
@@ -1066,9 +1066,9 @@ public final class BatteryStatsService extends IBatteryStats.Stub
    }

    @Override
    public void noteNetworkInterfaceType(String iface, int networkType) {
    public void noteNetworkInterfaceForTransports(final String iface, int[] transportTypes) {
        enforceCallingPermission();
        mStats.noteNetworkInterfaceType(iface, networkType);
        mStats.noteNetworkInterfaceForTransports(iface, transportTypes);
    }

    @Override
Loading