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

Commit 657a2a83 authored by Ricardo Cerqueira's avatar Ricardo Cerqueira Committed by Gerrit Code Review
Browse files

Merge "Telephony: Handle Data Call List" into ics

parents 50f5f13a 733432ca
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -1168,6 +1168,28 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
        return list;
    }

    /**
     * Clear data call entries with duplicate call ids.
     * The function will retain the first found unique call id.
     *
     * @param dataCalls
     * @return unique set of dataCalls.
     */
    private ArrayList<DataCallState> clearDuplicates(
            ArrayList<DataCallState> dataCalls) {
        // clear duplicate cid's
        ArrayList<Integer> cids = new ArrayList<Integer>();
        ArrayList<DataCallState> uniqueCalls = new ArrayList<DataCallState>();
        for (DataCallState dc : dataCalls) {
            if (!cids.contains(dc.cid)) {
                uniqueCalls.add(dc);
                cids.add(dc.cid);
            }
        }
        log("Number of DataCallStates:" + dataCalls.size() + "Unique count:" + uniqueCalls.size());
        return uniqueCalls;
    }

    /**
     * @param ar is the result of RIL_REQUEST_DATA_CALL_LIST
     * or RIL_UNSOL_DATA_CALL_LIST_CHANGED
@@ -1187,6 +1209,8 @@ public final class GsmDataConnectionTracker extends DataConnectionTracker {
        }
        if (DBG) log("onDataStateChanged(ar): DataCallState size=" + dataCallStates.size());

        dataCallStates = clearDuplicates(dataCallStates);

        // Create a hash map to store the dataCallState of each DataConnectionAc
        HashMap<DataCallState, DataConnectionAc> dataCallStateToDcac;
        dataCallStateToDcac = new HashMap<DataCallState, DataConnectionAc>();