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

Commit 554b8ea3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Broadcast data call list changed for data stall" into tm-dev am: 2f8e8f2f am: ad347678

parents 311d5bc9 ad347678
Loading
Loading
Loading
Loading
+32 −4
Original line number Original line Diff line number Diff line
@@ -69,6 +69,7 @@ import java.util.Set;
import java.util.UUID;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.CountDownLatch;
import java.util.stream.Collectors;


/**
/**
 * Data service manager manages handling data requests and responses on data services (e.g.
 * Data service manager manages handling data requests and responses on data services (e.g.
@@ -115,9 +116,10 @@ public class DataServiceManager extends Handler {


    private CellularDataServiceConnection mServiceConnection;
    private CellularDataServiceConnection mServiceConnection;


    private final UUID mAnomalyUUID = UUID.fromString("fc1956de-c080-45de-8431-a1faab687110");
    private String mLastBoundPackageName;
    private String mLastBoundPackageName;


    private List<DataCallResponse> mLastDataCallResponseList;

    private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
    private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
        @Override
        @Override
        public void onReceive(Context context, Intent intent) {
        public void onReceive(Context context, Intent intent) {
@@ -141,7 +143,8 @@ public class DataServiceManager extends Handler {
            String message = "Data service " + mLastBoundPackageName +  " for transport type "
            String message = "Data service " + mLastBoundPackageName +  " for transport type "
                    + AccessNetworkConstants.transportTypeToString(mTransportType) + " died.";
                    + AccessNetworkConstants.transportTypeToString(mTransportType) + " died.";
            loge(message);
            loge(message);
            AnomalyReporter.reportAnomaly(mAnomalyUUID, message);
            AnomalyReporter.reportAnomaly(UUID.fromString("fc1956de-c080-45de-8431-a1faab687110"),
                    message);
        }
        }
    }
    }


@@ -294,13 +297,38 @@ public class DataServiceManager extends Handler {
        @Override
        @Override
        public void onRequestDataCallListComplete(@DataServiceCallback.ResultCode int resultCode,
        public void onRequestDataCallListComplete(@DataServiceCallback.ResultCode int resultCode,
                List<DataCallResponse> dataCallList) {
                List<DataCallResponse> dataCallList) {
            if (DBG) log("onRequestDataCallListComplete. resultCode = " + resultCode);
            if (DBG) {
                log("onRequestDataCallListComplete. resultCode = "
                        + DataServiceCallback.resultCodeToString(resultCode));
            }
            Message msg = mMessageMap.remove(asBinder());
            Message msg = mMessageMap.remove(asBinder());
            if (msg != null) {
                msg.getData().putParcelableList(DATA_CALL_RESPONSE, dataCallList);
            }
            sendCompleteMessage(msg, resultCode);
            sendCompleteMessage(msg, resultCode);

            // Handle data stall case on WWAN transport
            if (mTransportType == AccessNetworkConstants.TRANSPORT_TYPE_WWAN) {
                if (mLastDataCallResponseList.size() != dataCallList.size()
                        || !mLastDataCallResponseList.containsAll(dataCallList)) {
                    String message = "RIL reported mismatched data call response list for WWAN: "
                            + "mLastDataCallResponseList=" + mLastDataCallResponseList
                            + ", dataCallList=" + dataCallList;
                    loge(message);
                    if (!dataCallList.stream().map(DataCallResponse::getId)
                            .collect(Collectors.toSet()).equals(mLastDataCallResponseList.stream()
                                    .map(DataCallResponse::getId).collect(Collectors.toSet()))) {
                        AnomalyReporter.reportAnomaly(
                                UUID.fromString("150323b2-360a-446b-a158-3ce6425821f6"), message);
                    }
                }
                onDataCallListChanged(dataCallList);
            }
        }
        }


        @Override
        @Override
        public void onDataCallListChanged(List<DataCallResponse> dataCallList) {
        public void onDataCallListChanged(List<DataCallResponse> dataCallList) {
            mLastDataCallResponseList = dataCallList;
            mDataCallListChangedRegistrants.notifyRegistrants(
            mDataCallListChangedRegistrants.notifyRegistrants(
                    new AsyncResult(null, dataCallList, null));
                    new AsyncResult(null, dataCallList, null));
        }
        }