Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cab6766c authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Keyguard: Don't show "emergency call only" in OOS state"

parents 6447bfc2 88e59571
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ import com.google.android.collect.Lists;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

/**
@@ -1246,9 +1247,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
            final String plmn = intent.getStringExtra(TelephonyIntents.EXTRA_PLMN);
            String strEmergencyCallOnly = mContext.getResources().getText(
                    com.android.internal.R.string.emergency_calls_only).toString();
            if (mContext.getResources().getBoolean(
                    R.bool.config_showEmergencyCallOnlyInLockScreen)
                && plmn.equalsIgnoreCase(strEmergencyCallOnly)) {
            if (mContext.getResources().getBoolean(R.bool.config_showEmergencyButton)
                    && plmn.equalsIgnoreCase(strEmergencyCallOnly)
                    && !canMakeEmergencyCall()) {
                return getDefaultPlmn();
            } else {
                return (plmn != null) ? plmn : getDefaultPlmn();
@@ -1257,6 +1258,19 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
        return null;
    }

    private boolean canMakeEmergencyCall() {
        Iterator iter = mServiceState.entrySet().iterator();
        while (iter.hasNext()) {
            HashMap.Entry entry = (HashMap.Entry) iter.next();
            ServiceState state = (ServiceState) entry.getValue();
            if ((state != null) && (state.isEmergencyOnly() ||
                    state.getVoiceRegState() != ServiceState.STATE_OUT_OF_SERVICE)) {
                return true;
            }
        }
        return false;
    }

    /**
     * @return The default plmn (no service)
     */