Loading src/java/com/android/internal/telephony/satellite/DatagramController.java +2 −1 Original line number Diff line number Diff line Loading @@ -276,7 +276,8 @@ public class DatagramController { mDatagramReceiver.onDeviceAlignedWithSatellite(isAligned); } boolean isReceivingDatagrams() { @VisibleForTesting public boolean isReceivingDatagrams() { synchronized (mLock) { return (mReceiveDatagramTransferState == SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING); Loading src/java/com/android/internal/telephony/satellite/SatelliteController.java +37 −34 Original line number Diff line number Diff line Loading @@ -285,15 +285,6 @@ public class SatelliteController extends Handler { @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE) protected void initializeSatelliteModeRadios() { UwbManager uwbManager = mContext.getSystemService(UwbManager.class); NfcManager nfcManager = mContext.getSystemService(NfcManager.class); NfcAdapter nfcAdapter = null; if (nfcManager != null) { nfcAdapter = nfcManager.getDefaultAdapter(); } BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); WifiManager wifiManager = mContext.getSystemService(WifiManager.class); if (mContentResolver != null) { BTWifiNFCStateReceiver bTWifiNFCSateReceiver = new BTWifiNFCStateReceiver(); UwbAdapterStateCallback uwbAdapterStateCallback = new UwbAdapterStateCallback(); Loading @@ -320,30 +311,41 @@ public class SatelliteController extends Handler { } logd("Radios To be checked when satellite is on: " + satelliteModeRadios); if (satelliteModeRadios.contains(Settings.Global.RADIO_BLUETOOTH) && bluetoothAdapter != null) { if (satelliteModeRadios.contains(Settings.Global.RADIO_BLUETOOTH)) { BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter != null) { mDisableBTOnSatelliteEnabled = true; mBTStateEnabled = bluetoothAdapter.isEnabled(); radioStateIntentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); } } if (satelliteModeRadios.contains(Settings.Global.RADIO_NFC) && nfcAdapter != null) { if (satelliteModeRadios.contains(Settings.Global.RADIO_NFC)) { Context applicationContext = mContext.getApplicationContext(); NfcAdapter nfcAdapter = null; if (applicationContext != null) { nfcAdapter = NfcAdapter.getDefaultAdapter(mContext.getApplicationContext()); } if (nfcAdapter != null) { mDisableNFCOnSatelliteEnabled = true; mNfcStateEnabled = nfcAdapter.isEnabled(); radioStateIntentFilter.addAction(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED); } } if (satelliteModeRadios.contains(Settings.Global.RADIO_WIFI) && wifiManager != null) { if (satelliteModeRadios.contains(Settings.Global.RADIO_WIFI)) { WifiManager wifiManager = mContext.getSystemService(WifiManager.class); if (wifiManager != null) { mDisableWifiOnSatelliteEnabled = true; mWifiStateEnabled = wifiManager.isWifiEnabled(); radioStateIntentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); } } mContext.registerReceiver(bTWifiNFCSateReceiver, radioStateIntentFilter); if (satelliteModeRadios.contains(Settings.Global.RADIO_UWB) && uwbManager != null) { if (satelliteModeRadios.contains(Settings.Global.RADIO_UWB)) { UwbManager uwbManager = mContext.getSystemService(UwbManager.class); if (uwbManager != null) { mDisableUWBOnSatelliteEnabled = true; mUwbStateEnabled = uwbManager.isUwbEnabled(); final long identity = Binder.clearCallingIdentity(); Loading @@ -354,6 +356,7 @@ public class SatelliteController extends Handler { Binder.restoreCallingIdentity(identity); } } } logd("mDisableBTOnSatelliteEnabled: " + mDisableBTOnSatelliteEnabled + " mDisableNFCOnSatelliteEnabled: " + mDisableNFCOnSatelliteEnabled Loading tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java +41 −0 Original line number Diff line number Diff line Loading @@ -428,6 +428,47 @@ public class DatagramDispatcherTest extends TelephonyTest { verifyNoMoreInteractions(mMockDatagramController); } @Test public void testOnSatelliteModemStateChanged_modemStateListening() { mDatagramDispatcherUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_LISTENING); processAllMessages(); verifyNoMoreInteractions(mMockDatagramController); } @Test public void testOnSatelliteModemStateChanged_modemStateOff_modemSendingDatagrams() { mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, DATAGRAM_TYPE1, mDatagram, true, mResultListener::offer); mDatagramDispatcherUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_OFF); processAllMessages(); mInOrder.verify(mMockDatagramController) .updateSendStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED), eq(1), eq(SatelliteManager.SATELLITE_REQUEST_ABORTED)); mInOrder.verify(mMockDatagramController) .updateSendStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0), eq(SatelliteManager.SATELLITE_ERROR_NONE)); } @Test public void testOnSatelliteModemStateChanged_modemStateOff_modemNotSendingDatagrams() { mDatagramDispatcherUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_OFF); processAllMessages(); mInOrder.verify(mMockDatagramController) .updateSendStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0), eq(SatelliteManager.SATELLITE_ERROR_NONE)); } private static class TestDatagramDispatcher extends DatagramDispatcher { private long mLong = SATELLITE_ALIGN_TIMEOUT; Loading tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java +71 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.internal.telephony.satellite.DatagramController.SATELL import android.annotation.NonNull; import android.content.Context; import android.provider.Telephony; import android.telephony.satellite.ISatelliteDatagramCallback; import android.test.mock.MockContentResolver; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; Loading @@ -36,15 +37,19 @@ import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import android.os.AsyncResult; import android.os.Looper; import android.os.Message; import android.os.IBinder; import android.os.RemoteException; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.util.Pair; import com.android.internal.telephony.IVoidConsumer; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.TelephonyTest; Loading Loading @@ -73,6 +78,7 @@ public class DatagramReceiverTest extends TelephonyTest { private DatagramReceiver.SatelliteDatagramListenerHandler mSatelliteDatagramListenerHandler; private TestDatagramReceiver mTestDemoModeDatagramReceiver; @Mock private SatelliteController mMockSatelliteController; @Mock private DatagramController mMockDatagramController; @Mock private SatelliteModemInterface mMockSatelliteModemInterface; @Mock private ControllerMetricsStats mMockControllerMetricsStats; Loading @@ -97,6 +103,7 @@ public class DatagramReceiverTest extends TelephonyTest { Telephony.SatelliteDatagrams.PROVIDER_NAME, mFakeSatelliteProvider); doReturn(mMockContentResolver).when(mContext).getContentResolver(); replaceInstance(SatelliteController.class, "sInstance", null, mMockSatelliteController); replaceInstance(DatagramController.class, "sInstance", null, mMockDatagramController); replaceInstance(SatelliteModemInterface.class, "sInstance", null, Loading Loading @@ -406,6 +413,70 @@ public class DatagramReceiverTest extends TelephonyTest { assertThat(mResultListener.peek()).isEqualTo(SatelliteManager.SATELLITE_MODEM_BUSY); } @Test public void testOnSatelliteModemStateChanged_modemStateIdle() { mDatagramReceiverUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_IDLE); processAllMessages(); verifyNoMoreInteractions(mMockDatagramController); } @Test public void testOnSatelliteModemStateChanged_modemStateOff_modemReceivingDatagrams() { when(mMockDatagramController.isReceivingDatagrams()).thenReturn(true); when(mMockDatagramController.getReceivePendingCount()).thenReturn(10); mDatagramReceiverUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_OFF); processAllMessages(); mInOrder.verify(mMockDatagramController) .updateReceiveStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED), eq(10), eq(SatelliteManager.SATELLITE_REQUEST_ABORTED)); mInOrder.verify(mMockDatagramController) .updateReceiveStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0), eq(SatelliteManager.SATELLITE_ERROR_NONE)); } @Test public void testOnSatelliteModemStateChanged_modemStateOff_modemNotReceivingDatagrams() { when(mMockDatagramController.isReceivingDatagrams()).thenReturn(false); mDatagramReceiverUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_OFF); processAllMessages(); mInOrder.verify(mMockDatagramController) .updateReceiveStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0), eq(SatelliteManager.SATELLITE_ERROR_NONE)); } @Test public void testRegisterForSatelliteDatagram_satelliteNotSupported() { when(mMockSatelliteController.isSatelliteSupported()).thenReturn(false); ISatelliteDatagramCallback callback = new ISatelliteDatagramCallback() { @Override public void onSatelliteDatagramReceived(long datagramId, SatelliteDatagram datagram, int pendingCount, IVoidConsumer callback) throws RemoteException { logd("onSatelliteDatagramReceived"); } @Override public IBinder asBinder() { return null; } }; assertThat(mDatagramReceiverUT.registerForSatelliteDatagram(SUB_ID, callback)) .isEqualTo(SatelliteManager.SATELLITE_NOT_SUPPORTED); } private static class TestDatagramReceiver extends DatagramReceiver { private long mLong = SATELLITE_ALIGN_TIMEOUT; Loading Loading
src/java/com/android/internal/telephony/satellite/DatagramController.java +2 −1 Original line number Diff line number Diff line Loading @@ -276,7 +276,8 @@ public class DatagramController { mDatagramReceiver.onDeviceAlignedWithSatellite(isAligned); } boolean isReceivingDatagrams() { @VisibleForTesting public boolean isReceivingDatagrams() { synchronized (mLock) { return (mReceiveDatagramTransferState == SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVING); Loading
src/java/com/android/internal/telephony/satellite/SatelliteController.java +37 −34 Original line number Diff line number Diff line Loading @@ -285,15 +285,6 @@ public class SatelliteController extends Handler { @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE) protected void initializeSatelliteModeRadios() { UwbManager uwbManager = mContext.getSystemService(UwbManager.class); NfcManager nfcManager = mContext.getSystemService(NfcManager.class); NfcAdapter nfcAdapter = null; if (nfcManager != null) { nfcAdapter = nfcManager.getDefaultAdapter(); } BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); WifiManager wifiManager = mContext.getSystemService(WifiManager.class); if (mContentResolver != null) { BTWifiNFCStateReceiver bTWifiNFCSateReceiver = new BTWifiNFCStateReceiver(); UwbAdapterStateCallback uwbAdapterStateCallback = new UwbAdapterStateCallback(); Loading @@ -320,30 +311,41 @@ public class SatelliteController extends Handler { } logd("Radios To be checked when satellite is on: " + satelliteModeRadios); if (satelliteModeRadios.contains(Settings.Global.RADIO_BLUETOOTH) && bluetoothAdapter != null) { if (satelliteModeRadios.contains(Settings.Global.RADIO_BLUETOOTH)) { BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter != null) { mDisableBTOnSatelliteEnabled = true; mBTStateEnabled = bluetoothAdapter.isEnabled(); radioStateIntentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); } } if (satelliteModeRadios.contains(Settings.Global.RADIO_NFC) && nfcAdapter != null) { if (satelliteModeRadios.contains(Settings.Global.RADIO_NFC)) { Context applicationContext = mContext.getApplicationContext(); NfcAdapter nfcAdapter = null; if (applicationContext != null) { nfcAdapter = NfcAdapter.getDefaultAdapter(mContext.getApplicationContext()); } if (nfcAdapter != null) { mDisableNFCOnSatelliteEnabled = true; mNfcStateEnabled = nfcAdapter.isEnabled(); radioStateIntentFilter.addAction(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED); } } if (satelliteModeRadios.contains(Settings.Global.RADIO_WIFI) && wifiManager != null) { if (satelliteModeRadios.contains(Settings.Global.RADIO_WIFI)) { WifiManager wifiManager = mContext.getSystemService(WifiManager.class); if (wifiManager != null) { mDisableWifiOnSatelliteEnabled = true; mWifiStateEnabled = wifiManager.isWifiEnabled(); radioStateIntentFilter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION); } } mContext.registerReceiver(bTWifiNFCSateReceiver, radioStateIntentFilter); if (satelliteModeRadios.contains(Settings.Global.RADIO_UWB) && uwbManager != null) { if (satelliteModeRadios.contains(Settings.Global.RADIO_UWB)) { UwbManager uwbManager = mContext.getSystemService(UwbManager.class); if (uwbManager != null) { mDisableUWBOnSatelliteEnabled = true; mUwbStateEnabled = uwbManager.isUwbEnabled(); final long identity = Binder.clearCallingIdentity(); Loading @@ -354,6 +356,7 @@ public class SatelliteController extends Handler { Binder.restoreCallingIdentity(identity); } } } logd("mDisableBTOnSatelliteEnabled: " + mDisableBTOnSatelliteEnabled + " mDisableNFCOnSatelliteEnabled: " + mDisableNFCOnSatelliteEnabled Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramDispatcherTest.java +41 −0 Original line number Diff line number Diff line Loading @@ -428,6 +428,47 @@ public class DatagramDispatcherTest extends TelephonyTest { verifyNoMoreInteractions(mMockDatagramController); } @Test public void testOnSatelliteModemStateChanged_modemStateListening() { mDatagramDispatcherUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_LISTENING); processAllMessages(); verifyNoMoreInteractions(mMockDatagramController); } @Test public void testOnSatelliteModemStateChanged_modemStateOff_modemSendingDatagrams() { mDatagramDispatcherUT.sendSatelliteDatagram(SUB_ID, DATAGRAM_TYPE1, mDatagram, true, mResultListener::offer); mDatagramDispatcherUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_OFF); processAllMessages(); mInOrder.verify(mMockDatagramController) .updateSendStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_SEND_FAILED), eq(1), eq(SatelliteManager.SATELLITE_REQUEST_ABORTED)); mInOrder.verify(mMockDatagramController) .updateSendStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0), eq(SatelliteManager.SATELLITE_ERROR_NONE)); } @Test public void testOnSatelliteModemStateChanged_modemStateOff_modemNotSendingDatagrams() { mDatagramDispatcherUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_OFF); processAllMessages(); mInOrder.verify(mMockDatagramController) .updateSendStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0), eq(SatelliteManager.SATELLITE_ERROR_NONE)); } private static class TestDatagramDispatcher extends DatagramDispatcher { private long mLong = SATELLITE_ALIGN_TIMEOUT; Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/DatagramReceiverTest.java +71 −0 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.internal.telephony.satellite.DatagramController.SATELL import android.annotation.NonNull; import android.content.Context; import android.provider.Telephony; import android.telephony.satellite.ISatelliteDatagramCallback; import android.test.mock.MockContentResolver; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; Loading @@ -36,15 +37,19 @@ import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verifyNoMoreInteractions; import static org.mockito.Mockito.when; import android.os.AsyncResult; import android.os.Looper; import android.os.Message; import android.os.IBinder; import android.os.RemoteException; import android.telephony.satellite.SatelliteDatagram; import android.telephony.satellite.SatelliteManager; import android.util.Pair; import com.android.internal.telephony.IVoidConsumer; import com.android.internal.telephony.Phone; import com.android.internal.telephony.PhoneFactory; import com.android.internal.telephony.TelephonyTest; Loading Loading @@ -73,6 +78,7 @@ public class DatagramReceiverTest extends TelephonyTest { private DatagramReceiver.SatelliteDatagramListenerHandler mSatelliteDatagramListenerHandler; private TestDatagramReceiver mTestDemoModeDatagramReceiver; @Mock private SatelliteController mMockSatelliteController; @Mock private DatagramController mMockDatagramController; @Mock private SatelliteModemInterface mMockSatelliteModemInterface; @Mock private ControllerMetricsStats mMockControllerMetricsStats; Loading @@ -97,6 +103,7 @@ public class DatagramReceiverTest extends TelephonyTest { Telephony.SatelliteDatagrams.PROVIDER_NAME, mFakeSatelliteProvider); doReturn(mMockContentResolver).when(mContext).getContentResolver(); replaceInstance(SatelliteController.class, "sInstance", null, mMockSatelliteController); replaceInstance(DatagramController.class, "sInstance", null, mMockDatagramController); replaceInstance(SatelliteModemInterface.class, "sInstance", null, Loading Loading @@ -406,6 +413,70 @@ public class DatagramReceiverTest extends TelephonyTest { assertThat(mResultListener.peek()).isEqualTo(SatelliteManager.SATELLITE_MODEM_BUSY); } @Test public void testOnSatelliteModemStateChanged_modemStateIdle() { mDatagramReceiverUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_IDLE); processAllMessages(); verifyNoMoreInteractions(mMockDatagramController); } @Test public void testOnSatelliteModemStateChanged_modemStateOff_modemReceivingDatagrams() { when(mMockDatagramController.isReceivingDatagrams()).thenReturn(true); when(mMockDatagramController.getReceivePendingCount()).thenReturn(10); mDatagramReceiverUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_OFF); processAllMessages(); mInOrder.verify(mMockDatagramController) .updateReceiveStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_RECEIVE_FAILED), eq(10), eq(SatelliteManager.SATELLITE_REQUEST_ABORTED)); mInOrder.verify(mMockDatagramController) .updateReceiveStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0), eq(SatelliteManager.SATELLITE_ERROR_NONE)); } @Test public void testOnSatelliteModemStateChanged_modemStateOff_modemNotReceivingDatagrams() { when(mMockDatagramController.isReceivingDatagrams()).thenReturn(false); mDatagramReceiverUT.onSatelliteModemStateChanged( SatelliteManager.SATELLITE_MODEM_STATE_OFF); processAllMessages(); mInOrder.verify(mMockDatagramController) .updateReceiveStatus(anyInt(), eq(SatelliteManager.SATELLITE_DATAGRAM_TRANSFER_STATE_IDLE), eq(0), eq(SatelliteManager.SATELLITE_ERROR_NONE)); } @Test public void testRegisterForSatelliteDatagram_satelliteNotSupported() { when(mMockSatelliteController.isSatelliteSupported()).thenReturn(false); ISatelliteDatagramCallback callback = new ISatelliteDatagramCallback() { @Override public void onSatelliteDatagramReceived(long datagramId, SatelliteDatagram datagram, int pendingCount, IVoidConsumer callback) throws RemoteException { logd("onSatelliteDatagramReceived"); } @Override public IBinder asBinder() { return null; } }; assertThat(mDatagramReceiverUT.registerForSatelliteDatagram(SUB_ID, callback)) .isEqualTo(SatelliteManager.SATELLITE_NOT_SUPPORTED); } private static class TestDatagramReceiver extends DatagramReceiver { private long mLong = SATELLITE_ALIGN_TIMEOUT; Loading