Loading src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java +18 −17 Original line number Diff line number Diff line Loading @@ -98,6 +98,7 @@ import com.android.internal.telephony.nano.TelephonyProto.TelephonyLog; import com.android.internal.telephony.nano.TelephonyProto.TelephonyServiceState; import com.android.internal.telephony.nano.TelephonyProto.TelephonySettings; import com.android.internal.telephony.nano.TelephonyProto.TimeInterval; import com.android.internal.telephony.protobuf.nano.MessageNano; import com.android.internal.util.IndentingPrintWriter; import java.io.FileDescriptor; Loading Loading @@ -669,12 +670,18 @@ public class TelephonyMetrics { log.endTime.elapsedTimestampMillis = SystemClock.elapsedRealtime(); // Log the last active subscription information. int phoneCount = TelephonyManager.getDefault().getPhoneCount(); ActiveSubscriptionInfo[] activeSubscriptionInfo = new ActiveSubscriptionInfo[mLastActiveSubscriptionInfos.size()]; new ActiveSubscriptionInfo[phoneCount]; for (int i = 0; i < mLastActiveSubscriptionInfos.size(); i++) { int key = mLastActiveSubscriptionInfos.keyAt(i); activeSubscriptionInfo[key] = mLastActiveSubscriptionInfos.get(key); } for (int i = 0; i < phoneCount; i++) { if (activeSubscriptionInfo[i] == null) { activeSubscriptionInfo[i] = makeInvalidSubscriptionInfo(i); } } log.lastActiveSubscriptionInfo = activeSubscriptionInfo; return log; Loading Loading @@ -704,7 +711,7 @@ public class TelephonyMetrics { activeSubscriptionInfo.slotIndex = phoneId; activeSubscriptionInfo.isOpportunistic = info.isOpportunistic() ? 1 : 0; activeSubscriptionInfo.carrierId = info.getCarrierId(); if (isDifferentSubscriptionInfo( if (!MessageNano.messageNanoEquals( mLastActiveSubscriptionInfos.get(phoneId), activeSubscriptionInfo)) { addTelephonyEvent(new TelephonyEventBuilder(phoneId) .setActiveSubscriptionInfoChange(activeSubscriptionInfo).build()); Loading @@ -715,12 +722,8 @@ public class TelephonyMetrics { for (int phoneId : inActivePhoneList) { mLastActiveSubscriptionInfos.remove(phoneId); ActiveSubscriptionInfo invalidSubInfo = new ActiveSubscriptionInfo(); invalidSubInfo.slotIndex = phoneId; invalidSubInfo.carrierId = -1; invalidSubInfo.isOpportunistic = -1; addTelephonyEvent(new TelephonyEventBuilder(phoneId) .setActiveSubscriptionInfoChange(invalidSubInfo).build()); .setActiveSubscriptionInfoChange(makeInvalidSubscriptionInfo(phoneId)).build()); } } Loading @@ -732,6 +735,14 @@ public class TelephonyMetrics { .setEnabledModemBitmap(mLastEnabledModemBitmap).build()); } private static ActiveSubscriptionInfo makeInvalidSubscriptionInfo(int phoneId) { ActiveSubscriptionInfo invalidSubscriptionInfo = new ActiveSubscriptionInfo(); invalidSubscriptionInfo.slotIndex = phoneId; invalidSubscriptionInfo.carrierId = -1; invalidSubscriptionInfo.isOpportunistic = -1; return invalidSubscriptionInfo; } /** * Reduce precision to meet privacy requirements. * Loading Loading @@ -2484,14 +2495,4 @@ public class TelephonyMetrics { return SimState.SIM_STATE_UNKNOWN; } } private static boolean isDifferentSubscriptionInfo( ActiveSubscriptionInfo oldInfo, ActiveSubscriptionInfo newInfo) { if (oldInfo == null || newInfo == null) { return oldInfo == newInfo; } return oldInfo.slotIndex != newInfo.slotIndex || oldInfo.carrierId != newInfo.carrierId || oldInfo.isOpportunistic != newInfo.isOpportunistic; } } Loading
src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java +18 −17 Original line number Diff line number Diff line Loading @@ -98,6 +98,7 @@ import com.android.internal.telephony.nano.TelephonyProto.TelephonyLog; import com.android.internal.telephony.nano.TelephonyProto.TelephonyServiceState; import com.android.internal.telephony.nano.TelephonyProto.TelephonySettings; import com.android.internal.telephony.nano.TelephonyProto.TimeInterval; import com.android.internal.telephony.protobuf.nano.MessageNano; import com.android.internal.util.IndentingPrintWriter; import java.io.FileDescriptor; Loading Loading @@ -669,12 +670,18 @@ public class TelephonyMetrics { log.endTime.elapsedTimestampMillis = SystemClock.elapsedRealtime(); // Log the last active subscription information. int phoneCount = TelephonyManager.getDefault().getPhoneCount(); ActiveSubscriptionInfo[] activeSubscriptionInfo = new ActiveSubscriptionInfo[mLastActiveSubscriptionInfos.size()]; new ActiveSubscriptionInfo[phoneCount]; for (int i = 0; i < mLastActiveSubscriptionInfos.size(); i++) { int key = mLastActiveSubscriptionInfos.keyAt(i); activeSubscriptionInfo[key] = mLastActiveSubscriptionInfos.get(key); } for (int i = 0; i < phoneCount; i++) { if (activeSubscriptionInfo[i] == null) { activeSubscriptionInfo[i] = makeInvalidSubscriptionInfo(i); } } log.lastActiveSubscriptionInfo = activeSubscriptionInfo; return log; Loading Loading @@ -704,7 +711,7 @@ public class TelephonyMetrics { activeSubscriptionInfo.slotIndex = phoneId; activeSubscriptionInfo.isOpportunistic = info.isOpportunistic() ? 1 : 0; activeSubscriptionInfo.carrierId = info.getCarrierId(); if (isDifferentSubscriptionInfo( if (!MessageNano.messageNanoEquals( mLastActiveSubscriptionInfos.get(phoneId), activeSubscriptionInfo)) { addTelephonyEvent(new TelephonyEventBuilder(phoneId) .setActiveSubscriptionInfoChange(activeSubscriptionInfo).build()); Loading @@ -715,12 +722,8 @@ public class TelephonyMetrics { for (int phoneId : inActivePhoneList) { mLastActiveSubscriptionInfos.remove(phoneId); ActiveSubscriptionInfo invalidSubInfo = new ActiveSubscriptionInfo(); invalidSubInfo.slotIndex = phoneId; invalidSubInfo.carrierId = -1; invalidSubInfo.isOpportunistic = -1; addTelephonyEvent(new TelephonyEventBuilder(phoneId) .setActiveSubscriptionInfoChange(invalidSubInfo).build()); .setActiveSubscriptionInfoChange(makeInvalidSubscriptionInfo(phoneId)).build()); } } Loading @@ -732,6 +735,14 @@ public class TelephonyMetrics { .setEnabledModemBitmap(mLastEnabledModemBitmap).build()); } private static ActiveSubscriptionInfo makeInvalidSubscriptionInfo(int phoneId) { ActiveSubscriptionInfo invalidSubscriptionInfo = new ActiveSubscriptionInfo(); invalidSubscriptionInfo.slotIndex = phoneId; invalidSubscriptionInfo.carrierId = -1; invalidSubscriptionInfo.isOpportunistic = -1; return invalidSubscriptionInfo; } /** * Reduce precision to meet privacy requirements. * Loading Loading @@ -2484,14 +2495,4 @@ public class TelephonyMetrics { return SimState.SIM_STATE_UNKNOWN; } } private static boolean isDifferentSubscriptionInfo( ActiveSubscriptionInfo oldInfo, ActiveSubscriptionInfo newInfo) { if (oldInfo == null || newInfo == null) { return oldInfo == newInfo; } return oldInfo.slotIndex != newInfo.slotIndex || oldInfo.carrierId != newInfo.carrierId || oldInfo.isOpportunistic != newInfo.isOpportunistic; } }