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

Commit 741f2aab authored by Aishwarya Mallampati's avatar Aishwarya Mallampati Committed by Android (Google) Code Review
Browse files

Merge "requestSatelliteEnabled - send request to handler immediately" into main

parents df491153 e71cb38a
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -161,6 +161,7 @@ import android.view.WindowManager;
import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.os.SomeArgs;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.DeviceStateMonitor;
import com.android.internal.telephony.IBooleanConsumer;
@@ -323,6 +324,7 @@ public class SatelliteController extends Handler {
        EVENT_WAIT_FOR_UPDATE_SYSTEM_SELECTION_CHANNELS_RESPONSE_TIMED_OUT = 63;
    private static final int CMD_GET_SATELLITE_ENABLED_FOR_CARRIER = 64;
    private static final int EVENT_GET_SATELLITE_ENABLED_FOR_CARRIER_DONE = 65;
    private static final int REQUEST_SATELLITE_ENABLED = 66;

    @NonNull private static SatelliteController sInstance;
    @NonNull private final Context mContext;
@@ -2319,6 +2321,22 @@ public class SatelliteController extends Handler {
                break;
            }

            case REQUEST_SATELLITE_ENABLED: {
                plogd("REQUEST_SATELLITE_ENABLED");
                SomeArgs args = (SomeArgs) msg.obj;
                boolean enableSatellite = (boolean) args.arg1;
                boolean enableDemoMode = (boolean) args.arg2;
                boolean isEmergency = (boolean) args.arg3;
                IIntegerConsumer callback = (IIntegerConsumer) args.arg4;
                try {
                    handleRequestSatelliteEnabled(
                            enableSatellite, enableDemoMode, isEmergency, callback);
                } finally {
                    args.recycle();
                }
                break;
            }

            default:
                Log.w(TAG, "SatelliteControllerHandler: unexpected message code: " +
                        msg.what);
@@ -2386,6 +2404,24 @@ public class SatelliteController extends Handler {
            boolean isEmergency, @NonNull IIntegerConsumer callback) {
        plogd("requestSatelliteEnabled enableSatellite: " + enableSatellite
                + " enableDemoMode: " + enableDemoMode + " isEmergency: " + isEmergency);
        if (mFeatureFlags.satelliteImproveMultiThreadDesign()) {
            SomeArgs args = SomeArgs.obtain();
            args.arg1 = enableSatellite;
            args.arg2 = enableDemoMode;
            args.arg3 = isEmergency;
            args.arg4 = callback;
            sendMessage(obtainMessage(REQUEST_SATELLITE_ENABLED, args));
            return;
        }

        handleRequestSatelliteEnabled(enableSatellite, enableDemoMode, isEmergency, callback);
    }

    private void handleRequestSatelliteEnabled(boolean enableSatellite, boolean enableDemoMode,
            boolean isEmergency, @NonNull IIntegerConsumer callback) {
        plogd("handleRequestSatelliteEnabled: enableSatellite: " + enableSatellite
                + " enableDemoMode: " + enableDemoMode + " isEmergency: " + isEmergency);

        Consumer<Integer> result = FunctionalUtils.ignoreRemoteException(callback::accept);
        int error = evaluateOemSatelliteRequestAllowed(true);
        if (error != SATELLITE_RESULT_SUCCESS) {
+2 −0
Original line number Diff line number Diff line
@@ -729,6 +729,8 @@ public class SatelliteControllerTest extends TelephonyTest {
        doReturn(mSubscriptionInfo).when(mMockSubscriptionManagerService).getSubscriptionInfo(
                anyInt());
        doReturn("").when(mSubscriptionInfo).getIccId();

        doReturn(true).when(mFeatureFlags).satelliteImproveMultiThreadDesign();
    }

    @After