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

Commit 725e5758 authored by Hakjun Choi's avatar Hakjun Choi
Browse files

Add put extra for pointing UI

As UX team requested different strings for each scenario for PUI
  . emergency demo
  . emergency
  . map location sharing
it is needed PUI to distinguish between emergency vs location share and demo mode

Added put extra information for distinguish them

Bug: 338134191
Test: atest SatelliteControllerTest, PointingAppControllerTest, live e2e test using pointing UI
Change-Id: I9308091ef654b4272355ea7e3e294d081035f3ab
parent 149aa0b7
Loading
Loading
Loading
Loading
+14 −12
Original line number Diff line number Diff line
@@ -62,6 +62,8 @@ public class PointingAppController {
    @NonNull private final Context mContext;
    private boolean mStartedSatelliteTransmissionUpdates;
    private boolean mLastNeedFullScreenPointingUI;
    private boolean mLastIsDemoMode;
    private boolean mLastIsEmergency;
    private boolean mListenerForPointingUIRegistered;
    @NonNull private String mPointingUiPackageName = "";
    @NonNull private String mPointingUiClassName = "";
@@ -105,6 +107,8 @@ public class PointingAppController {
        mContext = context;
        mStartedSatelliteTransmissionUpdates = false;
        mLastNeedFullScreenPointingUI = false;
        mLastIsDemoMode = false;
        mLastIsEmergency = false;
        mListenerForPointingUIRegistered = false;
        mActivityManager = mContext.getSystemService(ActivityManager.class);
    }
@@ -129,15 +133,6 @@ public class PointingAppController {
        return mStartedSatelliteTransmissionUpdates;
    }

    /**
     * Get the flag mStartedSatelliteTransmissionUpdates
     * @return returns mStartedSatelliteTransmissionUpdates
     */
    @VisibleForTesting
    public boolean getLastNeedFullScreenPointingUI() {
        return mLastNeedFullScreenPointingUI;
    }

    /**
     * Listener for handling pointing UI App in the event of crash
     */
@@ -153,7 +148,8 @@ public class PointingAppController {
            if (callerPackages != null) {
                if (Arrays.stream(callerPackages).anyMatch(pointingUiPackage::contains)) {
                    logd("Restarting pointingUI");
                    startPointingUI(mLastNeedFullScreenPointingUI);
                    startPointingUI(mLastNeedFullScreenPointingUI, mLastIsDemoMode,
                            mLastIsEmergency);
                }
            }
        }
@@ -359,7 +355,8 @@ public class PointingAppController {
     * Check if Pointing is needed and Launch Pointing UI
     * @param needFullScreenPointingUI if pointing UI has to be launchd with Full screen
     */
    public void startPointingUI(boolean needFullScreenPointingUI) {
    public void startPointingUI(boolean needFullScreenPointingUI, boolean isDemoMode,
            boolean isEmergency) {
        String packageName = getPointingUiPackageName();
        if (TextUtils.isEmpty(packageName)) {
            logd("startPointingUI: config_pointing_ui_package is not set. Ignore the request");
@@ -379,8 +376,11 @@ public class PointingAppController {
            loge("startPointingUI: launchIntent is null");
            return;
        }
        logd("startPointingUI: needFullScreenPointingUI: " + needFullScreenPointingUI);
        logd("startPointingUI: needFullScreenPointingUI: " + needFullScreenPointingUI
                + ", isDemoMode: " + isDemoMode + ", isEmergency: " + isEmergency);
        launchIntent.putExtra("needFullScreen", needFullScreenPointingUI);
        launchIntent.putExtra("isDemoMode", isDemoMode);
        launchIntent.putExtra("isEmergency", isEmergency);

        try {
            if (!mListenerForPointingUIRegistered) {
@@ -389,6 +389,8 @@ public class PointingAppController {
                mListenerForPointingUIRegistered = true;
            }
            mLastNeedFullScreenPointingUI = needFullScreenPointingUI;
            mLastIsDemoMode = isDemoMode;
            mLastIsEmergency = isEmergency;
            mContext.startActivity(launchIntent);
        } catch (ActivityNotFoundException ex) {
            loge("startPointingUI: Pointing UI app activity is not found, ex=" + ex);
+6 −1
Original line number Diff line number Diff line
@@ -300,6 +300,7 @@ public class SatelliteController extends Handler {
    @GuardedBy("mIsSatelliteSupportedLock")
    private Boolean mIsSatelliteSupported = null;
    private boolean mIsDemoModeEnabled = false;
    private boolean mIsEmergency = false;
    private final Object mIsSatelliteEnabledLock = new Object();
    @GuardedBy("mIsSatelliteEnabledLock")
    private Boolean mIsSatelliteEnabled = null;
@@ -2003,7 +2004,9 @@ public class SatelliteController extends Handler {
         * TODO for NTN-based satellites: Check if satellite is acquired.
         */
        if (mNeedsSatellitePointing) {
            mPointingAppController.startPointingUI(needFullScreenPointingUI);

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

        final int validSubId = SatelliteServiceUtils.getValidSatelliteSubId(subId, mContext);
@@ -3496,6 +3499,7 @@ public class SatelliteController extends Handler {
                    && mWaitingForRadioDisabled) {
                logd("Sending success to callback that sent enable satellite request");
                setDemoModeEnabled(mSatelliteEnabledRequest.enableDemoMode);
                mIsEmergency = mSatelliteEnabledRequest.isEmergency;
                synchronized (mIsSatelliteEnabledLock) {
                    mIsSatelliteEnabled = mSatelliteEnabledRequest.enableSatellite;
                }
@@ -3523,6 +3527,7 @@ public class SatelliteController extends Handler {
        synchronized (mIsSatelliteEnabledLock) {
            resetSatelliteEnabledRequest();
            setDemoModeEnabled(false);
            mIsEmergency = false;
            mIsSatelliteEnabled = false;
            setSettingsKeyForSatelliteMode(SATELLITE_MODE_ENABLED_FALSE);
            if (callback != null) callback.accept(error);
+19 −6
Original line number Diff line number Diff line
@@ -76,6 +76,8 @@ public class PointingAppControllerTest extends TelephonyTest {
    private static final String KEY_POINTING_UI_PACKAGE_NAME = "default_pointing_ui_package";
    private static final String KEY_POINTING_UI_CLASS_NAME = "default_pointing_ui_class";
    private static final String KEY_NEED_FULL_SCREEN = "needFullScreen";
    private static final String KEY_IS_DEMO_MODE = "isDemoMode";
    private static final String KEY_IS_EMERGENCY = "isEmergency";

    private PointingAppController mPointingAppController;
    InOrder mInOrder;
@@ -312,7 +314,7 @@ public class PointingAppControllerTest extends TelephonyTest {
    @Test
    public void testStartPointingUI() throws Exception {
        ArgumentCaptor<Intent> startedIntentCaptor = ArgumentCaptor.forClass(Intent.class);
        mPointingAppController.startPointingUI(true);
        mPointingAppController.startPointingUI(true, true, true);
        verify(mContext).startActivity(startedIntentCaptor.capture());
        Intent intent = startedIntentCaptor.getValue();
        assertEquals(KEY_POINTING_UI_PACKAGE_NAME, intent.getComponent().getPackageName());
@@ -320,19 +322,24 @@ public class PointingAppControllerTest extends TelephonyTest {
        Bundle b = intent.getExtras();
        assertTrue(b.containsKey(KEY_NEED_FULL_SCREEN));
        assertTrue(b.getBoolean(KEY_NEED_FULL_SCREEN));
        assertTrue(b.containsKey(KEY_IS_DEMO_MODE));
        assertTrue(b.getBoolean(KEY_IS_DEMO_MODE));
        assertTrue(b.containsKey(KEY_IS_EMERGENCY));
        assertTrue(b.getBoolean(KEY_IS_EMERGENCY));
    }

    @Test
    public void testRestartPointingUi() throws Exception {
        mPointingAppController.startPointingUI(true);
        mPointingAppController.startPointingUI(true, false, true);
        mInOrderForPointingUi.verify(mContext).startActivity(any(Intent.class));
        testRestartPointingUi(true);
        mPointingAppController.startPointingUI(false);
        testRestartPointingUi(true, false, true);
        mPointingAppController.startPointingUI(false, true, false);
        mInOrderForPointingUi.verify(mContext).startActivity(any(Intent.class));
        testRestartPointingUi(false);
        testRestartPointingUi(false, true, false);
    }

    private void testRestartPointingUi(boolean expectedFullScreen) {
    private void testRestartPointingUi(boolean expectedFullScreen, boolean expectedDemoMode,
            boolean expectedEmergency) {
        when(mContext.getPackageManager()).thenReturn(mPackageManager);
        doReturn(new String[]{KEY_POINTING_UI_PACKAGE_NAME}).when(mPackageManager)
            .getPackagesForUid(anyInt());
@@ -346,6 +353,12 @@ public class PointingAppControllerTest extends TelephonyTest {
        assertTrue(b.containsKey(KEY_NEED_FULL_SCREEN));
        // Checking if last value of KEY_NEED_FULL_SCREEN is taken or not
        assertEquals(expectedFullScreen, b.getBoolean(KEY_NEED_FULL_SCREEN));
        assertTrue(b.containsKey(KEY_IS_DEMO_MODE));
        // Checking if last value of KEY_IS_DEMO_MODE is taken or not
        assertEquals(expectedDemoMode, b.getBoolean(KEY_IS_DEMO_MODE));
        assertTrue(b.containsKey(KEY_IS_EMERGENCY));
        // Checking if last value of KEY_IS_EMERGENCY is taken or not
        assertEquals(expectedEmergency, b.getBoolean(KEY_IS_EMERGENCY));
    }

    @Test
+4 −2
Original line number Diff line number Diff line
@@ -806,7 +806,8 @@ public class SatelliteControllerTest extends TelephonyTest {
        assertTrue(waitForIIntegerConsumerResult(1));
        assertEquals(SATELLITE_RESULT_INVALID_MODEM_STATE, (long) mIIntegerConsumerResults.get(0));
        verifySatelliteEnabled(false, SATELLITE_RESULT_SUCCESS);
        verify(mMockPointingAppController, never()).startPointingUI(anyBoolean());
        verify(mMockPointingAppController, never()).startPointingUI(anyBoolean(), anyBoolean(),
                anyBoolean());
        assertFalse(mSatelliteControllerUT.setSettingsKeyForSatelliteModeCalled);
        verify(mMockControllerMetricsStats, times(1)).reportServiceEnablementFailCount();

@@ -1416,7 +1417,8 @@ public class SatelliteControllerTest extends TelephonyTest {
        verify(mMockDatagramController, times(1)).sendSatelliteDatagram(anyInt(),
                eq(SatelliteManager.DATAGRAM_TYPE_SOS_MESSAGE), eq(datagram), eq(true),
                any());
        verify(mMockPointingAppController, times(1)).startPointingUI(eq(true));
        verify(mMockPointingAppController, times(1)).startPointingUI(eq(true), anyBoolean(),
                anyBoolean());
    }

    @Test