Merge changes I7d98ab42,I8753e681 into rvc-dev am: 7368ed7d03
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12166028 Change-Id: I5cd61dd963ab57273ce6ee457c02bd6e10383f1c
This commit is contained in:
@@ -5178,6 +5178,12 @@ message DataUsageBytesTransfer {
|
|||||||
// record is combined across opportunistic data subscriptions.
|
// record is combined across opportunistic data subscriptions.
|
||||||
// See {@link SubscriptionManager#setOpportunistic}.
|
// See {@link SubscriptionManager#setOpportunistic}.
|
||||||
optional DataSubscriptionState opportunistic_data_sub = 10;
|
optional DataSubscriptionState opportunistic_data_sub = 10;
|
||||||
|
|
||||||
|
// Indicate whether NR is connected, server side could use this with RAT type to determine if
|
||||||
|
// the record is for 5G NSA (Non Stand Alone) mode, where the primary cell is still LTE and
|
||||||
|
// network allocates a secondary 5G cell so telephony reports RAT = LTE along with NR state as
|
||||||
|
// connected.
|
||||||
|
optional bool is_nr_connected = 11;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1145,6 +1145,15 @@ public class StatsPullAtomService extends SystemService {
|
|||||||
|
|
||||||
private void addDataUsageBytesTransferAtoms(@NonNull NetworkStatsExt statsExt,
|
private void addDataUsageBytesTransferAtoms(@NonNull NetworkStatsExt statsExt,
|
||||||
@NonNull List<StatsEvent> pulledData) {
|
@NonNull List<StatsEvent> pulledData) {
|
||||||
|
|
||||||
|
// Workaround for 5G NSA mode, see {@link NetworkTemplate#NETWORK_TYPE_5G_NSA}.
|
||||||
|
// 5G NSA mode means the primary cell is LTE with a secondary connection to an
|
||||||
|
// NR cell. To mitigate risk, NetworkStats is currently storing this state as
|
||||||
|
// a fake RAT type rather than storing the boolean separately.
|
||||||
|
final boolean is5GNsa = statsExt.ratType == NetworkTemplate.NETWORK_TYPE_5G_NSA;
|
||||||
|
// Report NR connected in 5G non-standalone mode, or if the RAT type is NR to begin with.
|
||||||
|
final boolean isNR = is5GNsa || statsExt.ratType == TelephonyManager.NETWORK_TYPE_NR;
|
||||||
|
|
||||||
final NetworkStats.Entry entry = new NetworkStats.Entry(); // for recycling
|
final NetworkStats.Entry entry = new NetworkStats.Entry(); // for recycling
|
||||||
for (int i = 0; i < statsExt.stats.size(); i++) {
|
for (int i = 0; i < statsExt.stats.size(); i++) {
|
||||||
statsExt.stats.getValues(i, entry);
|
statsExt.stats.getValues(i, entry);
|
||||||
@@ -1156,7 +1165,7 @@ public class StatsPullAtomService extends SystemService {
|
|||||||
.writeLong(entry.rxPackets)
|
.writeLong(entry.rxPackets)
|
||||||
.writeLong(entry.txBytes)
|
.writeLong(entry.txBytes)
|
||||||
.writeLong(entry.txPackets)
|
.writeLong(entry.txPackets)
|
||||||
.writeInt(statsExt.ratType)
|
.writeInt(is5GNsa ? TelephonyManager.NETWORK_TYPE_LTE : statsExt.ratType)
|
||||||
// Fill information about subscription, these cannot be null since invalid data
|
// Fill information about subscription, these cannot be null since invalid data
|
||||||
// would be filtered when adding into subInfo list.
|
// would be filtered when adding into subInfo list.
|
||||||
.writeString(statsExt.subInfo.mcc)
|
.writeString(statsExt.subInfo.mcc)
|
||||||
@@ -1165,6 +1174,7 @@ public class StatsPullAtomService extends SystemService {
|
|||||||
.writeInt(statsExt.subInfo.isOpportunistic
|
.writeInt(statsExt.subInfo.isOpportunistic
|
||||||
? DATA_USAGE_BYTES_TRANSFER__OPPORTUNISTIC_DATA_SUB__OPPORTUNISTIC
|
? DATA_USAGE_BYTES_TRANSFER__OPPORTUNISTIC_DATA_SUB__OPPORTUNISTIC
|
||||||
: DATA_USAGE_BYTES_TRANSFER__OPPORTUNISTIC_DATA_SUB__NOT_OPPORTUNISTIC)
|
: DATA_USAGE_BYTES_TRANSFER__OPPORTUNISTIC_DATA_SUB__NOT_OPPORTUNISTIC)
|
||||||
|
.writeBoolean(isNR)
|
||||||
.build();
|
.build();
|
||||||
pulledData.add(e);
|
pulledData.add(e);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user