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

Commit 0d6171fa authored by Aishwarya Mallampati's avatar Aishwarya Mallampati
Browse files

Change mIsDemoMode and mIsEmergency to atomic variables

Bug: 409584433
Test: atest
Flag: com.android.internal.telephony.flags.satellite_improve_multi_thread_design
Change-Id: Icb4833138da9e63c908d00bf8cfed66102c40a54
parent f5c0c437
Loading
Loading
Loading
Loading
+29 −30
Original line number Diff line number Diff line
@@ -385,6 +385,8 @@ public class SatelliteController extends Handler {
    private AtomicBoolean mDisableWifiOnSatelliteEnabled = new AtomicBoolean(false);
    protected AtomicBoolean mIsSatelliteSupported = null;
    private AtomicBoolean mNeedsSatellitePointing = new AtomicBoolean(false);
    private AtomicBoolean mIsDemoModeEnabled = new AtomicBoolean(false);
    private AtomicBoolean mIsEmergency = new AtomicBoolean(false);

    private final Object mSatelliteEnabledRequestLock = new Object();
    /* This variable is used to store the first enable request that framework has received in the
@@ -477,9 +479,6 @@ public class SatelliteController extends Handler {
    private final ConcurrentHashMap<IBinder, ISelectedNbIotSatelliteSubscriptionCallback>
            mSelectedNbIotSatelliteSubscriptionChangedListeners = new ConcurrentHashMap<>();


    private boolean mIsDemoModeEnabled = false;
    private boolean mIsEmergency = false;
    private final Object mIsSatelliteEnabledLock = new Object();
    @GuardedBy("mIsSatelliteEnabledLock")
    private Boolean mIsSatelliteEnabled = null;
@@ -1584,7 +1583,7 @@ public class SatelliteController extends Handler {
                            .setSatelliteTechnology(getSupportedNtnRadioTechnology())
                            .setInitializationProcessingTime(
                                    getElapsedRealtime() - mSessionProcessingTimeStamp)
                            .setIsDemoMode(mIsDemoModeEnabled)
                            .setIsDemoMode(mIsDemoModeEnabled.get())
                            .setCarrierId(getSatelliteCarrierId())
                            .setIsEmergency(argument.isEmergency);
                    mSessionProcessingTimeStamp = 0;
@@ -1606,7 +1605,7 @@ public class SatelliteController extends Handler {
                    mSessionStartTimeStamp = 0;
                    mSessionProcessingTimeStamp = 0;
                    mControllerMetricsStats.onSatelliteDisabled();
                    handlePersistentLoggingOnSessionEnd(mIsEmergency);
                    handlePersistentLoggingOnSessionEnd(mIsEmergency.get());
                    synchronized (mSatelliteEnabledRequestLock) {
                        mWaitingForDisableSatelliteModemResponse = false;
                    }
@@ -2764,7 +2763,7 @@ public class SatelliteController extends Handler {
                if (isSatelliteEnabled != null && isSatelliteEnabled == enableSatellite) {
                    evaluateToUpdateSatelliteEnabledAttributes(result,
                            SatelliteManager.SATELLITE_RESULT_SUCCESS, request,
                            mIsDemoModeEnabled, mIsEmergency);
                            mIsDemoModeEnabled.get(), mIsEmergency.get());
                    return;
                }

@@ -3108,7 +3107,7 @@ public class SatelliteController extends Handler {
        }

        final Bundle bundle = new Bundle();
        bundle.putBoolean(SatelliteManager.KEY_DEMO_MODE_ENABLED, mIsDemoModeEnabled);
        bundle.putBoolean(SatelliteManager.KEY_DEMO_MODE_ENABLED, mIsDemoModeEnabled.get());
        result.send(SATELLITE_RESULT_SUCCESS, bundle);
    }

@@ -3118,7 +3117,7 @@ public class SatelliteController extends Handler {
     * @return {@code true} if the satellite demo mode is enabled and {@code false} otherwise.
     */
    public boolean isDemoModeEnabled() {
        return mIsDemoModeEnabled;
        return mIsDemoModeEnabled.get();
    }

    /**
@@ -3650,9 +3649,8 @@ public class SatelliteController extends Handler {
         * TODO for NTN-based satellites: Check if satellite is acquired.
         */
        if (mNeedsSatellitePointing.get()) {

            mPointingAppController.startPointingUI(needFullScreenPointingUI, mIsDemoModeEnabled,
                    mIsEmergency);
            mPointingAppController.startPointingUI(needFullScreenPointingUI,
                    mIsDemoModeEnabled.get(), mIsEmergency.get());
        }

        mDatagramController.sendSatelliteDatagram(getSelectedSatelliteSubId(), datagramType,
@@ -4760,7 +4758,7 @@ public class SatelliteController extends Handler {
     *                      {@code false} otherwise.
     */
    public boolean getRequestIsEmergency() {
        return mIsEmergency;
        return mIsEmergency.get();
    }

    /**
@@ -5331,7 +5329,7 @@ public class SatelliteController extends Handler {
        }
        if (mSatelliteSessionController != null) {
            mSatelliteSessionController.onSatelliteEnabledStateChanged(enabled);
            mSatelliteSessionController.setDemoMode(mIsDemoModeEnabled);
            mSatelliteSessionController.setDemoMode(mIsDemoModeEnabled.get());
        } else {
            ploge(caller + ": mSatelliteSessionController is not initialized yet");
        }
@@ -5832,9 +5830,9 @@ public class SatelliteController extends Handler {
                if (mSatelliteEnabledRequest.enableSatellite
                        && !mSatelliteEnabledRequest.isEmergency) {
                    plogd("Starting pointingUI needFullscreenPointingUI=" + true
                            + "mIsDemoModeEnabled=" + mIsDemoModeEnabled + ", isEmergency="
                            + "mIsDemoModeEnabled=" + mIsDemoModeEnabled.get() + ", isEmergency="
                            + mSatelliteEnabledRequest.isEmergency);
                    mPointingAppController.startPointingUI(true, mIsDemoModeEnabled, false);
                    mPointingAppController.startPointingUI(true, mIsDemoModeEnabled.get(), false);
                }
                mSatelliteEnabledRequest = null;
                mWaitingForRadioDisabled = false;
@@ -5879,7 +5877,7 @@ public class SatelliteController extends Handler {
            @SatelliteManager.SatelliteResult int resultCode) {
        plogd("moveSatelliteToOffStateAndCleanUpResources");
        setDemoModeEnabled(false);
        handlePersistentLoggingOnSessionEnd(mIsEmergency);
        handlePersistentLoggingOnSessionEnd(mIsEmergency.get());
        setEmergencyMode(false);
        synchronized (mIsSatelliteEnabledLock) {
            mIsSatelliteEnabled = false;
@@ -5903,17 +5901,18 @@ public class SatelliteController extends Handler {
    }

    private void setDemoModeEnabled(boolean enabled) {
        mIsDemoModeEnabled = enabled;
        mDatagramController.setDemoMode(mIsDemoModeEnabled);
        plogd("setDemoModeEnabled: mIsDemoModeEnabled=" + mIsDemoModeEnabled);
        mIsDemoModeEnabled.set(enabled);
        mDatagramController.setDemoMode(enabled);
        plogd("setDemoModeEnabled: mIsDemoModeEnabled=" + enabled);
    }

    private void setEmergencyMode(boolean isEmergency) {
        plogd("setEmergencyMode: mIsEmergency=" + mIsEmergency + ", isEmergency=" + isEmergency);
        if (mIsEmergency != isEmergency) {
            mIsEmergency = isEmergency;
        plogd("setEmergencyMode: mIsEmergency=" + mIsEmergency.get()
                + ", isEmergency=" + isEmergency);
        if (mIsEmergency.get() != isEmergency) {
            mIsEmergency.set(isEmergency);
            if (mSatelliteSessionController != null) {
                mSatelliteSessionController.onEmergencyModeChanged(mIsEmergency);
                mSatelliteSessionController.onEmergencyModeChanged(isEmergency);
            } else {
                plogw("setEmergencyMode: mSatelliteSessionController is null");
            }
@@ -6767,7 +6766,7 @@ public class SatelliteController extends Handler {
        result.accept(error);
        mSessionMetricsStats.setInitializationResult(error)
                .setSatelliteTechnology(getSupportedNtnRadioTechnology())
                .setIsDemoMode(mIsDemoModeEnabled)
                .setIsDemoMode(mIsDemoModeEnabled.get())
                .setCarrierId(getSatelliteCarrierId())
                .setIsNtnOnlyCarrier(isNtnOnlyCarrier())
                .reportSessionMetrics();
@@ -6928,7 +6927,7 @@ public class SatelliteController extends Handler {

    private void logCarrierRoamingSatelliteSessionStats(@NonNull Phone phone,
            boolean lastNotifiedNtnMode, boolean currNtnMode) {
        if (mIsDemoModeEnabled) {
        if (mIsDemoModeEnabled.get()) {
            plogd("logCarrierRoamingSatelliteSessionStats: return, demo mode is enabled");
            return;
        }
@@ -7373,7 +7372,7 @@ public class SatelliteController extends Handler {
                    .setSatelliteTechnology(getSupportedNtnRadioTechnology())
                    .setInitializationProcessingTime(
                            getElapsedRealtime() - mSessionProcessingTimeStamp)
                    .setIsDemoMode(mIsDemoModeEnabled)
                    .setIsDemoMode(mIsDemoModeEnabled.get())
                    .setCarrierId(getSatelliteCarrierId())
                    .reportSessionMetrics();
        } else {
@@ -8912,11 +8911,11 @@ public class SatelliteController extends Handler {
    /** Start PointingUI if it is required. */
    public void startPointingUI() {
        plogd("startPointingUI: mNeedsSatellitePointing=" + mNeedsSatellitePointing.get()
                + ", mIsDemoModeEnabled=" + mIsDemoModeEnabled
                + ", mIsEmergency=" + mIsEmergency);
                + ", mIsDemoModeEnabled=" + mIsDemoModeEnabled.get()
                + ", mIsEmergency=" + mIsEmergency.get());
        if (mNeedsSatellitePointing.get()) {
            mPointingAppController.startPointingUI(false /*needFullScreenPointingUI*/,
                    mIsDemoModeEnabled, mIsEmergency);
                    mIsDemoModeEnabled.get(), mIsEmergency.get());
        }
    }

@@ -9072,7 +9071,7 @@ public class SatelliteController extends Handler {
            mTerrestrialNetworkAvailableChangedListeners.remove(listener.asBinder());
        });

        if (isAvailable && !mIsEmergency) {
        if (isAvailable && !mIsEmergency.get()) {
            requestSatelliteEnabled(
                    false /* enableSatellite */, false /* enableDemoMode */,
                    false /* isEmergency */,