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

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

Merge changes I02995faf,If51829ab,I6cb09aa0 am: 43835f40

Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/2004932

Change-Id: Ia8da36f2239776220d1054c74cd9acd350ca2dc9
parents c59cb2d3 43835f40
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.net.NetworkRequest;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.RegistrantList;
import android.os.SystemProperties;
import android.telephony.AccessNetworkConstants;
import android.telephony.data.DataProfile;
@@ -145,6 +146,8 @@ public class DataNetworkController extends Handler {
    private final @NonNull NetworkRequestList mActivelyProcessedNetworkRequestList =
            new NetworkRequestList();

    private final RegistrantList mInternetValidationStatusRegistrants = new RegistrantList();

    /**
     * The sorted network request list by priority. The highest priority network request stays at
     * the head of the list. The highest priority is 100, the lowest is 0.
@@ -215,7 +218,8 @@ public class DataNetworkController extends Handler {
        mDataConfigManager = new DataConfigManager(mPhone, looper);
        mDataSettingsManager = new DataSettingsManager(mPhone, looper);
        mDataProfileManager = new DataProfileManager(mPhone, looper);
        mDataStallMonitor = new DataStallMonitor(mPhone, looper);
        mDataStallMonitor = new DataStallMonitor(mPhone, this, mDataServiceManagers
                .get(AccessNetworkConstants.TRANSPORT_TYPE_WWAN), looper);
        mDataTaskManager = new DataTaskManager(mPhone, looper);

        registerAllEvents();
@@ -406,6 +410,16 @@ public class DataNetworkController extends Handler {
        return mPhone.getHalVersion().less(RIL.RADIO_HAL_VERSION_1_4);
    }

    /**
     * Register for internet data network validation status changed event.
     *
     * @param handler The handler to handle the event.
     * @param what The event.
     */
    public void registerForInternetValidationStatusChanged(@NonNull Handler handler, int what) {
        mInternetValidationStatusRegistrants.addUnique(handler, what, null);
    }

    /**
     * Log debug messages.
     * @param s debug messages
+55 −4
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.internal.telephony.data;

import android.annotation.NonNull;
import android.os.AsyncResult;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
@@ -34,25 +35,75 @@ import java.io.PrintWriter;
 * actions to recover
 */
public class DataStallMonitor extends Handler {
    private final Phone mPhone;
    private final String mLogTag;
    private final LocalLog mLocalLog = new LocalLog(128);
    /** Event for data config updated. */
    private static final int EVENT_DATA_CONFIG_UPDATED = 1;

    /** Event for internet validation status changed. */
    private static final int EVENT_INTERNET_VALIDATION_STATUS_CHANGED = 2;


    private final @NonNull Phone mPhone;
    private final @NonNull String mLogTag;
    private final @NonNull LocalLog mLocalLog = new LocalLog(128);

    /** Data network controller */
    private final @NonNull DataNetworkController mDataNetworkController;

    /** Data config manager */
    private final @NonNull DataConfigManager mDataConfigManager;

    /** Cellular data service */
    private final @NonNull DataServiceManager mWwanDataServiceManager;

    /**
     * Constructor
     *
     * @param phone The phone instance.
     * @param dataServiceManager The WWAN data service manager.
     * @param looper The looper to be used by the handler. Currently the handler thread is the
     * phone process's main thread.
     */
    public DataStallMonitor(Phone phone, Looper looper) {
    public DataStallMonitor(@NonNull Phone phone,
            @NonNull DataNetworkController dataNetworkController,
            @NonNull DataServiceManager dataServiceManager, @NonNull Looper looper) {
        super(looper);
        mPhone = phone;
        mLogTag = "DSTMTR-" + mPhone.getPhoneId();
        mDataNetworkController = dataNetworkController;
        mWwanDataServiceManager = dataServiceManager;
        mDataConfigManager = mDataNetworkController.getDataConfigManager();

        mDataConfigManager.registerForConfigUpdate(this, EVENT_DATA_CONFIG_UPDATED);
        mDataNetworkController.registerForInternetValidationStatusChanged(this,
                EVENT_INTERNET_VALIDATION_STATUS_CHANGED);
    }

    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case EVENT_DATA_CONFIG_UPDATED:
                onDataConfigUpdated();
                break;
            case EVENT_INTERNET_VALIDATION_STATUS_CHANGED:
                AsyncResult ar = (AsyncResult) msg.obj;
                Boolean isValid = (Boolean) ar.result;
                onInternetValidationStatusChanged(isValid);
                break;
        }
    }

    /**
     * Called when data config was updated.
     */
    private void onDataConfigUpdated() {
    }

    /**
     * Called when internet validation status changed.
     *
     * @param isValid {@code true} if internet validation succeeded.
     */
    private void onInternetValidationStatusChanged(boolean isValid) {

    }