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

Commit e71cb38a authored by Aishwarya Mallampati's avatar Aishwarya Mallampati
Browse files

requestSatelliteEnabled - send request to handler immediately

Bug: 409584433
Test: atest
Flag: com.android.internal.telephony.flags.satellite_improve_multi_thread_design
Change-Id: Iaa65fe2032762c6818faef81573672e299c06e2b
parent 0bf5f4bd
Loading
Loading
Loading
Loading
+36 −0
Original line number Original line Diff line number Diff line
@@ -161,6 +161,7 @@ import android.view.WindowManager;
import com.android.internal.R;
import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.os.SomeArgs;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.DeviceStateMonitor;
import com.android.internal.telephony.DeviceStateMonitor;
import com.android.internal.telephony.IBooleanConsumer;
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;
        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 CMD_GET_SATELLITE_ENABLED_FOR_CARRIER = 64;
    private static final int EVENT_GET_SATELLITE_ENABLED_FOR_CARRIER_DONE = 65;
    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 static SatelliteController sInstance;
    @NonNull private final Context mContext;
    @NonNull private final Context mContext;
@@ -2319,6 +2321,22 @@ public class SatelliteController extends Handler {
                break;
                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:
            default:
                Log.w(TAG, "SatelliteControllerHandler: unexpected message code: " +
                Log.w(TAG, "SatelliteControllerHandler: unexpected message code: " +
                        msg.what);
                        msg.what);
@@ -2386,6 +2404,24 @@ public class SatelliteController extends Handler {
            boolean isEmergency, @NonNull IIntegerConsumer callback) {
            boolean isEmergency, @NonNull IIntegerConsumer callback) {
        plogd("requestSatelliteEnabled enableSatellite: " + enableSatellite
        plogd("requestSatelliteEnabled enableSatellite: " + enableSatellite
                + " enableDemoMode: " + enableDemoMode + " isEmergency: " + isEmergency);
                + " 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);
        Consumer<Integer> result = FunctionalUtils.ignoreRemoteException(callback::accept);
        int error = evaluateOemSatelliteRequestAllowed(true);
        int error = evaluateOemSatelliteRequestAllowed(true);
        if (error != SATELLITE_RESULT_SUCCESS) {
        if (error != SATELLITE_RESULT_SUCCESS) {
+2 −0
Original line number Original line Diff line number Diff line
@@ -729,6 +729,8 @@ public class SatelliteControllerTest extends TelephonyTest {
        doReturn(mSubscriptionInfo).when(mMockSubscriptionManagerService).getSubscriptionInfo(
        doReturn(mSubscriptionInfo).when(mMockSubscriptionManagerService).getSubscriptionInfo(
                anyInt());
                anyInt());
        doReturn("").when(mSubscriptionInfo).getIccId();
        doReturn("").when(mSubscriptionInfo).getIccId();

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


    @After
    @After