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

Commit 72abcdae authored by Adrian Roos's avatar Adrian Roos
Browse files

EmergencyCryptkeeperText: Make sure we update if airplane mode changes

Fixes a race condition that could case the emergency text
to show when it should not, if airplane mode was queried
before it was set by the radio layer.

Change-Id: I146f2877e300d105d8a53af130be46b02ec965b2
Test: Boot into cryptkeeper with a SIM, verify that it does not show 'Emergency Calls Only' until emergency call is initiated.
Fixes: 33278862
Fixes: 32063642
parent 873c99c3
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.statusbar.policy;

import android.annotation.Nullable;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@@ -41,12 +42,20 @@ import java.util.List;
public class EmergencyCryptkeeperText extends TextView {

    private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
    private KeyguardUpdateMonitorCallback mCallback = new KeyguardUpdateMonitorCallback() {
    private final KeyguardUpdateMonitorCallback mCallback = new KeyguardUpdateMonitorCallback() {
        @Override
        public void onPhoneStateChanged(int phoneState) {
            update();
        }
    };
    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (Intent.ACTION_AIRPLANE_MODE_CHANGED.equals(intent.getAction())) {
                update();
            }
        }
    };

    public EmergencyCryptkeeperText(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
@@ -58,6 +67,8 @@ public class EmergencyCryptkeeperText extends TextView {
        super.onAttachedToWindow();
        mKeyguardUpdateMonitor = KeyguardUpdateMonitor.getInstance(mContext);
        mKeyguardUpdateMonitor.registerCallback(mCallback);
        getContext().registerReceiver(mReceiver,
                new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED));
        update();
    }

@@ -67,6 +78,7 @@ public class EmergencyCryptkeeperText extends TextView {
        if (mKeyguardUpdateMonitor != null) {
            mKeyguardUpdateMonitor.removeCallback(mCallback);
        }
        getContext().unregisterReceiver(mReceiver);
    }

    public void update() {