Loading src/java/com/android/internal/telephony/DefaultPhoneNotifier.java +11 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 { Loading src/java/com/android/internal/telephony/PhoneBase.java +9 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 */ Loading src/java/com/android/internal/telephony/PhoneNotifier.java +3 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.internal.telephony; import android.telephony.CellInfo; import android.telephony.DataConnectionRealTimeInfo; import java.util.List; Loading Loading @@ -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); } src/java/com/android/internal/telephony/dataconnection/DcController.java +36 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); Loading Loading @@ -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 Loading @@ -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. " + Loading @@ -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) { Loading Loading
src/java/com/android/internal/telephony/DefaultPhoneNotifier.java +11 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 { Loading
src/java/com/android/internal/telephony/PhoneBase.java +9 −4 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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 */ Loading
src/java/com/android/internal/telephony/PhoneNotifier.java +3 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.internal.telephony; import android.telephony.CellInfo; import android.telephony.DataConnectionRealTimeInfo; import java.util.List; Loading Loading @@ -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); }
src/java/com/android/internal/telephony/dataconnection/DcController.java +36 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(); Loading Loading @@ -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 Loading @@ -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. " + Loading @@ -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) { Loading