|
|
|
@ -305,6 +305,7 @@ static int responseRadioCapability(Parcel &p, void *response, size_t responselen |
|
|
|
|
static int responseSSData(Parcel &p, void *response, size_t responselen); |
|
|
|
|
static int responseLceStatus(Parcel &p, void *response, size_t responselen); |
|
|
|
|
static int responseLceData(Parcel &p, void *response, size_t responselen); |
|
|
|
|
static int responseActivityData(Parcel &p, void *response, size_t responselen); |
|
|
|
|
|
|
|
|
|
static int decodeVoiceRadioTechnology (RIL_RadioState radioState); |
|
|
|
|
static int decodeCdmaSubscriptionSource (RIL_RadioState radioState); |
|
|
|
@ -3806,6 +3807,37 @@ static int responseLceData(Parcel &p, void *response, size_t responselen) { |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int responseActivityData(Parcel &p, void *response, size_t responselen) { |
|
|
|
|
if (response == NULL || responselen != sizeof(RIL_ActivityStatsInfo)) { |
|
|
|
|
if (response == NULL) { |
|
|
|
|
RLOGE("invalid response: NULL"); |
|
|
|
|
} |
|
|
|
|
else { |
|
|
|
|
RLOGE("responseActivityData: invalid response length %d expecting len: d%", |
|
|
|
|
sizeof(RIL_ActivityStatsInfo), responselen); |
|
|
|
|
} |
|
|
|
|
return RIL_ERRNO_INVALID_RESPONSE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
RIL_ActivityStatsInfo *p_cur = (RIL_ActivityStatsInfo *)response; |
|
|
|
|
p.writeInt32(p_cur->sleep_mode_time_ms); |
|
|
|
|
p.writeInt32(p_cur->idle_mode_time_ms); |
|
|
|
|
for(int i = 0; i < RIL_NUM_TX_POWER_LEVELS; i++) { |
|
|
|
|
p.writeInt32(p_cur->tx_mode_time_ms[i]); |
|
|
|
|
} |
|
|
|
|
p.writeInt32(p_cur->rx_mode_time_ms); |
|
|
|
|
|
|
|
|
|
startResponse; |
|
|
|
|
appendPrintBuf("Modem activity info received: sleep_mode_time_ms %d idle_mode_time_ms %d |
|
|
|
|
tx_mode_time_ms %d %d %d %d %d and rx_mode_time_ms %d", |
|
|
|
|
p_cur->sleep_mode_time_ms, p_cur->idle_mode_time_ms, p_cur->tx_mode_time_ms[0], |
|
|
|
|
p_cur->tx_mode_time_ms[1], p_cur->tx_mode_time_ms[2], p_cur->tx_mode_time_ms[3], |
|
|
|
|
p_cur->tx_mode_time_ms[4], p_cur->rx_mode_time_ms); |
|
|
|
|
closeResponse; |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A write on the wakeup fd is done just to pop us out of select() |
|
|
|
|
* We empty the buffer here and then ril_event will reset the timers on the |
|
|
|
|