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

Commit 51e49b83 authored by Jack Yu's avatar Jack Yu
Browse files

Migrated DataServiceManager to the new package

Migrated DataServiceManager to the new location
and hook up to the data network controller.

Bug: 196597630
Test: Build
Change-Id: I1baf620f76ab9043d8404553123871fb1ca3604c
parent a28c8e08
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@ import android.telephony.data.DataProfile;
import android.telephony.data.DataService;
import android.telephony.data.DataService;
import android.util.IndentingPrintWriter;
import android.util.IndentingPrintWriter;
import android.util.LocalLog;
import android.util.LocalLog;
import android.util.SparseArray;


import com.android.internal.telephony.Phone;
import com.android.internal.telephony.Phone;
import com.android.internal.util.State;
import com.android.internal.util.State;
@@ -90,6 +91,8 @@ public class DataNetwork extends StateMachine {
    /** The current transport of the data network. Could be WWAN or WLAN. */
    /** The current transport of the data network. Could be WWAN or WLAN. */
    private @TransportType int mTransport;
    private @TransportType int mTransport;


    private final @NonNull SparseArray<DataServiceManager> mDataServiceManagers;

    /** The network agent associated with this data network. */
    /** The network agent associated with this data network. */
    private final TelephonyNetworkAgent mNetworkAgent;
    private final TelephonyNetworkAgent mNetworkAgent;


@@ -114,17 +117,20 @@ public class DataNetwork extends StateMachine {
     * @param phone The phone instance.
     * @param phone The phone instance.
     * @param looper The looper to be used by the state machine. Currently the handler thread is the
     * @param looper The looper to be used by the state machine. Currently the handler thread is the
     * phone process's main thread.
     * phone process's main thread.
     * @param dataServiceManagers Data service managers.
     * @param transport The initial transport.
     * @param transport The initial transport.
     * @param dataProfile The data profile for establishing the data network.
     * @param dataProfile The data profile for establishing the data network.
     */
     */
    public DataNetwork(@NonNull Phone phone, @NonNull Looper looper, @TransportType int transport,
    public DataNetwork(@NonNull Phone phone, @NonNull Looper looper,
            @NonNull DataProfile dataProfile) {
            @NonNull SparseArray<DataServiceManager> dataServiceManagers,
            @TransportType int transport, @NonNull DataProfile dataProfile) {
        super("DataNetwork", looper);
        super("DataNetwork", looper);
        mPhone = phone;
        mPhone = phone;
        mTransport = transport;
        mTransport = transport;
        mLogTag = "DN-" + sId.incrementAndGet() + "-"
        mLogTag = "DN-" + sId.incrementAndGet() + "-"
                + ((transport == TRANSPORT_TYPE_WWAN) ? "C" : "I");
                + ((transport == TRANSPORT_TYPE_WWAN) ? "C" : "I");


        mDataServiceManagers = dataServiceManagers;
        mDataProfile = dataProfile;
        mDataProfile = dataProfile;
        mNetworkAgent = new TelephonyNetworkAgent(mPhone, looper, this);
        mNetworkAgent = new TelephonyNetworkAgent(mPhone, looper, this);


+68 −0
Original line number Original line Diff line number Diff line
@@ -17,17 +17,24 @@
package com.android.internal.telephony.data;
package com.android.internal.telephony.data;


import android.annotation.NonNull;
import android.annotation.NonNull;
import android.annotation.StringDef;
import android.os.Handler;
import android.os.Handler;
import android.os.Looper;
import android.os.Looper;
import android.os.Message;
import android.os.Message;
import android.os.SystemProperties;
import android.telephony.AccessNetworkConstants;
import android.util.IndentingPrintWriter;
import android.util.IndentingPrintWriter;
import android.util.LocalLog;
import android.util.LocalLog;
import android.util.SparseArray;


import com.android.internal.telephony.Phone;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.RIL;
import com.android.telephony.Rlog;
import com.android.telephony.Rlog;


import java.io.FileDescriptor;
import java.io.FileDescriptor;
import java.io.PrintWriter;
import java.io.PrintWriter;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.List;
import java.util.List;


@@ -36,6 +43,36 @@ import java.util.List;
 * create and manage all the mobile data networks.
 * create and manage all the mobile data networks.
 */
 */
public class DataNetworkController extends Handler {
public class DataNetworkController extends Handler {
    public static final String SYSTEM_PROPERTIES_IWLAN_OPERATION_MODE =
            "ro.telephony.iwlan_operation_mode";

    @Retention(RetentionPolicy.SOURCE)
    @StringDef(prefix = {"IWLAN_OPERATION_MODE_"},
            value = {
                    IWLAN_OPERATION_MODE_DEFAULT,
                    IWLAN_OPERATION_MODE_LEGACY,
                    IWLAN_OPERATION_MODE_AP_ASSISTED})
    public @interface IwlanOperationMode {}

    /**
     * IWLAN default mode. On device that has IRadio 1.4 or above, it means
     * {@link #IWLAN_OPERATION_MODE_AP_ASSISTED}. On device that has IRadio 1.3 or below, it means
     * {@link #IWLAN_OPERATION_MODE_LEGACY}.
     */
    public static final String IWLAN_OPERATION_MODE_DEFAULT = "default";

    /**
     * IWLAN legacy mode. IWLAN is completely handled by the modem, and when the device is on
     * IWLAN, modem reports IWLAN as a RAT.
     */
    public static final String IWLAN_OPERATION_MODE_LEGACY = "legacy";

    /**
     * IWLAN application processor assisted mode. IWLAN is handled by the bound IWLAN data service
     * and network service separately.
     */
    public static final String IWLAN_OPERATION_MODE_AP_ASSISTED = "AP-assisted";

    private final Phone mPhone;
    private final Phone mPhone;
    private final String mLogTag;
    private final String mLogTag;
    private final LocalLog mLocalLog = new LocalLog(128);
    private final LocalLog mLocalLog = new LocalLog(128);
@@ -45,6 +82,8 @@ public class DataNetworkController extends Handler {
    private final @NonNull DataProfileManager mDataProfileManager;
    private final @NonNull DataProfileManager mDataProfileManager;
    private final @NonNull DataStallMonitor mDataStallMonitor;
    private final @NonNull DataStallMonitor mDataStallMonitor;
    private final @NonNull DataScheduler mDataScheduler;
    private final @NonNull DataScheduler mDataScheduler;
    private final @NonNull SparseArray<DataServiceManager> mDataServiceManagers =
            new SparseArray<>();


    /**
    /**
     * The current data network list, including the ones that are connected, connecting, or
     * The current data network list, including the ones that are connected, connecting, or
@@ -69,6 +108,13 @@ public class DataNetworkController extends Handler {
        mPhone = phone;
        mPhone = phone;
        mLogTag = "DNC-" + mPhone.getPhoneId();
        mLogTag = "DNC-" + mPhone.getPhoneId();


        mDataServiceManagers.put(AccessNetworkConstants.TRANSPORT_TYPE_WWAN,
                new DataServiceManager(mPhone, looper, AccessNetworkConstants.TRANSPORT_TYPE_WWAN));
        if (!isIwlanLegacyMode()) {
            mDataServiceManagers.put(AccessNetworkConstants.TRANSPORT_TYPE_WLAN,
                    new DataServiceManager(mPhone, looper,
                            AccessNetworkConstants.TRANSPORT_TYPE_WWAN));
        }
        mDataConfigManager = new DataConfigManager(mPhone, looper);
        mDataConfigManager = new DataConfigManager(mPhone, looper);
        mDataSettingsManager = new DataSettingsManager(mPhone, looper);
        mDataSettingsManager = new DataSettingsManager(mPhone, looper);
        mDataProfileManager = new DataProfileManager(mPhone, looper);
        mDataProfileManager = new DataProfileManager(mPhone, looper);
@@ -88,6 +134,26 @@ public class DataNetworkController extends Handler {
        return mDataConfigManager;
        return mDataConfigManager;
    }
    }


    /**
     * @return {@code true} if the device operates in IWLAN legacy mode, otherwise {@code false}. In
     * legacy mode, IWLAN registration state is reported through cellular
     * {@link android.telephony.NetworkRegistrationInfo}.
     */
    public boolean isIwlanLegacyMode() {
        // Get IWLAN operation mode from the system property. If the system property is configured
        // to default or not configured, the mode is tied to IRadio version. For 1.4 or above, it's
        // AP-assisted mode, for 1.3 or below, it's legacy mode.
        String mode = SystemProperties.get(SYSTEM_PROPERTIES_IWLAN_OPERATION_MODE);

        if (mode.equals(IWLAN_OPERATION_MODE_AP_ASSISTED)) {
            return false;
        } else if (mode.equals(IWLAN_OPERATION_MODE_LEGACY)) {
            return true;
        }

        return mPhone.getHalVersion().less(RIL.RADIO_HAL_VERSION_1_4);
    }

    /**
    /**
     * Log debug messages.
     * Log debug messages.
     * @param s debug messages
     * @param s debug messages
@@ -124,6 +190,8 @@ public class DataNetworkController extends Handler {
        IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, "  ");
        IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, "  ");
        pw.println(DataNetworkController.class.getSimpleName() + "-" + mPhone.getPhoneId() + ":");
        pw.println(DataNetworkController.class.getSimpleName() + "-" + mPhone.getPhoneId() + ":");
        pw.increaseIndent();
        pw.increaseIndent();
        pw.println("IWLAN operation mode="
                + SystemProperties.get(SYSTEM_PROPERTIES_IWLAN_OPERATION_MODE));
        pw.println("Current data networks:");
        pw.println("Current data networks:");
        pw.increaseIndent();
        pw.increaseIndent();
        for (DataNetwork dn : mDataNetworkList) {
        for (DataNetwork dn : mDataNetworkList) {
+948 −0

File added.

Preview size limit exceeded, changes collapsed.