From 27fc25ecfb3de3df9c022b277ba637fe0b7d68bb Mon Sep 17 00:00:00 2001 From: Pengquan Meng Date: Tue, 27 Nov 2018 16:45:17 -0800 Subject: [PATCH] Add FrequencyRange comparator to ServiceState The FrequencyRange is not comparable beucase it's an enum. This change add a comparator to ServiceState to make the enum comparable. Bug: 111453000 Test: atest FrameworksTelephonyTests Change-Id: I59a595bdaf5451d2c4d95b1b5bdfefcba123fea7 --- .../java/android/telephony/ServiceState.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java index 13fbeaaa02b77..ca0c854a1a756 100644 --- a/telephony/java/android/telephony/ServiceState.java +++ b/telephony/java/android/telephony/ServiceState.java @@ -118,6 +118,13 @@ public class ServiceState implements Parcelable { */ public static final int FREQUENCY_RANGE_MMWAVE = 4; + private static final List FREQUENCY_RANGE_ORDER = Arrays.asList( + FREQUENCY_RANGE_UNKNOWN, + FREQUENCY_RANGE_LOW, + FREQUENCY_RANGE_MID, + FREQUENCY_RANGE_HIGH, + FREQUENCY_RANGE_MMWAVE); + /** @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = "DUPLEX_MODE_", @@ -1835,4 +1842,13 @@ public class ServiceState implements Parcelable { mNetworkRegistrationStates.add(regState); } } + + /** + * @hide + */ + public static final int getBetterNRFrequencyRange(int range1, int range2) { + return FREQUENCY_RANGE_ORDER.indexOf(range1) > FREQUENCY_RANGE_ORDER.indexOf(range2) + ? range1 + : range2; + } }