Check TTY status at bringup
If Telecom gets initialized before the status bar, the receiver in PhoneStatusBarPolicy may miss the TTY status intent that Telecom sends out. Make a call to TelecomManager#getCurrentTtyMode to explicitly check in order to show the icon correctly. Change-Id: I51b33c3fcef83a1519b07584095440d8f01ed0cb Fixes: 62475394 Test: manual
This commit is contained in:
@@ -196,8 +196,7 @@ public class PhoneStatusBarPolicy implements Callback, Callbacks,
|
||||
}
|
||||
|
||||
// TTY status
|
||||
mIconController.setIcon(mSlotTty, R.drawable.stat_sys_tty_mode, null);
|
||||
mIconController.setIconVisibility(mSlotTty, false);
|
||||
updateTTY();
|
||||
|
||||
// bluetooth status
|
||||
updateBluetooth();
|
||||
@@ -419,9 +418,17 @@ public class PhoneStatusBarPolicy implements Callback, Callbacks,
|
||||
mIconController.setIconVisibility(mSlotBluetooth, bluetoothEnabled);
|
||||
}
|
||||
|
||||
private final void updateTTY(Intent intent) {
|
||||
int currentTtyMode = intent.getIntExtra(TelecomManager.EXTRA_CURRENT_TTY_MODE,
|
||||
TelecomManager.TTY_MODE_OFF);
|
||||
private final void updateTTY() {
|
||||
TelecomManager telecomManager =
|
||||
(TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);
|
||||
if (telecomManager == null) {
|
||||
updateTTY(TelecomManager.TTY_MODE_OFF);
|
||||
} else {
|
||||
updateTTY(telecomManager.getCurrentTtyMode());
|
||||
}
|
||||
}
|
||||
|
||||
private final void updateTTY(int currentTtyMode) {
|
||||
boolean enabled = currentTtyMode != TelecomManager.TTY_MODE_OFF;
|
||||
|
||||
if (DEBUG) Log.v(TAG, "updateTTY: enabled: " + enabled);
|
||||
@@ -754,7 +761,8 @@ public class PhoneStatusBarPolicy implements Callback, Callbacks,
|
||||
} else if (action.equals(TelephonyIntents.ACTION_SIM_STATE_CHANGED)) {
|
||||
updateSimState(intent);
|
||||
} else if (action.equals(TelecomManager.ACTION_CURRENT_TTY_MODE_CHANGED)) {
|
||||
updateTTY(intent);
|
||||
updateTTY(intent.getIntExtra(TelecomManager.EXTRA_CURRENT_TTY_MODE,
|
||||
TelecomManager.TTY_MODE_OFF));
|
||||
} else if (action.equals(Intent.ACTION_MANAGED_PROFILE_AVAILABLE) ||
|
||||
action.equals(Intent.ACTION_MANAGED_PROFILE_UNAVAILABLE) ||
|
||||
action.equals(Intent.ACTION_MANAGED_PROFILE_REMOVED)) {
|
||||
|
||||
Reference in New Issue
Block a user