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

Commit 3ded04f4 authored by Motomu Utsumi's avatar Motomu Utsumi Committed by Gerrit Code Review
Browse files

Merge "Skip register NetworkManagementEventObserver on V+ devices" into main

parents 3d70bb0a eeaa1ded
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -85,14 +85,14 @@ oneway interface INetworkManagementEventObserver {
    /**
     * Interface data activity status is changed.
     *
     * @param transportType The transport type of the data activity change.
     * @param label label of the data activity change.
     * @param active  True if the interface is actively transmitting data, false if it is idle.
     * @param tsNanos Elapsed realtime in nanos when the state of the network interface changed.
     * @param uid Uid of this event. It represents the uid that was responsible for waking the
     *            radio. For those events that are reported by system itself, not from specific uid,
     *            use -1 for the events which means no uid.
     */
    void interfaceClassDataActivityChanged(int transportType, boolean active, long tsNanos, int uid);
    void interfaceClassDataActivityChanged(int label, boolean active, long tsNanos, int uid);

    /**
     * Information about available DNS servers has been received.
+1 −1
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ public class BaseNetworkObserver extends INetworkManagementEventObserver.Stub {
    }

    @Override
    public void interfaceClassDataActivityChanged(int transportType, boolean active, long tsNanos,
    public void interfaceClassDataActivityChanged(int label, boolean active, long tsNanos,
            int uid) {
        // default no-op
    }
+7 −2
Original line number Diff line number Diff line
@@ -17,7 +17,6 @@
package com.android.server.am;

import static android.Manifest.permission.BATTERY_STATS;
import static android.Manifest.permission.BLUETOOTH_CONNECT;
import static android.Manifest.permission.DEVICE_POWER;
import static android.Manifest.permission.NETWORK_STACK;
import static android.Manifest.permission.POWER_SAVER;
@@ -103,6 +102,7 @@ import com.android.internal.util.DumpUtils;
import com.android.internal.util.FrameworkStatsLog;
import com.android.internal.util.ParseUtils;
import com.android.internal.util.function.pooled.PooledLambda;
import com.android.modules.utils.build.SdkLevel;
import com.android.net.module.util.NetworkCapabilitiesUtils;
import com.android.server.LocalServices;
import com.android.server.Watchdog;
@@ -426,7 +426,12 @@ public final class BatteryStatsService extends IBatteryStats.Stub
                ServiceManager.getService(Context.NETWORKMANAGEMENT_SERVICE));
        final ConnectivityManager cm = mContext.getSystemService(ConnectivityManager.class);
        try {
            if (!SdkLevel.isAtLeastV()) {
                // On V+ devices, ConnectivityService calls BatteryStats API to update
                // RadioPowerState change. So BatteryStatsService registers the callback only on
                // pre V devices.
                nms.registerObserver(mActivityChangeObserver);
            }
            cm.registerDefaultNetworkCallback(mNetworkCallback);
        } catch (RemoteException e) {
            Slog.e(TAG, "Could not register INetworkManagement event observer " + e);
+2 −2
Original line number Diff line number Diff line
@@ -327,10 +327,10 @@ public class NetworkManagementService extends INetworkManagementService.Stub {
    /**
     * Notify our observers of a change in the data activity state of the interface
     */
    private void notifyInterfaceClassActivity(int type, boolean isActive, long tsNanos,
    private void notifyInterfaceClassActivity(int label, boolean isActive, long tsNanos,
            int uid) {
        invokeForAllObservers(o -> o.interfaceClassDataActivityChanged(
                type, isActive, tsNanos, uid));
                label, isActive, tsNanos, uid));
    }

    // Sync the state of the given chain with the native daemon.