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

Commit 3339fbe8 authored by Wink Saville's avatar Wink Saville Committed by Android Git Automerger
Browse files

am a0bce270: Merge "Add notifyDataConnectionRealTimeInfo."

* commit 'a0bce270':
  Add notifyDataConnectionRealTimeInfo.
parents 28ed54e9 a0bce270
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.os.Bundle;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.telephony.CellInfo;
import android.telephony.DataConnectionRealTimeInfo;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
import android.telephony.PreciseCallState;
@@ -176,6 +177,16 @@ public class DefaultPhoneNotifier implements PhoneNotifier {
        }
    }

    @Override
    public void notifyDataConnectionRealTimeInfo(Phone sender,
                                                 DataConnectionRealTimeInfo dcRtInfo) {
        try {
            mRegistry.notifyDataConnectionRealTimeInfo(dcRtInfo);
        } catch (RemoteException ex) {

        }
    }

    @Override
    public void notifyOtaspChanged(Phone sender, int otaspMode) {
        try {
+9 −4
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@ import android.provider.Settings;
import android.telephony.CellIdentityCdma;
import android.telephony.CellInfo;
import android.telephony.CellInfoCdma;
import android.telephony.DataConnectionRealTimeInfo;
import android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
@@ -1100,6 +1101,10 @@ public abstract class PhoneBase extends Handler implements Phone {
        mNotifier.notifyCellInfo(this, privatizeCellInfoList(cellInfo));
    }

    public void notifyDataConnectionRealTimeInfo(DataConnectionRealTimeInfo dcRtInfo) {
        mNotifier.notifyDataConnectionRealTimeInfo(this, dcRtInfo);
    }

    /**
     * @return true if a mobile originating emergency call is active
     */
+3 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.internal.telephony;

import android.telephony.CellInfo;
import android.telephony.DataConnectionRealTimeInfo;

import java.util.List;

@@ -55,4 +56,6 @@ public interface PhoneNotifier {

    public void notifyPreciseDataConnectionFailed(Phone sender, String reason, String apnType,
            String apn, String failCause);

    public void notifyDataConnectionRealTimeInfo(Phone sender, DataConnectionRealTimeInfo dcRtInfo);
}
+36 −0
Original line number Diff line number Diff line
@@ -23,7 +23,10 @@ import android.os.AsyncResult;
import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
import android.telephony.DataConnectionRealTimeInfo;
import android.telephony.Rlog;

import com.android.internal.telephony.DctConstants;
import com.android.internal.telephony.PhoneBase;
import com.android.internal.telephony.PhoneConstants;
@@ -63,6 +66,10 @@ class DcController extends StateMachine {
    static final int DATA_CONNECTION_ACTIVE_PH_LINK_INACTIVE = 0;
    static final int DATA_CONNECTION_ACTIVE_PH_LINK_DORMANT = 1;
    static final int DATA_CONNECTION_ACTIVE_PH_LINK_UP = 2;
    static final int DATA_CONNECTION_ACTIVE_UNKNOWN = Integer.MAX_VALUE;

    // One of the DATA_CONNECTION_ACTIVE_XXX values
    int mOverallDataConnectionActiveState = DATA_CONNECTION_ACTIVE_UNKNOWN;

    private DccDefaultState mDccDefaultState = new DccDefaultState();

@@ -311,6 +318,8 @@ class DcController extends StateMachine {
                }
            }

            int newOverallDataConnectionActiveState = mOverallDataConnectionActiveState;

            if (isAnyDataCallDormant && !isAnyDataCallActive) {
                // There is no way to indicate link activity per APN right now. So
                // Link Activity will be considered dormant only when all data calls
@@ -321,6 +330,7 @@ class DcController extends StateMachine {
                    log("onDataStateChanged: Data Activity updated to DORMANT. stopNetStatePoll");
                }
                mDct.sendStopNetStatPoll(DctConstants.Activity.DORMANT);
                newOverallDataConnectionActiveState = DATA_CONNECTION_ACTIVE_PH_LINK_DORMANT;
            } else {
                if (DBG) {
                    log("onDataStateChanged: Data Activity updated to NONE. " +
@@ -328,8 +338,34 @@ class DcController extends StateMachine {
                            " isAnyDataCallDormant = " + isAnyDataCallDormant);
                }
                if (isAnyDataCallActive) {
                    newOverallDataConnectionActiveState = DATA_CONNECTION_ACTIVE_PH_LINK_UP;
                    mDct.sendStartNetStatPoll(DctConstants.Activity.NONE);
                } else {
                    newOverallDataConnectionActiveState = DATA_CONNECTION_ACTIVE_PH_LINK_INACTIVE;
                }
            }

            // Temporary notification until RIL implementation is complete.
            if (mOverallDataConnectionActiveState != newOverallDataConnectionActiveState) {
                mOverallDataConnectionActiveState = newOverallDataConnectionActiveState;
                long time = SystemClock.elapsedRealtimeNanos();
                int dcPowerState;
                switch (mOverallDataConnectionActiveState) {
                    case DATA_CONNECTION_ACTIVE_PH_LINK_INACTIVE:
                    case DATA_CONNECTION_ACTIVE_PH_LINK_DORMANT:
                        dcPowerState = DataConnectionRealTimeInfo.DC_POWER_STATE_LOW;
                        break;
                    case DATA_CONNECTION_ACTIVE_PH_LINK_UP:
                        dcPowerState = DataConnectionRealTimeInfo.DC_POWER_STATE_HIGH;
                        break;
                    default:
                        dcPowerState = DataConnectionRealTimeInfo.DC_POWER_STATE_UNKNOWN;
                        break;
                }
                DataConnectionRealTimeInfo dcRtInfo =
                        new DataConnectionRealTimeInfo(time , dcPowerState);
                log("onDataStateChanged: notify DcRtInfo changed dcRtInfo=" + dcRtInfo);
                mPhone.notifyDataConnectionRealTimeInfo(dcRtInfo);
            }

            if (DBG) {