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

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

Merge "Added Changes relates to AntennaPosition" into udc-dev

parents 07b8b9f0 6aeea996
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ import android.os.AsyncResult;
import android.os.Binder;
import android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.satellite.AntennaPosition;
import android.telephony.satellite.PointingInfo;
import android.telephony.satellite.SatelliteCapabilities;
import android.telephony.satellite.SatelliteDatagram;
@@ -39,6 +40,8 @@ import com.android.internal.telephony.SubscriptionController;
import com.android.internal.telephony.subscription.SubscriptionManagerService;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;

/**
@@ -157,11 +160,23 @@ public class SatelliteServiceUtils {
        if (capabilities == null) return null;
        int[] radioTechnologies = capabilities.supportedRadioTechnologies == null
                ? new int[0] : capabilities.supportedRadioTechnologies;

        Map<Integer, AntennaPosition> antennaPositionMap = new HashMap<>();
        int[] antennaPositionKeys = capabilities.antennaPositionKeys;
        AntennaPosition[] antennaPositionValues = capabilities.antennaPositionValues;
        if (antennaPositionKeys != null && antennaPositionValues != null &&
                antennaPositionKeys.length == antennaPositionValues.length) {
            for(int i = 0; i < antennaPositionKeys.length; i++) {
                antennaPositionMap.put(antennaPositionKeys[i], antennaPositionValues[i]);
            }
        }

        return new SatelliteCapabilities(
                Arrays.stream(radioTechnologies)
                        .map(SatelliteServiceUtils::fromSatelliteRadioTechnology)
                        .boxed().collect(Collectors.toSet()),
                capabilities.isPointingRequired, capabilities.maxBytesPerOutgoingDatagram);
                capabilities.isPointingRequired, capabilities.maxBytesPerOutgoingDatagram,
                antennaPositionMap);
    }

    /**
+52 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.internal.telephony.satellite;

import static com.google.common.truth.Truth.assertThat;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;

import android.os.Parcel;
import android.telephony.satellite.AntennaDirection;

import org.junit.Test;

public class AntennaDirectionTest {

    @Test
    public void testParcel() {
        AntennaDirection antennaDirection = new AntennaDirection(1, 2, 3);

        Parcel p = Parcel.obtain();
        antennaDirection.writeToParcel(p, 0);
        p.setDataPosition(0);

        AntennaDirection fromParcel = AntennaDirection.CREATOR.createFromParcel(p);
        assertThat(antennaDirection).isEqualTo(fromParcel);
    }

    @Test
    public void testEquals() {
        AntennaDirection antennaDirection1 = new AntennaDirection(1.12f, 1.13f, 1.14f);
        AntennaDirection antennaDirection2 = new AntennaDirection(1.12f, 1.13f, 1.14f);
        assertEquals(antennaDirection1, antennaDirection2);

        AntennaDirection antennaDirection3 = new AntennaDirection(1.121f, 1.131f, 1.141f);
        assertNotEquals(antennaDirection1, antennaDirection3);
    }
}
+60 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.internal.telephony.satellite;

import static com.google.common.truth.Truth.assertThat;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;

import android.os.Parcel;
import android.telephony.satellite.AntennaDirection;
import android.telephony.satellite.AntennaPosition;
import android.telephony.satellite.SatelliteManager;

import org.junit.Test;

public class AntennaPositionTest {

    private AntennaDirection mAntennaDirection = new AntennaDirection(1,1,1);

    @Test
    public void testParcel() {
        AntennaPosition antennaPosition = new AntennaPosition(mAntennaDirection,
                SatelliteManager.DEVICE_HOLD_POSITION_PORTRAIT);

        Parcel p = Parcel.obtain();
        antennaPosition.writeToParcel(p, 0);
        p.setDataPosition(0);

        AntennaPosition fromParcel = AntennaPosition.CREATOR.createFromParcel(p);
        assertThat(antennaPosition).isEqualTo(fromParcel);
    }

    @Test
    public void testEquals() {
        AntennaPosition antennaPosition1 = new AntennaPosition(mAntennaDirection,
                SatelliteManager.DEVICE_HOLD_POSITION_PORTRAIT);
        AntennaPosition antennaPosition2 = new AntennaPosition(mAntennaDirection,
                SatelliteManager.DEVICE_HOLD_POSITION_PORTRAIT);
        assertEquals(antennaPosition1, antennaPosition2);

        AntennaPosition antennaPosition3 = new AntennaPosition(mAntennaDirection,
                SatelliteManager.DEVICE_HOLD_POSITION_LANDSCAPE_LEFT);
        assertNotEquals(antennaPosition1, antennaPosition3);
    }
}
+134 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2023 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.internal.telephony.satellite;

import static com.google.common.truth.Truth.assertThat;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;

import android.os.Parcel;
import android.telephony.satellite.AntennaDirection;
import android.telephony.satellite.AntennaPosition;
import android.telephony.satellite.SatelliteCapabilities;
import android.telephony.satellite.SatelliteManager;

import org.junit.Test;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

public class SatelliteCapabilitiesTest {

    private AntennaDirection mAntennaDirection = new AntennaDirection(1,1,1);

    @Test
    public void testParcel() {
        Set<Integer> satelliteRadioTechnologies = new HashSet<>();
        satelliteRadioTechnologies.add(SatelliteManager.NT_RADIO_TECHNOLOGY_NB_IOT_NTN);
        satelliteRadioTechnologies.add(SatelliteManager.NT_RADIO_TECHNOLOGY_NR_NTN);

        Map<Integer, AntennaPosition> antennaPositionMap = new HashMap<>();
        AntennaPosition antennaPosition = new AntennaPosition(mAntennaDirection,
                SatelliteManager.DEVICE_HOLD_POSITION_PORTRAIT);
        antennaPositionMap.put(SatelliteManager.DISPLAY_MODE_OPENED, antennaPosition);

        SatelliteCapabilities capabilities = new SatelliteCapabilities(satelliteRadioTechnologies,
                true, 10, antennaPositionMap);

        Parcel p = Parcel.obtain();
        capabilities.writeToParcel(p, 0);
        p.setDataPosition(0);

        SatelliteCapabilities fromParcel = SatelliteCapabilities.CREATOR.createFromParcel(p);
        assertThat(capabilities).isEqualTo(fromParcel);
    }

    @Test
    public void testParcel_emptySatelliteRadioTechnologies() {
        Set<Integer> satelliteRadioTechnologies = new HashSet<>();

        Map<Integer, AntennaPosition> antennaPositionMap = new HashMap<>();
        AntennaPosition antennaPosition1 = new AntennaPosition(mAntennaDirection,
                SatelliteManager.DEVICE_HOLD_POSITION_PORTRAIT);
        AntennaPosition antennaPosition2 = new AntennaPosition(mAntennaDirection,
                SatelliteManager.DEVICE_HOLD_POSITION_LANDSCAPE_LEFT);
        antennaPositionMap.put(SatelliteManager.DISPLAY_MODE_OPENED, antennaPosition1);
        antennaPositionMap.put(SatelliteManager.DISPLAY_MODE_CLOSED, antennaPosition2);

        SatelliteCapabilities capabilities = new SatelliteCapabilities(satelliteRadioTechnologies,
                false, 100, antennaPositionMap);

        Parcel p = Parcel.obtain();
        capabilities.writeToParcel(p, 0);
        p.setDataPosition(0);

        SatelliteCapabilities fromParcel = SatelliteCapabilities.CREATOR.createFromParcel(p);
        assertThat(capabilities).isEqualTo(fromParcel);
    }


    @Test
    public void testParcel_emptyAntennaPosition() {
        Set<Integer> satelliteRadioTechnologies = new HashSet<>();
        satelliteRadioTechnologies.add(SatelliteManager.NT_RADIO_TECHNOLOGY_EMTC_NTN);

        SatelliteCapabilities capabilities = new SatelliteCapabilities(satelliteRadioTechnologies,
                true, 0, new HashMap<>());

        Parcel p = Parcel.obtain();
        capabilities.writeToParcel(p, 0);
        p.setDataPosition(0);

        SatelliteCapabilities fromParcel = SatelliteCapabilities.CREATOR.createFromParcel(p);
        assertThat(capabilities).isEqualTo(fromParcel);
    }

    @Test
    public void testEquals() {
        Set<Integer> satelliteRadioTechnologies = new HashSet<>();
        satelliteRadioTechnologies.add(SatelliteManager.NT_RADIO_TECHNOLOGY_NB_IOT_NTN);
        satelliteRadioTechnologies.add(SatelliteManager.NT_RADIO_TECHNOLOGY_NR_NTN);

        AntennaPosition antennaPosition1 = new AntennaPosition(mAntennaDirection,
                SatelliteManager.DEVICE_HOLD_POSITION_PORTRAIT);
        AntennaPosition antennaPosition2 = new AntennaPosition(mAntennaDirection,
                SatelliteManager.DEVICE_HOLD_POSITION_LANDSCAPE_LEFT);

        Map<Integer, AntennaPosition> antennaPositionMap1 = new HashMap<>();
        antennaPositionMap1.put(SatelliteManager.DISPLAY_MODE_OPENED, antennaPosition1);
        antennaPositionMap1.put(SatelliteManager.DISPLAY_MODE_CLOSED, antennaPosition2);

        SatelliteCapabilities satelliteCapabilities1 =
                new SatelliteCapabilities(satelliteRadioTechnologies, true, 10,
                        antennaPositionMap1);
        SatelliteCapabilities satelliteCapabilities2 =
                new SatelliteCapabilities(satelliteRadioTechnologies, true, 10,
                        antennaPositionMap1);
        assertEquals(satelliteCapabilities1, satelliteCapabilities2);

        Map<Integer, AntennaPosition> antennaPositionMap2 = new HashMap<>();
        antennaPositionMap2.put(SatelliteManager.DISPLAY_MODE_CLOSED, antennaPosition1);
        antennaPositionMap2.put(SatelliteManager.DISPLAY_MODE_OPENED, antennaPosition2);
        satelliteCapabilities2 =
                new SatelliteCapabilities(satelliteRadioTechnologies, true, 10,
                        antennaPositionMap2);
        assertNotEquals(satelliteCapabilities1, satelliteCapabilities2);
    }
}