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

Commit 47ecbaf0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add NR bands to service state."

parents c70e0d3b f081b351
Loading
Loading
Loading
Loading
+105 −2
Original line number Diff line number Diff line
@@ -4,8 +4,8 @@ import static android.telephony.ServiceState.DUPLEX_MODE_FDD;
import static android.telephony.ServiceState.DUPLEX_MODE_TDD;
import static android.telephony.ServiceState.DUPLEX_MODE_UNKNOWN;

import android.telephony.AccessNetworkConstants.EutranBandArfcnFrequency;
import android.telephony.AccessNetworkConstants.EutranBand;
import android.telephony.AccessNetworkConstants.EutranBandArfcnFrequency;
import android.telephony.AccessNetworkConstants.GeranBand;
import android.telephony.AccessNetworkConstants.GeranBandArfcnFrequency;
import android.telephony.AccessNetworkConstants.NgranArfcnFrequency;
@@ -13,7 +13,6 @@ import android.telephony.AccessNetworkConstants.NgranBands;
import android.telephony.AccessNetworkConstants.UtranBand;
import android.telephony.AccessNetworkConstants.UtranBandArfcnFrequency;
import android.telephony.ServiceState.DuplexMode;
import android.util.Log;

import java.util.Arrays;
import java.util.HashSet;
@@ -231,6 +230,110 @@ public class AccessNetworkUtils {
        return INVALID_BAND;
    }

    /**
     * Gets the NR Operating band for a given downlink NRARFCN.
     *
     * <p>See 3GPP TS 38.104 Table 5.2-1 NR operating bands in FR1 and
     * Table 5.2-2 NR operating bands in FR2
     *
     * @param nrarfcn The downlink NRARFCN
     * @return Operating band number, or {@link #INVALID_BAND} if no corresponding band exists
     */
    public static int getOperatingBandForNrarfcn(int nrarfcn) {
        if (nrarfcn >= 2110 && nrarfcn <= 2170) {
            return NgranBands.BAND_1;
        } else if (nrarfcn >= 1930 && nrarfcn <= 1990) {
            return NgranBands.BAND_2;
        } else if (nrarfcn >= 1805 && nrarfcn <= 1880) {
            return NgranBands.BAND_3;
        } else if (nrarfcn >= 869 && nrarfcn <= 894) {
            return NgranBands.BAND_5;
        } else if (nrarfcn >= 2620 && nrarfcn <= 2690) {
            return NgranBands.BAND_7;
        } else if (nrarfcn >= 925 && nrarfcn <= 960) {
            return NgranBands.BAND_8;
        } else if (nrarfcn >= 729 && nrarfcn <= 746) {
            return NgranBands.BAND_12;
        } else if (nrarfcn >= 758 && nrarfcn <= 768) {
            return NgranBands.BAND_14;
        } else if (nrarfcn >= 860 && nrarfcn <= 875) {
            return NgranBands.BAND_18;
        } else if (nrarfcn >= 791 && nrarfcn <= 821) {
            return NgranBands.BAND_20;
        } else if (nrarfcn >= 1930 && nrarfcn <= 1995) {
            return NgranBands.BAND_25;
        } else if (nrarfcn >= 859 && nrarfcn <= 894) {
            return NgranBands.BAND_26;
        } else if (nrarfcn >= 758 && nrarfcn <= 803) {
            return NgranBands.BAND_28;
        } else if (nrarfcn >= 717 && nrarfcn <= 728) {
            return NgranBands.BAND_29;
        } else if (nrarfcn >= 2350 && nrarfcn <= 2360) {
            return NgranBands.BAND_30;
        } else if (nrarfcn >= 2010 && nrarfcn <= 2025) {
            return NgranBands.BAND_34;
        } else if (nrarfcn >= 2570 && nrarfcn <= 2620) {
            return NgranBands.BAND_38;
        } else if (nrarfcn >= 1880 && nrarfcn <= 1920) {
            return NgranBands.BAND_39;
        } else if (nrarfcn >= 2300 && nrarfcn <= 2400) {
            return NgranBands.BAND_40;
        } else if (nrarfcn >= 2496 && nrarfcn <= 2690) {
            return NgranBands.BAND_41;
        } else if (nrarfcn >= 5150 && nrarfcn <= 5925) {
            return NgranBands.BAND_46;
        } else if (nrarfcn >= 3550 && nrarfcn <= 3700) {
            return NgranBands.BAND_48;
        } else if (nrarfcn >= 1432 && nrarfcn <= 1517) {
            return NgranBands.BAND_50;
        } else if (nrarfcn >= 1427 && nrarfcn <= 1432) {
            return NgranBands.BAND_51;
        } else if (nrarfcn >= 2483 && nrarfcn <= 2495) {
            return NgranBands.BAND_53;
        } else if (nrarfcn >= 2110 && nrarfcn <= 2200) {
            return NgranBands.BAND_65; // BAND_66 has the same channels
        } else if (nrarfcn >= 1995 && nrarfcn <= 2020) {
            return NgranBands.BAND_70;
        } else if (nrarfcn >= 617 && nrarfcn <= 652) {
            return NgranBands.BAND_71;
        } else if (nrarfcn >= 1475 && nrarfcn <= 1518) {
            return NgranBands.BAND_74;
        } else if (nrarfcn >= 1432 && nrarfcn <= 1517) {
            return NgranBands.BAND_75;
        } else if (nrarfcn >= 1427 && nrarfcn <= 1432) {
            return NgranBands.BAND_76;
        } else if (nrarfcn >= 3300 && nrarfcn <= 4200) {
            return NgranBands.BAND_77;
        } else if (nrarfcn >= 3300 && nrarfcn <= 3800) {
            return NgranBands.BAND_78;
        } else if (nrarfcn >= 4400 && nrarfcn <= 5000) {
            return NgranBands.BAND_79;
        } else if (nrarfcn >= 2496 && nrarfcn <= 2690) {
            return NgranBands.BAND_90;
        } else if (nrarfcn >= 1427 && nrarfcn <= 1432) {
            return NgranBands.BAND_91;
        } else if (nrarfcn >= 1427 && nrarfcn <= 1432) {
            return NgranBands.BAND_92;
        } else if (nrarfcn >= 1432 && nrarfcn <= 1517) {
            return NgranBands.BAND_93;
        } else if (nrarfcn >= 1427 && nrarfcn <= 1432) {
            return NgranBands.BAND_94;
        } else if (nrarfcn >= 1432 && nrarfcn <= 1517) {
            return NgranBands.BAND_94;
        } else if (nrarfcn >= 5925 && nrarfcn <= 7125) {
            return NgranBands.BAND_96;
        } else if (nrarfcn >= 26500 && nrarfcn <= 29500) {
            return NgranBands.BAND_257;
        } else if (nrarfcn >= 24250 && nrarfcn <= 27500) {
            return NgranBands.BAND_258;
        } else if (nrarfcn >= 37000 && nrarfcn <= 40000) {
            return NgranBands.BAND_260;
        } else if (nrarfcn >= 27500 && nrarfcn <= 28350) {
            return NgranBands.BAND_261;
        }
        return INVALID_BAND;
    }

    /**
     * Gets the GERAN Operating band for a given ARFCN.
     *