Merge "SystemUI: Fix carrier customization emergency button not shown" into r-keystone-qcom-dev
diff --git a/packages/SystemUI/src/com/android/keyguard/EmergencyButton.java b/packages/SystemUI/src/com/android/keyguard/EmergencyButton.java
index db203cf..7cf4a0e 100644
--- a/packages/SystemUI/src/com/android/keyguard/EmergencyButton.java
+++ b/packages/SystemUI/src/com/android/keyguard/EmergencyButton.java
@@ -80,6 +80,7 @@
@Override
public void onServiceStateChanged(int subId, ServiceState state) {
+ mServiceState = state;
requestCellInfoUpdate();
updateEmergencyCallButton();
}
@@ -96,7 +97,8 @@
private final boolean mIsVoiceCapable;
private final boolean mEnableEmergencyCallWhileSimLocked;
- private boolean mIsEmergencyCapable;
+ private boolean mIsCellAvailable;
+ private ServiceState mServiceState;
public EmergencyButton(Context context) {
this(context, null);
@@ -241,8 +243,7 @@
}
if (mContext.getResources().getBoolean(R.bool.kg_hide_emgcy_btn_when_oos)) {
- KeyguardUpdateMonitor monitor = Dependency.get(KeyguardUpdateMonitor.class);
- visible = visible && (!monitor.isOOS() || mIsEmergencyCapable);
+ visible = visible && isEmergencyCapable();
}
}
}
@@ -292,12 +293,19 @@
public void onCellInfo(List<CellInfo> cellInfos) {
if ( cellInfos == null || cellInfos.isEmpty()) {
Log.d(LOG_TAG, "requestCellInfoUpdate.onCellInfo is null or empty");
- mIsEmergencyCapable = false;
+ mIsCellAvailable = false;
}else{
- mIsEmergencyCapable = true;
+ mIsCellAvailable = true;
}
updateEmergencyCallButton();
}
});
}
+
+ private boolean isEmergencyCapable() {
+ KeyguardUpdateMonitor monitor = Dependency.get(KeyguardUpdateMonitor.class);
+ return (!monitor.isOOS()
+ || mIsCellAvailable
+ || (mServiceState !=null && mServiceState.isEmergencyOnly()));
+ }
}