Loading packages/SystemUI/aconfig/systemui.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -1508,6 +1508,16 @@ flag { } } flag { name: "sim_pin_use_slot_id" namespace: "systemui" description: "Reorient SIM data processing around slotId instead of subId" bug: "376173142" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "use_transitions_for_keyguard_occluded" namespace: "systemui" Loading packages/SystemUI/src/com/android/keyguard/CarrierTextManager.java +5 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.keyguard; import static com.android.systemui.Flags.simPinUseSlotId; import static com.android.keyguard.logging.CarrierTextManagerLogger.REASON_ACTIVE_DATA_SUB_CHANGED; import static com.android.keyguard.logging.CarrierTextManagerLogger.REASON_ON_TELEPHONY_CAPABLE; import static com.android.keyguard.logging.CarrierTextManagerLogger.REASON_REFRESH_CARRIER_INFO; Loading Loading @@ -368,10 +369,12 @@ public class CarrierTextManager { for (int i = 0; i < numSubs; i++) { int subId = subs.get(i).getSubscriptionId(); int slotId = subs.get(i).getSimSlotIndex(); carrierNames[i] = ""; subsIds[i] = subId; subOrderBySlot[subs.get(i).getSimSlotIndex()] = i; int simState = mKeyguardUpdateMonitor.getSimState(subId); subOrderBySlot[slotId] = i; int simState = simPinUseSlotId() ? mKeyguardUpdateMonitor.getSimStateForSlotId(slotId) : mKeyguardUpdateMonitor.getSimState(subId); CharSequence carrierName = subs.get(i).getCarrierName(); CharSequence carrierTextForSimState = getCarrierTextForSimState(simState, carrierName); mLogger.logUpdateLoopStart(subId, simState, String.valueOf(carrierName)); Loading packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +75 −27 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STR import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN; import static com.android.systemui.Flags.simPinBouncerReset; import static com.android.systemui.Flags.simPinUseSlotId; import static com.android.systemui.statusbar.policy.DevicePostureController.DEVICE_POSTURE_OPENED; import android.annotation.AnyThread; Loading Loading @@ -172,7 +173,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; Loading Loading @@ -318,6 +318,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private final Object mSimDataLockObject = new Object(); HashMap<Integer, SimData> mSimDatas = new HashMap<>(); HashMap<Integer, SimData> mSimDatasBySlotId = new HashMap<>(); HashMap<Integer, ServiceState> mServiceStates = new HashMap<>(); private int mPhoneState; Loading Loading @@ -616,16 +617,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab // It is possible for active subscriptions to become invalid (-1), and these will // not be present in the subscriptionInfo list synchronized (mSimDataLockObject) { Iterator<Map.Entry<Integer, SimData>> iter = mSimDatas.entrySet().iterator(); var iter = simPinUseSlotId() ? mSimDatasBySlotId.entrySet().iterator() : mSimDatas.entrySet().iterator(); while (iter.hasNext()) { Map.Entry<Integer, SimData> simData = iter.next(); if (!activeSubIds.contains(simData.getKey())) { mSimLogger.logInvalidSubId(simData.getKey()); SimData data = iter.next().getValue(); if (!activeSubIds.contains(data.subId)) { mSimLogger.logInvalidSubId(data.subId, data.slotId); iter.remove(); SimData data = simData.getValue(); for (int j = 0; j < mCallbacks.size(); j++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get(); var cb = mCallbacks.get(j).get(); if (cb != null) { cb.onSimStateChanged(data.subId, data.slotId, data.simState); } Loading @@ -634,10 +636,15 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } for (int i = 0; i < changedSubscriptions.size(); i++) { SimData data = mSimDatas.get( changedSubscriptions.get(i).getSubscriptionId()); SimData data; if (simPinUseSlotId()) { data = mSimDatasBySlotId.get(changedSubscriptions.get(i) .getSimSlotIndex()); } else { data = mSimDatas.get(changedSubscriptions.get(i).getSubscriptionId()); } for (int j = 0; j < mCallbacks.size(); j++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get(); var cb = mCallbacks.get(j).get(); if (cb != null) { cb.onSimStateChanged(data.subId, data.slotId, data.simState); } Loading Loading @@ -3409,12 +3416,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab */ private void invalidateSlot(int slotId) { synchronized (mSimDataLockObject) { Iterator<Map.Entry<Integer, SimData>> iter = mSimDatas.entrySet().iterator(); var iter = simPinUseSlotId() ? mSimDatasBySlotId.entrySet().iterator() : mSimDatas.entrySet().iterator(); while (iter.hasNext()) { SimData data = iter.next().getValue(); if (data.slotId == slotId && SubscriptionManager.isValidSubscriptionId(data.subId)) { mSimLogger.logInvalidSubId(data.subId); mSimLogger.logInvalidSubId(data.subId, data.slotId); iter.remove(); } } Loading @@ -3427,7 +3435,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab @VisibleForTesting void handleSimStateChange(int subId, int slotId, int state) { Assert.isMainThread(); mSimLogger.logSimState(subId, slotId, state); mSimLogger.logSimState(subId, slotId, TelephonyManager.simStateToString(state)); boolean becameAbsent = ABSENT_SIM_STATE_LIST.contains(state); if (!SubscriptionManager.isValidSubscriptionId(subId)) { Loading @@ -3444,11 +3452,15 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab // TODO(b/327476182): Preserve SIM_STATE_CARD_IO_ERROR sims in a separate data source. synchronized (mSimDataLockObject) { SimData data = mSimDatas.get(subId); SimData data = simPinUseSlotId() ? mSimDatasBySlotId.get(slotId) : mSimDatas.get(subId); final boolean changed; if (data == null) { data = new SimData(state, slotId, subId); if (simPinUseSlotId()) { mSimDatasBySlotId.put(slotId, data); } else { mSimDatas.put(subId, data); } changed = true; // no data yet; force update } else { changed = (data.simState != state || data.subId != subId || data.slotId != slotId); Loading Loading @@ -3727,7 +3739,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab callback.onTelephonyCapable(mTelephonyCapable); synchronized (mSimDataLockObject) { for (Entry<Integer, SimData> data : mSimDatas.entrySet()) { var simDatas = simPinUseSlotId() ? mSimDatasBySlotId : mSimDatas; for (Entry<Integer, SimData> data : simDatas.entrySet()) { final SimData state = data.getValue(); callback.onSimStateChanged(state.subId, state.slotId, state.simState); } Loading Loading @@ -3860,7 +3873,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab */ public boolean isSimPinSecure() { synchronized (mSimDataLockObject) { for (SimData data : mSimDatas.values()) { var simDatas = simPinUseSlotId() ? mSimDatasBySlotId : mSimDatas; for (SimData data : simDatas.values()) { if (isSimPinSecure(data.simState)) { return true; } Loading @@ -3870,6 +3884,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } public int getSimState(int subId) { if (simPinUseSlotId()) { throw new UnsupportedOperationException("Method not supported with flag " + "simPinUseSlotId"); } synchronized (mSimDataLockObject) { if (mSimDatas.containsKey(subId)) { return mSimDatas.get(subId).simState; Loading @@ -3879,12 +3897,32 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } } /** * Find the sim state for a slot id, or SIM_STATE_UNKNOWN if not found. */ public int getSimStateForSlotId(int slotId) { if (!simPinUseSlotId()) { throw new UnsupportedOperationException("Method not supported without flag " + "simPinUseSlotId"); } synchronized (mSimDataLockObject) { if (mSimDatasBySlotId.containsKey(slotId)) { return mSimDatasBySlotId.get(slotId).simState; } else { return TelephonyManager.SIM_STATE_UNKNOWN; } } } private int getSlotId(int subId) { synchronized (mSimDataLockObject) { if (!mSimDatas.containsKey(subId)) { refreshSimState(subId, SubscriptionManager.getSlotIndex(subId)); var simDatas = simPinUseSlotId() ? mSimDatasBySlotId : mSimDatas; int slotId = SubscriptionManager.getSlotIndex(subId); int index = simPinUseSlotId() ? slotId : subId; if (!simDatas.containsKey(index)) { refreshSimState(subId, slotId); } SimData simData = mSimDatas.get(subId); SimData simData = simDatas.get(index); return simData != null ? simData.slotId : SubscriptionManager.INVALID_SUBSCRIPTION_ID; } } Loading Loading @@ -3928,8 +3966,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private boolean refreshSimState(int subId, int slotId) { int state = mTelephonyManager.getSimState(slotId); synchronized (mSimDataLockObject) { SimData data = mSimDatas.get(subId); SimData data = simPinUseSlotId() ? mSimDatasBySlotId.get(slotId) : mSimDatas.get(subId); if (!SubscriptionManager.isValidSubscriptionId(subId)) { invalidateSlot(slotId); } Loading @@ -3937,7 +3974,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab final boolean changed; if (data == null) { data = new SimData(state, slotId, subId); if (simPinUseSlotId()) { mSimDatasBySlotId.put(slotId, data); } else { mSimDatas.put(subId, data); } changed = true; // no data yet; force update } else { changed = data.simState != state; Loading Loading @@ -4033,12 +4074,19 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab for (int i = 0; i < list.size(); i++) { final SubscriptionInfo info = list.get(i); final int id = info.getSubscriptionId(); int slotId = getSlotId(id); final int slotId = info.getSimSlotIndex(); if (simPinUseSlotId()) { if (state == getSimStateForSlotId(slotId) && bestSlotId > slotId) { resultId = id; bestSlotId = slotId; } } else { if (state == getSimState(id) && bestSlotId > slotId) { resultId = id; bestSlotId = slotId; } } } return resultId; } Loading packages/SystemUI/src/com/android/keyguard/logging/SimLogger.kt +9 −6 Original line number Diff line number Diff line Loading @@ -47,12 +47,15 @@ class SimLogger @Inject constructor(@SimLog private val logBuffer: LogBuffer) { fun log(@CompileTimeConstant msg: String, level: LogLevel) = logBuffer.log(TAG, level, msg) fun logInvalidSubId(subId: Int) { fun logInvalidSubId(subId: Int, slotId: Int) { logBuffer.log( TAG, INFO, { int1 = subId }, { "Previously active sub id $int1 is now invalid, will remove" }, { int1 = subId int2 = slotId }, { "Previously active subId: $int1, slotId: $int2 is now invalid, will remove" }, ) } Loading Loading @@ -94,16 +97,16 @@ class SimLogger @Inject constructor(@SimLog private val logBuffer: LogBuffer) { ) } fun logSimState(subId: Int, slotId: Int, state: Int) { fun logSimState(subId: Int, slotId: Int, state: String) { logBuffer.log( TAG, DEBUG, { int1 = subId int2 = slotId long1 = state.toLong() str1 = state }, { "handleSimStateChange(subId=$int1, slotId=$int2, state=$long1)" }, { "handleSimStateChange(subId=$int1, slotId=$int2, state=$str1)" }, ) } Loading packages/SystemUI/tests/src/com/android/keyguard/CarrierTextManagerTest.java +540 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
packages/SystemUI/aconfig/systemui.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -1508,6 +1508,16 @@ flag { } } flag { name: "sim_pin_use_slot_id" namespace: "systemui" description: "Reorient SIM data processing around slotId instead of subId" bug: "376173142" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "use_transitions_for_keyguard_occluded" namespace: "systemui" Loading
packages/SystemUI/src/com/android/keyguard/CarrierTextManager.java +5 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.keyguard; import static com.android.systemui.Flags.simPinUseSlotId; import static com.android.keyguard.logging.CarrierTextManagerLogger.REASON_ACTIVE_DATA_SUB_CHANGED; import static com.android.keyguard.logging.CarrierTextManagerLogger.REASON_ON_TELEPHONY_CAPABLE; import static com.android.keyguard.logging.CarrierTextManagerLogger.REASON_REFRESH_CARRIER_INFO; Loading Loading @@ -368,10 +369,12 @@ public class CarrierTextManager { for (int i = 0; i < numSubs; i++) { int subId = subs.get(i).getSubscriptionId(); int slotId = subs.get(i).getSimSlotIndex(); carrierNames[i] = ""; subsIds[i] = subId; subOrderBySlot[subs.get(i).getSimSlotIndex()] = i; int simState = mKeyguardUpdateMonitor.getSimState(subId); subOrderBySlot[slotId] = i; int simState = simPinUseSlotId() ? mKeyguardUpdateMonitor.getSimStateForSlotId(slotId) : mKeyguardUpdateMonitor.getSimState(subId); CharSequence carrierName = subs.get(i).getCarrierName(); CharSequence carrierTextForSimState = getCarrierTextForSimState(simState, carrierName); mLogger.logUpdateLoopStart(subId, simState, String.valueOf(carrierName)); Loading
packages/SystemUI/src/com/android/keyguard/KeyguardUpdateMonitor.java +75 −27 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STR import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_USER_LOCKDOWN; import static com.android.systemui.Flags.simPinBouncerReset; import static com.android.systemui.Flags.simPinUseSlotId; import static com.android.systemui.statusbar.policy.DevicePostureController.DEVICE_POSTURE_OPENED; import android.annotation.AnyThread; Loading Loading @@ -172,7 +173,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; Loading Loading @@ -318,6 +318,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private final Object mSimDataLockObject = new Object(); HashMap<Integer, SimData> mSimDatas = new HashMap<>(); HashMap<Integer, SimData> mSimDatasBySlotId = new HashMap<>(); HashMap<Integer, ServiceState> mServiceStates = new HashMap<>(); private int mPhoneState; Loading Loading @@ -616,16 +617,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab // It is possible for active subscriptions to become invalid (-1), and these will // not be present in the subscriptionInfo list synchronized (mSimDataLockObject) { Iterator<Map.Entry<Integer, SimData>> iter = mSimDatas.entrySet().iterator(); var iter = simPinUseSlotId() ? mSimDatasBySlotId.entrySet().iterator() : mSimDatas.entrySet().iterator(); while (iter.hasNext()) { Map.Entry<Integer, SimData> simData = iter.next(); if (!activeSubIds.contains(simData.getKey())) { mSimLogger.logInvalidSubId(simData.getKey()); SimData data = iter.next().getValue(); if (!activeSubIds.contains(data.subId)) { mSimLogger.logInvalidSubId(data.subId, data.slotId); iter.remove(); SimData data = simData.getValue(); for (int j = 0; j < mCallbacks.size(); j++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get(); var cb = mCallbacks.get(j).get(); if (cb != null) { cb.onSimStateChanged(data.subId, data.slotId, data.simState); } Loading @@ -634,10 +636,15 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } for (int i = 0; i < changedSubscriptions.size(); i++) { SimData data = mSimDatas.get( changedSubscriptions.get(i).getSubscriptionId()); SimData data; if (simPinUseSlotId()) { data = mSimDatasBySlotId.get(changedSubscriptions.get(i) .getSimSlotIndex()); } else { data = mSimDatas.get(changedSubscriptions.get(i).getSubscriptionId()); } for (int j = 0; j < mCallbacks.size(); j++) { KeyguardUpdateMonitorCallback cb = mCallbacks.get(j).get(); var cb = mCallbacks.get(j).get(); if (cb != null) { cb.onSimStateChanged(data.subId, data.slotId, data.simState); } Loading Loading @@ -3409,12 +3416,13 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab */ private void invalidateSlot(int slotId) { synchronized (mSimDataLockObject) { Iterator<Map.Entry<Integer, SimData>> iter = mSimDatas.entrySet().iterator(); var iter = simPinUseSlotId() ? mSimDatasBySlotId.entrySet().iterator() : mSimDatas.entrySet().iterator(); while (iter.hasNext()) { SimData data = iter.next().getValue(); if (data.slotId == slotId && SubscriptionManager.isValidSubscriptionId(data.subId)) { mSimLogger.logInvalidSubId(data.subId); mSimLogger.logInvalidSubId(data.subId, data.slotId); iter.remove(); } } Loading @@ -3427,7 +3435,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab @VisibleForTesting void handleSimStateChange(int subId, int slotId, int state) { Assert.isMainThread(); mSimLogger.logSimState(subId, slotId, state); mSimLogger.logSimState(subId, slotId, TelephonyManager.simStateToString(state)); boolean becameAbsent = ABSENT_SIM_STATE_LIST.contains(state); if (!SubscriptionManager.isValidSubscriptionId(subId)) { Loading @@ -3444,11 +3452,15 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab // TODO(b/327476182): Preserve SIM_STATE_CARD_IO_ERROR sims in a separate data source. synchronized (mSimDataLockObject) { SimData data = mSimDatas.get(subId); SimData data = simPinUseSlotId() ? mSimDatasBySlotId.get(slotId) : mSimDatas.get(subId); final boolean changed; if (data == null) { data = new SimData(state, slotId, subId); if (simPinUseSlotId()) { mSimDatasBySlotId.put(slotId, data); } else { mSimDatas.put(subId, data); } changed = true; // no data yet; force update } else { changed = (data.simState != state || data.subId != subId || data.slotId != slotId); Loading Loading @@ -3727,7 +3739,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab callback.onTelephonyCapable(mTelephonyCapable); synchronized (mSimDataLockObject) { for (Entry<Integer, SimData> data : mSimDatas.entrySet()) { var simDatas = simPinUseSlotId() ? mSimDatasBySlotId : mSimDatas; for (Entry<Integer, SimData> data : simDatas.entrySet()) { final SimData state = data.getValue(); callback.onSimStateChanged(state.subId, state.slotId, state.simState); } Loading Loading @@ -3860,7 +3873,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab */ public boolean isSimPinSecure() { synchronized (mSimDataLockObject) { for (SimData data : mSimDatas.values()) { var simDatas = simPinUseSlotId() ? mSimDatasBySlotId : mSimDatas; for (SimData data : simDatas.values()) { if (isSimPinSecure(data.simState)) { return true; } Loading @@ -3870,6 +3884,10 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } public int getSimState(int subId) { if (simPinUseSlotId()) { throw new UnsupportedOperationException("Method not supported with flag " + "simPinUseSlotId"); } synchronized (mSimDataLockObject) { if (mSimDatas.containsKey(subId)) { return mSimDatas.get(subId).simState; Loading @@ -3879,12 +3897,32 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab } } /** * Find the sim state for a slot id, or SIM_STATE_UNKNOWN if not found. */ public int getSimStateForSlotId(int slotId) { if (!simPinUseSlotId()) { throw new UnsupportedOperationException("Method not supported without flag " + "simPinUseSlotId"); } synchronized (mSimDataLockObject) { if (mSimDatasBySlotId.containsKey(slotId)) { return mSimDatasBySlotId.get(slotId).simState; } else { return TelephonyManager.SIM_STATE_UNKNOWN; } } } private int getSlotId(int subId) { synchronized (mSimDataLockObject) { if (!mSimDatas.containsKey(subId)) { refreshSimState(subId, SubscriptionManager.getSlotIndex(subId)); var simDatas = simPinUseSlotId() ? mSimDatasBySlotId : mSimDatas; int slotId = SubscriptionManager.getSlotIndex(subId); int index = simPinUseSlotId() ? slotId : subId; if (!simDatas.containsKey(index)) { refreshSimState(subId, slotId); } SimData simData = mSimDatas.get(subId); SimData simData = simDatas.get(index); return simData != null ? simData.slotId : SubscriptionManager.INVALID_SUBSCRIPTION_ID; } } Loading Loading @@ -3928,8 +3966,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab private boolean refreshSimState(int subId, int slotId) { int state = mTelephonyManager.getSimState(slotId); synchronized (mSimDataLockObject) { SimData data = mSimDatas.get(subId); SimData data = simPinUseSlotId() ? mSimDatasBySlotId.get(slotId) : mSimDatas.get(subId); if (!SubscriptionManager.isValidSubscriptionId(subId)) { invalidateSlot(slotId); } Loading @@ -3937,7 +3974,11 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab final boolean changed; if (data == null) { data = new SimData(state, slotId, subId); if (simPinUseSlotId()) { mSimDatasBySlotId.put(slotId, data); } else { mSimDatas.put(subId, data); } changed = true; // no data yet; force update } else { changed = data.simState != state; Loading Loading @@ -4033,12 +4074,19 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener, Dumpab for (int i = 0; i < list.size(); i++) { final SubscriptionInfo info = list.get(i); final int id = info.getSubscriptionId(); int slotId = getSlotId(id); final int slotId = info.getSimSlotIndex(); if (simPinUseSlotId()) { if (state == getSimStateForSlotId(slotId) && bestSlotId > slotId) { resultId = id; bestSlotId = slotId; } } else { if (state == getSimState(id) && bestSlotId > slotId) { resultId = id; bestSlotId = slotId; } } } return resultId; } Loading
packages/SystemUI/src/com/android/keyguard/logging/SimLogger.kt +9 −6 Original line number Diff line number Diff line Loading @@ -47,12 +47,15 @@ class SimLogger @Inject constructor(@SimLog private val logBuffer: LogBuffer) { fun log(@CompileTimeConstant msg: String, level: LogLevel) = logBuffer.log(TAG, level, msg) fun logInvalidSubId(subId: Int) { fun logInvalidSubId(subId: Int, slotId: Int) { logBuffer.log( TAG, INFO, { int1 = subId }, { "Previously active sub id $int1 is now invalid, will remove" }, { int1 = subId int2 = slotId }, { "Previously active subId: $int1, slotId: $int2 is now invalid, will remove" }, ) } Loading Loading @@ -94,16 +97,16 @@ class SimLogger @Inject constructor(@SimLog private val logBuffer: LogBuffer) { ) } fun logSimState(subId: Int, slotId: Int, state: Int) { fun logSimState(subId: Int, slotId: Int, state: String) { logBuffer.log( TAG, DEBUG, { int1 = subId int2 = slotId long1 = state.toLong() str1 = state }, { "handleSimStateChange(subId=$int1, slotId=$int2, state=$long1)" }, { "handleSimStateChange(subId=$int1, slotId=$int2, state=$str1)" }, ) } Loading
packages/SystemUI/tests/src/com/android/keyguard/CarrierTextManagerTest.java +540 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes