Merge "Fix negative uid stats caused by 464xlat adjust when eBPF is on."
diff --git a/api/current.txt b/api/current.txt
index a6ee08b..cd875bf 100755
--- a/api/current.txt
+++ b/api/current.txt
@@ -17090,6 +17090,63 @@
field public static final int VOWEL_JAMO = 2; // 0x2
}
+ public static abstract interface UCharacter.IndicPositionalCategory {
+ field public static final int BOTTOM = 1; // 0x1
+ field public static final int BOTTOM_AND_LEFT = 2; // 0x2
+ field public static final int BOTTOM_AND_RIGHT = 3; // 0x3
+ field public static final int LEFT = 4; // 0x4
+ field public static final int LEFT_AND_RIGHT = 5; // 0x5
+ field public static final int NA = 0; // 0x0
+ field public static final int OVERSTRUCK = 6; // 0x6
+ field public static final int RIGHT = 7; // 0x7
+ field public static final int TOP = 8; // 0x8
+ field public static final int TOP_AND_BOTTOM = 9; // 0x9
+ field public static final int TOP_AND_BOTTOM_AND_RIGHT = 10; // 0xa
+ field public static final int TOP_AND_LEFT = 11; // 0xb
+ field public static final int TOP_AND_LEFT_AND_RIGHT = 12; // 0xc
+ field public static final int TOP_AND_RIGHT = 13; // 0xd
+ field public static final int VISUAL_ORDER_LEFT = 14; // 0xe
+ }
+
+ public static abstract interface UCharacter.IndicSyllabicCategory {
+ field public static final int AVAGRAHA = 1; // 0x1
+ field public static final int BINDU = 2; // 0x2
+ field public static final int BRAHMI_JOINING_NUMBER = 3; // 0x3
+ field public static final int CANTILLATION_MARK = 4; // 0x4
+ field public static final int CONSONANT = 5; // 0x5
+ field public static final int CONSONANT_DEAD = 6; // 0x6
+ field public static final int CONSONANT_FINAL = 7; // 0x7
+ field public static final int CONSONANT_HEAD_LETTER = 8; // 0x8
+ field public static final int CONSONANT_INITIAL_POSTFIXED = 9; // 0x9
+ field public static final int CONSONANT_KILLER = 10; // 0xa
+ field public static final int CONSONANT_MEDIAL = 11; // 0xb
+ field public static final int CONSONANT_PLACEHOLDER = 12; // 0xc
+ field public static final int CONSONANT_PRECEDING_REPHA = 13; // 0xd
+ field public static final int CONSONANT_PREFIXED = 14; // 0xe
+ field public static final int CONSONANT_SUBJOINED = 15; // 0xf
+ field public static final int CONSONANT_SUCCEEDING_REPHA = 16; // 0x10
+ field public static final int CONSONANT_WITH_STACKER = 17; // 0x11
+ field public static final int GEMINATION_MARK = 18; // 0x12
+ field public static final int INVISIBLE_STACKER = 19; // 0x13
+ field public static final int JOINER = 20; // 0x14
+ field public static final int MODIFYING_LETTER = 21; // 0x15
+ field public static final int NON_JOINER = 22; // 0x16
+ field public static final int NUKTA = 23; // 0x17
+ field public static final int NUMBER = 24; // 0x18
+ field public static final int NUMBER_JOINER = 25; // 0x19
+ field public static final int OTHER = 0; // 0x0
+ field public static final int PURE_KILLER = 26; // 0x1a
+ field public static final int REGISTER_SHIFTER = 27; // 0x1b
+ field public static final int SYLLABLE_MODIFIER = 28; // 0x1c
+ field public static final int TONE_LETTER = 29; // 0x1d
+ field public static final int TONE_MARK = 30; // 0x1e
+ field public static final int VIRAMA = 31; // 0x1f
+ field public static final int VISARGA = 32; // 0x20
+ field public static final int VOWEL = 33; // 0x21
+ field public static final int VOWEL_DEPENDENT = 34; // 0x22
+ field public static final int VOWEL_INDEPENDENT = 35; // 0x23
+ }
+
public static abstract interface UCharacter.JoiningGroup {
field public static final int AFRICAN_FEH = 86; // 0x56
field public static final int AFRICAN_NOON = 87; // 0x57
@@ -17873,6 +17930,13 @@
field public static final int ZANABAZAR_SQUARE_ID = 280; // 0x118
}
+ public static abstract interface UCharacter.VerticalOrientation {
+ field public static final int ROTATED = 0; // 0x0
+ field public static final int TRANSFORMED_ROTATED = 1; // 0x1
+ field public static final int TRANSFORMED_UPRIGHT = 2; // 0x2
+ field public static final int UPRIGHT = 3; // 0x3
+ }
+
public static abstract interface UCharacter.WordBreak {
field public static final int ALETTER = 1; // 0x1
field public static final int CR = 8; // 0x8
@@ -18044,6 +18108,8 @@
field public static final int IDS_TRINARY_OPERATOR = 19; // 0x13
field public static final int ID_CONTINUE = 15; // 0xf
field public static final int ID_START = 16; // 0x10
+ field public static final int INDIC_POSITIONAL_CATEGORY = 4118; // 0x1016
+ field public static final int INDIC_SYLLABIC_CATEGORY = 4119; // 0x1017
field public static final int INT_START = 4096; // 0x1000
field public static final int JOINING_GROUP = 4102; // 0x1006
field public static final int JOINING_TYPE = 4103; // 0x1007
@@ -18097,6 +18163,7 @@
field public static final int UPPERCASE = 30; // 0x1e
field public static final int UPPERCASE_MAPPING = 16396; // 0x400c
field public static final int VARIATION_SELECTOR = 36; // 0x24
+ field public static final int VERTICAL_ORIENTATION = 4120; // 0x1018
field public static final int WHITE_SPACE = 31; // 0x1f
field public static final int WORD_BREAK = 4116; // 0x1014
field public static final int XID_CONTINUE = 32; // 0x20
@@ -18627,6 +18694,7 @@
method public int preceding(int);
method public abstract int previous();
method public void setText(java.lang.String);
+ method public void setText(java.lang.CharSequence);
method public abstract void setText(java.text.CharacterIterator);
field public static final int DONE = -1; // 0xffffffff
field public static final int KIND_CHARACTER = 0; // 0x0
@@ -18655,24 +18723,31 @@
}
public static final class CaseMap.Fold extends android.icu.text.CaseMap {
+ method public java.lang.String apply(java.lang.CharSequence);
method public <A extends java.lang.Appendable> A apply(java.lang.CharSequence, A, android.icu.text.Edits);
method public android.icu.text.CaseMap.Fold omitUnchangedText();
method public android.icu.text.CaseMap.Fold turkic();
}
public static final class CaseMap.Lower extends android.icu.text.CaseMap {
+ method public java.lang.String apply(java.util.Locale, java.lang.CharSequence);
method public <A extends java.lang.Appendable> A apply(java.util.Locale, java.lang.CharSequence, A, android.icu.text.Edits);
method public android.icu.text.CaseMap.Lower omitUnchangedText();
}
public static final class CaseMap.Title extends android.icu.text.CaseMap {
+ method public android.icu.text.CaseMap.Title adjustToCased();
+ method public java.lang.String apply(java.util.Locale, android.icu.text.BreakIterator, java.lang.CharSequence);
method public <A extends java.lang.Appendable> A apply(java.util.Locale, android.icu.text.BreakIterator, java.lang.CharSequence, A, android.icu.text.Edits);
method public android.icu.text.CaseMap.Title noBreakAdjustment();
method public android.icu.text.CaseMap.Title noLowercase();
method public android.icu.text.CaseMap.Title omitUnchangedText();
+ method public android.icu.text.CaseMap.Title sentences();
+ method public android.icu.text.CaseMap.Title wholeString();
}
public static final class CaseMap.Upper extends android.icu.text.CaseMap {
+ method public java.lang.String apply(java.util.Locale, java.lang.CharSequence);
method public <A extends java.lang.Appendable> A apply(java.util.Locale, java.lang.CharSequence, A, android.icu.text.Edits);
method public android.icu.text.CaseMap.Upper omitUnchangedText();
}
@@ -18680,7 +18755,6 @@
public final class CollationElementIterator {
method public int getMaxExpansion(int);
method public int getOffset();
- method public deprecated int hashCode();
method public int next();
method public int previous();
method public static int primaryOrder(int);
@@ -18793,7 +18867,6 @@
method public static android.icu.text.CurrencyPluralInfo getInstance(android.icu.util.ULocale);
method public android.icu.util.ULocale getLocale();
method public android.icu.text.PluralRules getPluralRules();
- method public deprecated int hashCode();
method public void setCurrencyPluralPattern(java.lang.String, java.lang.String);
method public void setLocale(android.icu.util.ULocale);
method public void setPluralRules(java.lang.String);
@@ -19083,7 +19156,6 @@
method public boolean firstDateInPtnIsLaterDate();
method public java.lang.String getFirstPart();
method public java.lang.String getSecondPart();
- method public deprecated java.lang.String toString();
}
public class DateTimePatternGenerator implements java.lang.Cloneable android.icu.util.Freezable {
@@ -19243,6 +19315,8 @@
ctor public DecimalFormatSymbols(java.util.Locale);
ctor public DecimalFormatSymbols(android.icu.util.ULocale);
method public java.lang.Object clone();
+ method public static android.icu.text.DecimalFormatSymbols forNumberingSystem(java.util.Locale, android.icu.text.NumberingSystem);
+ method public static android.icu.text.DecimalFormatSymbols forNumberingSystem(android.icu.util.ULocale, android.icu.text.NumberingSystem);
method public static java.util.Locale[] getAvailableLocales();
method public android.icu.util.Currency getCurrency();
method public java.lang.String getCurrencySymbol();
@@ -19352,11 +19426,15 @@
method public android.icu.text.Edits.Iterator getFineIterator();
method public boolean hasChanges();
method public int lengthDelta();
+ method public android.icu.text.Edits mergeAndAppend(android.icu.text.Edits, android.icu.text.Edits);
+ method public int numberOfChanges();
method public void reset();
}
public static final class Edits.Iterator {
method public int destinationIndex();
+ method public int destinationIndexFromSourceIndex(int);
+ method public boolean findDestinationIndex(int);
method public boolean findSourceIndex(int);
method public boolean hasChange();
method public int newLength();
@@ -19364,6 +19442,7 @@
method public int oldLength();
method public int replacementIndex();
method public int sourceIndex();
+ method public int sourceIndexFromDestinationIndex(int);
}
public abstract class IDNA {
@@ -19766,6 +19845,7 @@
method public int getRadix();
method public boolean isAlgorithmic();
method public static boolean isValidDigitString(java.lang.String);
+ field public static final android.icu.text.NumberingSystem LATIN;
}
public class PluralFormat extends android.icu.text.UFormat {
@@ -19803,7 +19883,6 @@
method public java.util.Set<java.lang.String> getKeywords();
method public java.util.Collection<java.lang.Double> getSamples(java.lang.String);
method public double getUniqueKeywordValue(java.lang.String);
- method public deprecated int hashCode();
method public static android.icu.text.PluralRules parseDescription(java.lang.String) throws java.text.ParseException;
method public java.lang.String select(double);
field public static final android.icu.text.PluralRules DEFAULT;
@@ -20046,7 +20125,6 @@
ctor public StringPrepParseException(java.lang.String, int, java.lang.String, int);
ctor public StringPrepParseException(java.lang.String, int, java.lang.String, int, int);
method public int getError();
- method public deprecated int hashCode();
field public static final int ACE_PREFIX_ERROR = 6; // 0x6
field public static final int BUFFER_OVERFLOW_ERROR = 9; // 0x9
field public static final int CHECK_BIDI_ERROR = 4; // 0x4
@@ -20677,6 +20755,7 @@
public class Currency extends android.icu.util.MeasureUnit {
ctor protected Currency(java.lang.String);
+ method public static android.icu.util.Currency fromJavaCurrency(java.util.Currency);
method public static java.util.Set<android.icu.util.Currency> getAvailableCurrencies();
method public static java.lang.String[] getAvailableCurrencyCodes(android.icu.util.ULocale, java.util.Date);
method public static java.lang.String[] getAvailableCurrencyCodes(java.util.Locale, java.util.Date);
@@ -20702,6 +20781,7 @@
method public java.lang.String getSymbol(java.util.Locale);
method public java.lang.String getSymbol(android.icu.util.ULocale);
method public static boolean isAvailable(java.lang.String, java.util.Date, java.util.Date);
+ method public java.util.Currency toJavaCurrency();
field public static final int LONG_NAME = 1; // 0x1
field public static final int PLURAL_LONG_NAME = 2; // 0x2
field public static final int SYMBOL_NAME = 0; // 0x0
@@ -20717,6 +20797,8 @@
public class CurrencyAmount extends android.icu.util.Measure {
ctor public CurrencyAmount(java.lang.Number, android.icu.util.Currency);
ctor public CurrencyAmount(double, android.icu.util.Currency);
+ ctor public CurrencyAmount(java.lang.Number, java.util.Currency);
+ ctor public CurrencyAmount(double, java.util.Currency);
method public android.icu.util.Currency getCurrency();
}
@@ -42001,6 +42083,7 @@
field public static final java.lang.String KEY_SIM_NETWORK_UNLOCK_ALLOW_DISMISS_BOOL = "sim_network_unlock_allow_dismiss_bool";
field public static final java.lang.String KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL = "sms_requires_destination_number_conversion_bool";
field public static final java.lang.String KEY_SUPPORT_3GPP_CALL_FORWARDING_WHILE_ROAMING_BOOL = "support_3gpp_call_forwarding_while_roaming_bool";
+ field public static final java.lang.String KEY_SUPPORT_CLIR_NETWORK_DEFAULT_BOOL = "support_clir_network_default_bool";
field public static final java.lang.String KEY_SUPPORT_CONFERENCE_CALL_BOOL = "support_conference_call_bool";
field public static final java.lang.String KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL = "support_emergency_sms_over_ims_bool";
field public static final java.lang.String KEY_SUPPORT_PAUSE_IMS_VIDEO_CALLS_BOOL = "support_pause_ims_video_calls_bool";
@@ -42107,6 +42190,7 @@
field public static final int CONNECTION_SECONDARY_SERVING = 2; // 0x2
field public static final int CONNECTION_UNKNOWN = 2147483647; // 0x7fffffff
field public static final android.os.Parcelable.Creator<android.telephony.CellInfo> CREATOR;
+ field public static final int UNAVAILABLE = 2147483647; // 0x7fffffff
}
public final class CellInfoCdma extends android.telephony.CellInfo implements android.os.Parcelable {
diff --git a/cmds/statsd/Android.bp b/cmds/statsd/Android.bp
index b566099..f1bf10c 100644
--- a/cmds/statsd/Android.bp
+++ b/cmds/statsd/Android.bp
@@ -43,3 +43,29 @@
}
+// ==== java proto device library (for test only) ==============================
+java_library {
+ name: "statsdprotolite",
+ no_framework_libs: true,
+ proto: {
+ type: "lite",
+ include_dirs: ["external/protobuf/src"],
+ },
+
+ srcs: [
+ "src/stats_log.proto",
+ "src/statsd_config.proto",
+ "src/perfetto/perfetto_config.proto",
+ "src/atoms.proto",
+ ],
+
+ static_libs: [
+ "platformprotoslite",
+ ],
+ // Protos have lots of MissingOverride and similar.
+ errorprone: {
+ javacflags: ["-XepDisableAllChecks"],
+ },
+}
+
+
diff --git a/cmds/statsd/Android.mk b/cmds/statsd/Android.mk
index 091268e..3dc81fa 100644
--- a/cmds/statsd/Android.mk
+++ b/cmds/statsd/Android.mk
@@ -237,29 +237,6 @@
include $(BUILD_NATIVE_TEST)
##############################
-# stats proto static java lib
-##############################
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := statsdprotolite
-
-LOCAL_SRC_FILES := \
- src/stats_log.proto \
- src/statsd_config.proto \
- src/perfetto/perfetto_config.proto \
- src/atoms.proto
-
-LOCAL_PROTOC_OPTIMIZE_TYPE := lite
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
- platformprotoslite
-
-LOCAL_PROTOC_FLAGS := \
- -Iexternal/protobuf/src
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
-
-##############################
# statsd micro benchmark
##############################
diff --git a/core/java/android/provider/CallLog.java b/core/java/android/provider/CallLog.java
index bc72c4e..c0fa1de 100644
--- a/core/java/android/provider/CallLog.java
+++ b/core/java/android/provider/CallLog.java
@@ -684,6 +684,9 @@
values.put(PHONE_ACCOUNT_ID, accountId);
values.put(PHONE_ACCOUNT_ADDRESS, accountAddress);
values.put(NEW, Integer.valueOf(1));
+ if ((ci != null) && (ci.name != null)) {
+ values.put(CACHED_NAME, ci.name);
+ }
values.put(ADD_FOR_ALL_USERS, addForAllUsers ? 1 : 0);
if (callType == MISSED_TYPE) {
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 584350f..916676a 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -7299,8 +7299,16 @@
public static final String DIALER_DEFAULT_APPLICATION = "dialer_default_application";
/**
- * Specifies the package name currently configured to be the default application to perform
- * the user-defined call redirection service with Telecom.
+ * Specifies the component name currently configured to be the default call screening
+ * application
+ * @hide
+ */
+ public static final String CALL_SCREENING_DEFAULT_COMPONENT =
+ "call_screening_default_component";
+
+ /**
+ * Specifies the component name currently configured to be the default application to
+ * perform the user-defined call redirection service with Telecom.
* @hide
*/
@UnsupportedAppUsage
diff --git a/core/tests/coretests/src/android/provider/SettingsBackupTest.java b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
index e62dbea..d498268 100644
--- a/core/tests/coretests/src/android/provider/SettingsBackupTest.java
+++ b/core/tests/coretests/src/android/provider/SettingsBackupTest.java
@@ -530,6 +530,7 @@
Settings.Secure.BACKUP_PROVISIONED,
Settings.Secure.BACKUP_TRANSPORT,
Settings.Secure.CALL_REDIRECTION_DEFAULT_APPLICATION,
+ Settings.Secure.CALL_SCREENING_DEFAULT_COMPONENT,
Settings.Secure.CAMERA_LIFT_TRIGGER_ENABLED, // Candidate for backup?
Settings.Secure.CARRIER_APPS_HANDLED,
Settings.Secure.CMAS_ADDITIONAL_BROADCAST_PKG,
diff --git a/core/tests/coretests/src/android/text/format/FormatterTest.java b/core/tests/coretests/src/android/text/format/FormatterTest.java
index c02d97c..82e4bff 100644
--- a/core/tests/coretests/src/android/text/format/FormatterTest.java
+++ b/core/tests/coretests/src/android/text/format/FormatterTest.java
@@ -162,7 +162,7 @@
// Make sure it works on different locales.
setLocale(Locale.FRANCE);
- assertEquals("2 j", Formatter.formatShortElapsedTime(mContext, 2 * DAY));
+ assertEquals("2\u202fj", Formatter.formatShortElapsedTime(mContext, 2 * DAY));
}
@Test
diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml
index f5d2215..ff555c9 100644
--- a/packages/SystemUI/res/values-zh-rHK/strings.xml
+++ b/packages/SystemUI/res/values-zh-rHK/strings.xml
@@ -818,8 +818,8 @@
<string name="notification_channel_general" msgid="4525309436693914482">"一般訊息"</string>
<string name="notification_channel_storage" msgid="3077205683020695313">"儲存空間"</string>
<string name="notification_channel_hints" msgid="7323870212489152689">"提示"</string>
- <string name="instant_apps" msgid="6647570248119804907">"即時應用程式"</string>
- <string name="instant_apps_message" msgid="8116608994995104836">"即時應用程式無需安裝即可使用。"</string>
+ <string name="instant_apps" msgid="6647570248119804907">"免安裝應用程式"</string>
+ <string name="instant_apps_message" msgid="8116608994995104836">"免安裝應用程式無需安裝即可使用。"</string>
<string name="app_info" msgid="6856026610594615344">"應用程式資料"</string>
<string name="go_to_web" msgid="2650669128861626071">"前往瀏覽器"</string>
<string name="mobile_data" msgid="7094582042819250762">"流動數據"</string>
diff --git a/services/core/java/com/android/server/pm/permission/PermissionsState.java b/services/core/java/com/android/server/pm/permission/PermissionsState.java
index 11df380..31640d2f 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionsState.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionsState.java
@@ -30,6 +30,7 @@
import java.util.Collections;
import java.util.List;
import java.util.Set;
+import com.android.internal.annotations.GuardedBy;
/**
* This class encapsulates the permissions for a package or a shared user.
@@ -62,6 +63,9 @@
private static final int[] NO_GIDS = {};
+ private final Object mLock = new Object();
+
+ @GuardedBy("mLock")
private ArrayMap<String, PermissionData> mPermissions;
private int[] mGlobalGids = NO_GIDS;
@@ -96,22 +100,25 @@
if (other == this) {
return;
}
- if (mPermissions != null) {
- if (other.mPermissions == null) {
- mPermissions = null;
- } else {
- mPermissions.clear();
+
+ synchronized (mLock) {
+ if (mPermissions != null) {
+ if (other.mPermissions == null) {
+ mPermissions = null;
+ } else {
+ mPermissions.clear();
+ }
}
- }
- if (other.mPermissions != null) {
- if (mPermissions == null) {
- mPermissions = new ArrayMap<>();
- }
- final int permissionCount = other.mPermissions.size();
- for (int i = 0; i < permissionCount; i++) {
- String name = other.mPermissions.keyAt(i);
- PermissionData permissionData = other.mPermissions.valueAt(i);
- mPermissions.put(name, new PermissionData(permissionData));
+ if (other.mPermissions != null) {
+ if (mPermissions == null) {
+ mPermissions = new ArrayMap<>();
+ }
+ final int permissionCount = other.mPermissions.size();
+ for (int i = 0; i < permissionCount; i++) {
+ String name = other.mPermissions.keyAt(i);
+ PermissionData permissionData = other.mPermissions.valueAt(i);
+ mPermissions.put(name, new PermissionData(permissionData));
+ }
}
}
@@ -153,13 +160,16 @@
}
final PermissionsState other = (PermissionsState) obj;
- if (mPermissions == null) {
- if (other.mPermissions != null) {
+ synchronized (mLock) {
+ if (mPermissions == null) {
+ if (other.mPermissions != null) {
+ return false;
+ }
+ } else if (!mPermissions.equals(other.mPermissions)) {
return false;
}
- } else if (!mPermissions.equals(other.mPermissions)) {
- return false;
}
+
if (mPermissionReviewRequired == null) {
if (other.mPermissionReviewRequired != null) {
return false;
@@ -266,12 +276,15 @@
public boolean hasPermission(String name, int userId) {
enforceValidUserId(userId);
- if (mPermissions == null) {
- return false;
+ synchronized (mLock) {
+ if (mPermissions == null) {
+ return false;
+ }
+ PermissionData permissionData = mPermissions.get(name);
+
+ return permissionData != null && permissionData.isGranted(userId);
}
- PermissionData permissionData = mPermissions.get(name);
- return permissionData != null && permissionData.isGranted(userId);
}
/**
@@ -279,14 +292,17 @@
* whether or not it has been granted.
*/
public boolean hasRequestedPermission(ArraySet<String> names) {
- if (mPermissions == null) {
- return false;
- }
- for (int i=names.size()-1; i>=0; i--) {
- if (mPermissions.get(names.valueAt(i)) != null) {
- return true;
+ synchronized (mLock) {
+ if (mPermissions == null) {
+ return false;
+ }
+ for (int i=names.size()-1; i>=0; i--) {
+ if (mPermissions.get(names.valueAt(i)) != null) {
+ return true;
+ }
}
}
+
return false;
}
@@ -300,29 +316,31 @@
public Set<String> getPermissions(int userId) {
enforceValidUserId(userId);
- if (mPermissions == null) {
- return Collections.emptySet();
- }
-
- Set<String> permissions = new ArraySet<>(mPermissions.size());
-
- final int permissionCount = mPermissions.size();
- for (int i = 0; i < permissionCount; i++) {
- String permission = mPermissions.keyAt(i);
-
- if (hasInstallPermission(permission)) {
- permissions.add(permission);
- continue;
+ synchronized (mLock) {
+ if (mPermissions == null) {
+ return Collections.emptySet();
}
- if (userId != UserHandle.USER_ALL) {
- if (hasRuntimePermission(permission, userId)) {
+ Set<String> permissions = new ArraySet<>(mPermissions.size());
+
+ final int permissionCount = mPermissions.size();
+ for (int i = 0; i < permissionCount; i++) {
+ String permission = mPermissions.keyAt(i);
+
+ if (hasInstallPermission(permission)) {
permissions.add(permission);
+ continue;
+ }
+
+ if (userId != UserHandle.USER_ALL) {
+ if (hasRuntimePermission(permission, userId)) {
+ permissions.add(permission);
+ }
}
}
- }
- return permissions;
+ return permissions;
+ }
}
/**
@@ -399,14 +417,20 @@
final boolean mayChangeFlags = flagValues != 0 || flagMask != 0;
- if (mPermissions == null) {
- if (!mayChangeFlags) {
- return false;
+ synchronized (mLock) {
+ if (mPermissions == null) {
+ if (!mayChangeFlags) {
+ return false;
+ }
+ ensurePermissionData(permission);
}
- ensurePermissionData(permission);
}
- PermissionData permissionData = mPermissions.get(permission.getName());
+ PermissionData permissionData = null;
+ synchronized (mLock) {
+ permissionData = mPermissions.get(permission.getName());
+ }
+
if (permissionData == null) {
if (!mayChangeFlags) {
return false;
@@ -439,14 +463,17 @@
}
private boolean hasPermissionRequiringReview(int userId) {
- final int permissionCount = mPermissions.size();
- for (int i = 0; i < permissionCount; i++) {
- final PermissionData permission = mPermissions.valueAt(i);
- if ((permission.getFlags(userId)
- & PackageManager.FLAG_PERMISSION_REVIEW_REQUIRED) != 0) {
- return true;
+ synchronized (mLock) {
+ final int permissionCount = mPermissions.size();
+ for (int i = 0; i < permissionCount; i++) {
+ final PermissionData permission = mPermissions.valueAt(i);
+ if ((permission.getFlags(userId)
+ & PackageManager.FLAG_PERMISSION_REVIEW_REQUIRED) != 0) {
+ return true;
+ }
}
}
+
return false;
}
@@ -454,16 +481,19 @@
int userId, int flagMask, int flagValues) {
enforceValidUserId(userId);
- if (mPermissions == null) {
- return false;
+ synchronized (mLock) {
+ if (mPermissions == null) {
+ return false;
+ }
+ boolean changed = false;
+ final int permissionCount = mPermissions.size();
+ for (int i = 0; i < permissionCount; i++) {
+ PermissionData permissionData = mPermissions.valueAt(i);
+ changed |= permissionData.updateFlags(userId, flagMask, flagValues);
+ }
+
+ return changed;
}
- boolean changed = false;
- final int permissionCount = mPermissions.size();
- for (int i = 0; i < permissionCount; i++) {
- PermissionData permissionData = mPermissions.valueAt(i);
- changed |= permissionData.updateFlags(userId, flagMask, flagValues);
- }
- return changed;
}
/**
@@ -479,17 +509,19 @@
int[] gids = mGlobalGids;
- if (mPermissions != null) {
- final int permissionCount = mPermissions.size();
- for (int i = 0; i < permissionCount; i++) {
- String permission = mPermissions.keyAt(i);
- if (!hasPermission(permission, userId)) {
- continue;
- }
- PermissionData permissionData = mPermissions.valueAt(i);
- final int[] permGids = permissionData.computeGids(userId);
- if (permGids != NO_GIDS) {
- gids = appendInts(gids, permGids);
+ synchronized (mLock) {
+ if (mPermissions != null) {
+ final int permissionCount = mPermissions.size();
+ for (int i = 0; i < permissionCount; i++) {
+ String permission = mPermissions.keyAt(i);
+ if (!hasPermission(permission, userId)) {
+ continue;
+ }
+ PermissionData permissionData = mPermissions.valueAt(i);
+ final int[] permGids = permissionData.computeGids(userId);
+ if (permGids != NO_GIDS) {
+ gids = appendInts(gids, permGids);
+ }
}
}
}
@@ -519,41 +551,50 @@
*/
public void reset() {
mGlobalGids = NO_GIDS;
- mPermissions = null;
+
+ synchronized (mLock) {
+ mPermissions = null;
+ }
+
mPermissionReviewRequired = null;
}
private PermissionState getPermissionState(String name, int userId) {
- if (mPermissions == null) {
- return null;
+ synchronized (mLock) {
+ if (mPermissions == null) {
+ return null;
+ }
+ PermissionData permissionData = mPermissions.get(name);
+ if (permissionData == null) {
+ return null;
+ }
+
+ return permissionData.getPermissionState(userId);
}
- PermissionData permissionData = mPermissions.get(name);
- if (permissionData == null) {
- return null;
- }
- return permissionData.getPermissionState(userId);
}
private List<PermissionState> getPermissionStatesInternal(int userId) {
enforceValidUserId(userId);
- if (mPermissions == null) {
- return Collections.emptyList();
- }
-
- List<PermissionState> permissionStates = new ArrayList<>();
-
- final int permissionCount = mPermissions.size();
- for (int i = 0; i < permissionCount; i++) {
- PermissionData permissionData = mPermissions.valueAt(i);
-
- PermissionState permissionState = permissionData.getPermissionState(userId);
- if (permissionState != null) {
- permissionStates.add(permissionState);
+ synchronized (mLock) {
+ if (mPermissions == null) {
+ return Collections.emptyList();
}
- }
- return permissionStates;
+ List<PermissionState> permissionStates = new ArrayList<>();
+
+ final int permissionCount = mPermissions.size();
+ for (int i = 0; i < permissionCount; i++) {
+ PermissionData permissionData = mPermissions.valueAt(i);
+
+ PermissionState permissionState = permissionData.getPermissionState(userId);
+ if (permissionState != null) {
+ permissionStates.add(permissionState);
+ }
+ }
+
+ return permissionStates;
+ }
}
private int grantPermission(BasePermission permission, int userId) {
@@ -589,7 +630,10 @@
final boolean hasGids = !ArrayUtils.isEmpty(permission.computeGids(userId));
final int[] oldGids = hasGids ? computeGids(userId) : NO_GIDS;
- PermissionData permissionData = mPermissions.get(permName);
+ PermissionData permissionData = null;
+ synchronized (mLock) {
+ permissionData = mPermissions.get(permName);
+ }
if (!permissionData.revoke(userId)) {
return PERMISSION_OPERATION_FAILURE;
@@ -627,25 +671,32 @@
private PermissionData ensurePermissionData(BasePermission permission) {
final String permName = permission.getName();
- if (mPermissions == null) {
- mPermissions = new ArrayMap<>();
+
+ synchronized (mLock) {
+ if (mPermissions == null) {
+ mPermissions = new ArrayMap<>();
+ }
+ PermissionData permissionData = mPermissions.get(permName);
+ if (permissionData == null) {
+ permissionData = new PermissionData(permission);
+ mPermissions.put(permName, permissionData);
+ }
+ return permissionData;
}
- PermissionData permissionData = mPermissions.get(permName);
- if (permissionData == null) {
- permissionData = new PermissionData(permission);
- mPermissions.put(permName, permissionData);
- }
- return permissionData;
+
}
private void ensureNoPermissionData(String name) {
- if (mPermissions == null) {
- return;
+ synchronized (mLock) {
+ if (mPermissions == null) {
+ return;
+ }
+ mPermissions.remove(name);
+ if (mPermissions.isEmpty()) {
+ mPermissions = null;
+ }
}
- mPermissions.remove(name);
- if (mPermissions.isEmpty()) {
- mPermissions = null;
- }
+
}
private static final class PermissionData {
diff --git a/services/tests/mockingservicestests/Android.mk b/services/tests/mockingservicestests/Android.mk
new file mode 100644
index 0000000..34de9df
--- /dev/null
+++ b/services/tests/mockingservicestests/Android.mk
@@ -0,0 +1,45 @@
+# Copyright (C) 2018 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.
+
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := tests
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_STATIC_JAVA_LIBRARIES := \
+ services.core \
+ services.devicepolicy \
+ frameworks-base-testutils \
+ androidx-test \
+ mockito-target-extended-minus-junit4 \
+ ShortcutManagerTestUtils \
+ compatibility-device-util \
+ truth-prebuilt
+
+LOCAL_JAVA_LIBRARIES := \
+ android.test.mock
+
+LOCAL_JNI_SHARED_LIBRARIES := \
+ libdexmakerjvmtiagent \
+ libstaticjvmtiagent
+
+LOCAL_PACKAGE_NAME := FrameworksMockingServicesTests
+LOCAL_PRIVATE_PLATFORM_APIS := true
+LOCAL_COMPATIBILITY_SUITE := device-tests
+
+LOCAL_PROGUARD_ENABLED := disabled
+
+include $(BUILD_PACKAGE)
diff --git a/services/tests/mockingservicestests/AndroidManifest.xml b/services/tests/mockingservicestests/AndroidManifest.xml
new file mode 100644
index 0000000..247e446
--- /dev/null
+++ b/services/tests/mockingservicestests/AndroidManifest.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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.
+-->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.frameworks.mockingservicestests">
+
+ <application android:debuggable="true">
+ <uses-library android:name="android.test.runner" />
+ </application>
+
+ <instrumentation
+ android:name="androidx.test.runner.AndroidJUnitRunner"
+ android:targetPackage="com.android.frameworks.mockingservicestests"
+ android:label="Frameworks Mocking Services Tests" />
+</manifest>
diff --git a/services/tests/mockingservicestests/AndroidTest.xml b/services/tests/mockingservicestests/AndroidTest.xml
new file mode 100644
index 0000000..adfee96
--- /dev/null
+++ b/services/tests/mockingservicestests/AndroidTest.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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.
+-->
+<configuration description="Runs Frameworks Services Tests.">
+ <option name="test-suite-tag" value="apct" />
+ <option name="test-suite-tag" value="apct-instrumentation" />
+
+ <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
+ <option name="cleanup-apks" value="true" />
+ <option name="test-file-name" value="FrameworksMockingServicesTests.apk" />
+ </target_preparer>
+
+ <option name="test-tag" value="FrameworksMockingServicesTests" />
+
+ <test class="com.android.tradefed.testtype.AndroidJUnitTest" >
+ <option name="package" value="com.android.frameworks.mockingservicestests" />
+ <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
+ <option name="hidden-api-checks" value="false"/>
+ </test>
+</configuration>
diff --git a/services/tests/servicestests/src/com/android/server/AppStateTrackerTest.java b/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java
similarity index 98%
rename from services/tests/servicestests/src/com/android/server/AppStateTrackerTest.java
rename to services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java
index 933b3d6b4..c8e6782 100644
--- a/services/tests/servicestests/src/com/android/server/AppStateTrackerTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java
@@ -60,8 +60,6 @@
import android.os.RemoteException;
import android.os.UserHandle;
import android.provider.Settings.Global;
-import android.support.test.filters.SmallTest;
-import android.support.test.runner.AndroidJUnit4;
import android.test.mock.MockContentResolver;
import android.util.ArraySet;
import android.util.Pair;
@@ -87,11 +85,14 @@
import java.util.concurrent.TimeUnit;
import java.util.function.Consumer;
+import androidx.test.filters.SmallTest;
+import androidx.test.runner.AndroidJUnit4;
+
/**
* Tests for {@link AppStateTracker}
*
* Run with:
- atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/servicestests/src/com/android/server/AppStateTrackerTest.java
+ atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/mockingservicestests/src/com/android/server/AppStateTrackerTest.java
*/
@SmallTest
@RunWith(AndroidJUnit4.class)
@@ -682,10 +683,10 @@
//--------------------------------------------------
List<OpEntry> entries = new ArrayList<>();
- entries.add(new AppOpsManager.OpEntry(
+ entries.add(new OpEntry(
AppOpsManager.OP_ACCESS_NOTIFICATIONS,
AppOpsManager.MODE_IGNORED, 0, 0, 0, 0, null));
- entries.add(new AppOpsManager.OpEntry(
+ entries.add(new OpEntry(
AppStateTracker.TARGET_OP,
AppOpsManager.MODE_IGNORED, 0, 0, 0, 0, null));
@@ -693,7 +694,7 @@
//--------------------------------------------------
entries = new ArrayList<>();
- entries.add(new AppOpsManager.OpEntry(
+ entries.add(new OpEntry(
AppStateTracker.TARGET_OP,
AppOpsManager.MODE_IGNORED, 0, 0, 0, 0, null));
@@ -701,7 +702,7 @@
//--------------------------------------------------
entries = new ArrayList<>();
- entries.add(new AppOpsManager.OpEntry(
+ entries.add(new OpEntry(
AppStateTracker.TARGET_OP,
AppOpsManager.MODE_ALLOWED, 0, 0, 0, 0, null));
@@ -709,10 +710,10 @@
//--------------------------------------------------
entries = new ArrayList<>();
- entries.add(new AppOpsManager.OpEntry(
+ entries.add(new OpEntry(
AppStateTracker.TARGET_OP,
AppOpsManager.MODE_IGNORED, 0, 0, 0, 0, null));
- entries.add(new AppOpsManager.OpEntry(
+ entries.add(new OpEntry(
AppOpsManager.OP_ACCESS_NOTIFICATIONS,
AppOpsManager.MODE_IGNORED, 0, 0, 0, 0, null));
@@ -753,7 +754,7 @@
final AppStateTrackerTestable instance = newInstance();
callStart(instance);
- AppStateTracker.Listener l = mock(AppStateTracker.Listener.class);
+ Listener l = mock(Listener.class);
instance.addListener(l);
// Power save on.
@@ -796,7 +797,7 @@
final AppStateTrackerTestable instance = newInstance();
callStart(instance);
- AppStateTracker.Listener l = mock(AppStateTracker.Listener.class);
+ Listener l = mock(Listener.class);
instance.addListener(l);
// -------------------------------------------------------------------------
diff --git a/services/tests/wmtests/Android.mk b/services/tests/wmtests/Android.mk
index 0f8b18a..c095ae0 100644
--- a/services/tests/wmtests/Android.mk
+++ b/services/tests/wmtests/Android.mk
@@ -14,7 +14,7 @@
$(call all-java-files-under, ../servicestests/utils)
LOCAL_STATIC_JAVA_LIBRARIES := \
- androidx-test \
+ androidx.test.runner \
mockito-target-minus-junit4 \
platform-test-annotations \
diff --git a/telecomm/java/android/telecom/TelecomManager.java b/telecomm/java/android/telecom/TelecomManager.java
index d33a537..3127b35 100644
--- a/telecomm/java/android/telecom/TelecomManager.java
+++ b/telecomm/java/android/telecom/TelecomManager.java
@@ -676,7 +676,7 @@
/**
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public static TelecomManager from(Context context) {
return (TelecomManager) context.getSystemService(Context.TELECOM_SERVICE);
}
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index 9f7786b..a1f3b80 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -2232,6 +2232,13 @@
public static final String KEY_CALL_WAITING_OVER_UT_WARNING_BOOL =
"call_waiting_over_ut_warning_bool";
+ /**
+ * Flag indicating whether to support "Network default" option in Caller ID settings for Calling
+ * Line Identification Restriction (CLIR).
+ */
+ public static final String KEY_SUPPORT_CLIR_NETWORK_DEFAULT_BOOL =
+ "support_clir_network_default_bool";
+
/** The default value for every variable. */
private final static PersistableBundle sDefaults;
@@ -2580,6 +2587,7 @@
sDefaults.putBoolean(KEY_CALL_BARRING_OVER_UT_WARNING_BOOL, false);
sDefaults.putBoolean(KEY_CALLER_ID_OVER_UT_WARNING_BOOL, false);
sDefaults.putBoolean(KEY_CALL_WAITING_OVER_UT_WARNING_BOOL, false);
+ sDefaults.putBoolean(KEY_SUPPORT_CLIR_NETWORK_DEFAULT_BOOL, true);
}
/**
diff --git a/telephony/java/android/telephony/CellIdentityCdma.java b/telephony/java/android/telephony/CellIdentityCdma.java
index 9218bdc..598f567 100644
--- a/telephony/java/android/telephony/CellIdentityCdma.java
+++ b/telephony/java/android/telephony/CellIdentityCdma.java
@@ -16,7 +16,6 @@
package android.telephony;
-import android.annotation.Nullable;
import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.telephony.cdma.CdmaCellLocation;
@@ -56,11 +55,11 @@
*/
public CellIdentityCdma() {
super(TAG, CellInfo.TYPE_CDMA, null, null, null, null);
- mNetworkId = Integer.MAX_VALUE;
- mSystemId = Integer.MAX_VALUE;
- mBasestationId = Integer.MAX_VALUE;
- mLongitude = Integer.MAX_VALUE;
- mLatitude = Integer.MAX_VALUE;
+ mNetworkId = CellInfo.UNAVAILABLE;
+ mSystemId = CellInfo.UNAVAILABLE;
+ mBasestationId = CellInfo.UNAVAILABLE;
+ mLongitude = CellInfo.UNAVAILABLE;
+ mLatitude = CellInfo.UNAVAILABLE;
}
/**
@@ -104,7 +103,7 @@
mLongitude = lon;
mLatitude = lat;
} else {
- mLongitude = mLatitude = Integer.MAX_VALUE;
+ mLongitude = mLatitude = CellInfo.UNAVAILABLE;
}
}
@@ -130,21 +129,24 @@
}
/**
- * @return Network Id 0..65535, Integer.MAX_VALUE if unknown
+ * @return Network Id 0..65535, {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE}
+ * if unavailable.
*/
public int getNetworkId() {
return mNetworkId;
}
/**
- * @return System Id 0..32767, Integer.MAX_VALUE if unknown
+ * @return System Id 0..32767, {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE}
+ * if unavailable.
*/
public int getSystemId() {
return mSystemId;
}
/**
- * @return Base Station Id 0..65535, Integer.MAX_VALUE if unknown
+ * @return Base Station Id 0..65535, {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE}
+ * if unavailable.
*/
public int getBasestationId() {
return mBasestationId;
@@ -155,7 +157,7 @@
* specified in 3GPP2 C.S0005-A v6.0. It is represented in units
* of 0.25 seconds and ranges from -2592000 to 2592000, both
* values inclusive (corresponding to a range of -180
- * to +180 degrees). Integer.MAX_VALUE if unknown.
+ * to +180 degrees). {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getLongitude() {
return mLongitude;
@@ -166,7 +168,7 @@
* specified in 3GPP2 C.S0005-A v6.0. It is represented in units
* of 0.25 seconds and ranges from -1296000 to 1296000, both
* values inclusive (corresponding to a range of -90
- * to +90 degrees). Integer.MAX_VALUE if unknown.
+ * to +90 degrees). {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getLatitude() {
return mLatitude;
@@ -182,10 +184,10 @@
@Override
public CdmaCellLocation asCellLocation() {
CdmaCellLocation cl = new CdmaCellLocation();
- int bsid = mBasestationId != Integer.MAX_VALUE ? mBasestationId : -1;
- int sid = mSystemId != Integer.MAX_VALUE ? mSystemId : -1;
- int nid = mNetworkId != Integer.MAX_VALUE ? mNetworkId : -1;
- // lat and long already use Integer.MAX_VALUE for invalid/unknown
+ int bsid = mBasestationId != CellInfo.UNAVAILABLE ? mBasestationId : -1;
+ int sid = mSystemId != CellInfo.UNAVAILABLE ? mSystemId : -1;
+ int nid = mNetworkId != CellInfo.UNAVAILABLE ? mNetworkId : -1;
+ // lat and long already use CellInfo.UNAVAILABLE for invalid/unknown
cl.setCellLocationData(bsid, mLatitude, mLongitude, sid, nid);
return cl;
}
diff --git a/telephony/java/android/telephony/CellIdentityGsm.java b/telephony/java/android/telephony/CellIdentityGsm.java
index cb9dbf3..04c28e5 100644
--- a/telephony/java/android/telephony/CellIdentityGsm.java
+++ b/telephony/java/android/telephony/CellIdentityGsm.java
@@ -16,7 +16,6 @@
package android.telephony;
-import android.annotation.Nullable;
import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.telephony.gsm.GsmCellLocation;
@@ -48,10 +47,10 @@
@UnsupportedAppUsage
public CellIdentityGsm() {
super(TAG, CellInfo.TYPE_GSM, null, null, null, null);
- mLac = Integer.MAX_VALUE;
- mCid = Integer.MAX_VALUE;
- mArfcn = Integer.MAX_VALUE;
- mBsic = Integer.MAX_VALUE;
+ mLac = CellInfo.UNAVAILABLE;
+ mCid = CellInfo.UNAVAILABLE;
+ mArfcn = CellInfo.UNAVAILABLE;
+ mBsic = CellInfo.UNAVAILABLE;
}
/**
* public constructor
@@ -63,7 +62,7 @@
* @hide
*/
public CellIdentityGsm(int mcc, int mnc, int lac, int cid) {
- this(lac, cid, Integer.MAX_VALUE, Integer.MAX_VALUE,
+ this(lac, cid, CellInfo.UNAVAILABLE, CellInfo.UNAVAILABLE,
String.valueOf(mcc), String.valueOf(mnc), null, null);
}
@@ -103,7 +102,7 @@
mArfcn = arfcn;
// In RIL BSIC is a UINT8, so 0xFF is the 'INVALID' designator
// for inbound parcels
- mBsic = (bsic == 0xFF) ? Integer.MAX_VALUE : bsic;
+ mBsic = (bsic == 0xFF) ? CellInfo.UNAVAILABLE : bsic;
}
private CellIdentityGsm(CellIdentityGsm cid) {
@@ -116,69 +115,73 @@
}
/**
- * @return 3-digit Mobile Country Code, 0..999, Integer.MAX_VALUE if unknown
+ * @return 3-digit Mobile Country Code, 0..999,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
* @deprecated Use {@link #getMccString} instead.
*/
@Deprecated
public int getMcc() {
- return (mMccStr != null) ? Integer.valueOf(mMccStr) : Integer.MAX_VALUE;
+ return (mMccStr != null) ? Integer.valueOf(mMccStr) : CellInfo.UNAVAILABLE;
}
/**
- * @return 2 or 3-digit Mobile Network Code, 0..999, Integer.MAX_VALUE if unknown
+ * @return 2 or 3-digit Mobile Network Code, 0..999,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
* @deprecated Use {@link #getMncString} instead.
*/
@Deprecated
public int getMnc() {
- return (mMncStr != null) ? Integer.valueOf(mMncStr) : Integer.MAX_VALUE;
+ return (mMncStr != null) ? Integer.valueOf(mMncStr) : CellInfo.UNAVAILABLE;
}
/**
- * @return 16-bit Location Area Code, 0..65535, Integer.MAX_VALUE if unknown
+ * @return 16-bit Location Area Code, 0..65535,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getLac() {
return mLac;
}
/**
- * @return CID
- * Either 16-bit GSM Cell Identity described
- * in TS 27.007, 0..65535, Integer.MAX_VALUE if unknown
+ * @return 16-bit GSM Cell Identity described in TS 27.007, 0..65535,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getCid() {
return mCid;
}
/**
- * @return 16-bit GSM Absolute RF Channel Number, Integer.MAX_VALUE if unknown
+ * @return 16-bit GSM Absolute RF Channel Number,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getArfcn() {
return mArfcn;
}
/**
- * @return 6-bit Base Station Identity Code, Integer.MAX_VALUE if unknown
+ * @return 6-bit Base Station Identity Code,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getBsic() {
return mBsic;
}
/**
- * @return a 5 or 6 character string (MCC+MNC), null if any field is unknown
+ * @return a 5 or 6 character string (MCC+MNC), null if any field is unknown.
*/
public String getMobileNetworkOperator() {
return (mMccStr == null || mMncStr == null) ? null : mMccStr + mMncStr;
}
/**
- * @return Mobile Country Code in string format, null if unknown
+ * @return Mobile Country Code in string format, null if unavailable.
*/
public String getMccString() {
return mMccStr;
}
/**
- * @return Mobile Network Code in string format, null if unknown
+ * @return Mobile Network Code in string format, null if unavailable.
*/
public String getMncString() {
return mMncStr;
@@ -192,19 +195,19 @@
/**
* @deprecated Primary Scrambling Code is not applicable to GSM.
- * @return Integer.MAX_VALUE, undefined for GSM
+ * @return {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} - undefined for GSM
*/
@Deprecated
public int getPsc() {
- return Integer.MAX_VALUE;
+ return CellInfo.UNAVAILABLE;
}
/** @hide */
@Override
public GsmCellLocation asCellLocation() {
GsmCellLocation cl = new GsmCellLocation();
- int lac = mLac != Integer.MAX_VALUE ? mLac : -1;
- int cid = mCid != Integer.MAX_VALUE ? mCid : -1;
+ int lac = mLac != CellInfo.UNAVAILABLE ? mLac : -1;
+ int cid = mCid != CellInfo.UNAVAILABLE ? mCid : -1;
cl.setLacAndCid(lac, cid);
cl.setPsc(-1);
return cl;
diff --git a/telephony/java/android/telephony/CellIdentityLte.java b/telephony/java/android/telephony/CellIdentityLte.java
index b44e891..04b6a6c 100644
--- a/telephony/java/android/telephony/CellIdentityLte.java
+++ b/telephony/java/android/telephony/CellIdentityLte.java
@@ -16,7 +16,6 @@
package android.telephony;
-import android.annotation.Nullable;
import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.telephony.gsm.GsmCellLocation;
@@ -49,11 +48,11 @@
@UnsupportedAppUsage
public CellIdentityLte() {
super(TAG, CellInfo.TYPE_LTE, null, null, null, null);
- mCi = Integer.MAX_VALUE;
- mPci = Integer.MAX_VALUE;
- mTac = Integer.MAX_VALUE;
- mEarfcn = Integer.MAX_VALUE;
- mBandwidth = Integer.MAX_VALUE;
+ mCi = CellInfo.UNAVAILABLE;
+ mPci = CellInfo.UNAVAILABLE;
+ mTac = CellInfo.UNAVAILABLE;
+ mEarfcn = CellInfo.UNAVAILABLE;
+ mBandwidth = CellInfo.UNAVAILABLE;
}
/**
@@ -68,7 +67,7 @@
*/
@UnsupportedAppUsage
public CellIdentityLte(int mcc, int mnc, int ci, int pci, int tac) {
- this(ci, pci, tac, Integer.MAX_VALUE, Integer.MAX_VALUE, String.valueOf(mcc),
+ this(ci, pci, tac, CellInfo.UNAVAILABLE, CellInfo.UNAVAILABLE, String.valueOf(mcc),
String.valueOf(mnc), null, null);
}
@@ -84,7 +83,7 @@
* @hide
*/
public CellIdentityLte(int mcc, int mnc, int ci, int pci, int tac, int earfcn) {
- this(ci, pci, tac, earfcn, Integer.MAX_VALUE, String.valueOf(mcc), String.valueOf(mnc),
+ this(ci, pci, tac, earfcn, CellInfo.UNAVAILABLE, String.valueOf(mcc), String.valueOf(mnc),
null, null);
}
@@ -122,74 +121,81 @@
}
/**
- * @return 3-digit Mobile Country Code, 0..999, Integer.MAX_VALUE if unknown
+ * @return 3-digit Mobile Country Code, 0..999,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
* @deprecated Use {@link #getMccString} instead.
*/
@Deprecated
public int getMcc() {
- return (mMccStr != null) ? Integer.valueOf(mMccStr) : Integer.MAX_VALUE;
+ return (mMccStr != null) ? Integer.valueOf(mMccStr) : CellInfo.UNAVAILABLE;
}
/**
- * @return 2 or 3-digit Mobile Network Code, 0..999, Integer.MAX_VALUE if unknown
+ * @return 2 or 3-digit Mobile Network Code, 0..999,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
* @deprecated Use {@link #getMncString} instead.
*/
@Deprecated
public int getMnc() {
- return (mMncStr != null) ? Integer.valueOf(mMncStr) : Integer.MAX_VALUE;
+ return (mMncStr != null) ? Integer.valueOf(mMncStr) : CellInfo.UNAVAILABLE;
}
/**
- * @return 28-bit Cell Identity, Integer.MAX_VALUE if unknown
+ * @return 28-bit Cell Identity,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getCi() {
return mCi;
}
/**
- * @return Physical Cell Id 0..503, Integer.MAX_VALUE if unknown
+ * @return Physical Cell Id 0..503,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getPci() {
return mPci;
}
/**
- * @return 16-bit Tracking Area Code, Integer.MAX_VALUE if unknown
+ * @return 16-bit Tracking Area Code,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getTac() {
return mTac;
}
/**
- * @return 18-bit Absolute RF Channel Number, Integer.MAX_VALUE if unknown
+ * @return 18-bit Absolute RF Channel Number,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getEarfcn() {
return mEarfcn;
}
/**
- * @return Cell bandwidth in kHz, Integer.MAX_VALUE if unknown
+ * @return Cell bandwidth in kHz,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getBandwidth() {
return mBandwidth;
}
/**
- * @return Mobile Country Code in string format, null if unknown
+ * @return Mobile Country Code in string format, null if unavailable.
*/
public String getMccString() {
return mMccStr;
}
/**
- * @return Mobile Network Code in string format, null if unknown
+ * @return Mobile Network Code in string format, null if unavailable.
*/
public String getMncString() {
return mMncStr;
}
/**
- * @return a 5 or 6 character string (MCC+MNC), null if any field is unknown
+ * @return a 5 or 6 character string (MCC+MNC), null if any field is unknown.
*/
public String getMobileNetworkOperator() {
return (mMccStr == null || mMncStr == null) ? null : mMccStr + mMncStr;
@@ -216,8 +222,8 @@
@Override
public GsmCellLocation asCellLocation() {
GsmCellLocation cl = new GsmCellLocation();
- int tac = mTac != Integer.MAX_VALUE ? mTac : -1;
- int cid = mCi != Integer.MAX_VALUE ? mCi : -1;
+ int tac = mTac != CellInfo.UNAVAILABLE ? mTac : -1;
+ int cid = mCi != CellInfo.UNAVAILABLE ? mCi : -1;
cl.setLacAndCid(tac, cid);
cl.setPsc(0);
return cl;
diff --git a/telephony/java/android/telephony/CellIdentityTdscdma.java b/telephony/java/android/telephony/CellIdentityTdscdma.java
index bc83de1..8b1c1b9 100644
--- a/telephony/java/android/telephony/CellIdentityTdscdma.java
+++ b/telephony/java/android/telephony/CellIdentityTdscdma.java
@@ -28,11 +28,12 @@
private static final String TAG = CellIdentityTdscdma.class.getSimpleName();
private static final boolean DBG = false;
- // 16-bit Location Area Code, 0..65535, INT_MAX if unknown.
+ // 16-bit Location Area Code, 0..65535, CellInfo.UNAVAILABLE if unknown.
private final int mLac;
- // 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown.
+ // 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, CellInfo.UNAVAILABLE
+ // if unknown.
private final int mCid;
- // 8-bit Cell Parameters ID described in TS 25.331, 0..127, INT_MAX if unknown.
+ // 8-bit Cell Parameters ID described in TS 25.331, 0..127, CellInfo.UNAVAILABLE if unknown.
private final int mCpid;
// 16-bit UMTS Absolute RF Channel Number described in TS 25.101 sec. 5.4.3
private final int mUarfcn;
@@ -42,18 +43,20 @@
*/
public CellIdentityTdscdma() {
super(TAG, CellInfo.TYPE_TDSCDMA, null, null, null, null);
- mLac = Integer.MAX_VALUE;
- mCid = Integer.MAX_VALUE;
- mCpid = Integer.MAX_VALUE;
- mUarfcn = Integer.MAX_VALUE;
+ mLac = CellInfo.UNAVAILABLE;
+ mCid = CellInfo.UNAVAILABLE;
+ mCpid = CellInfo.UNAVAILABLE;
+ mUarfcn = CellInfo.UNAVAILABLE;
}
/**
* @param mcc 3-digit Mobile Country Code, 0..999
* @param mnc 2 or 3-digit Mobile Network Code, 0..999
- * @param lac 16-bit Location Area Code, 0..65535, INT_MAX if unknown
- * @param cid 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown
- * @param cpid 8-bit Cell Parameters ID described in TS 25.331, 0..127, INT_MAX if unknown
+ * @param lac 16-bit Location Area Code, 0..65535, CellInfo.UNAVAILABLE if unknown
+ * @param cid 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, CellInfo.
+ * UNAVAILABLE if unknown
+ * @param cpid 8-bit Cell Parameters ID described in TS 25.331, 0..127, CellInfo.UNAVAILABLE
+ * if unknown
* @param uarfcn 16-bit UMTS Absolute RF Channel Number described in TS 25.101 sec. 5.4.3
*
* @hide
@@ -65,9 +68,11 @@
/**
* @param mcc 3-digit Mobile Country Code in string format
* @param mnc 2 or 3-digit Mobile Network Code in string format
- * @param lac 16-bit Location Area Code, 0..65535, INT_MAX if unknown
- * @param cid 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown
- * @param cpid 8-bit Cell Parameters ID described in TS 25.331, 0..127, INT_MAX if unknown
+ * @param lac 16-bit Location Area Code, 0..65535, CellInfo.UNAVAILABLE if unknown
+ * @param cid 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455,
+ * CellInfo.UNAVAILABLE if unknown
+ * @param cpid 8-bit Cell Parameters ID described in TS 25.331, 0..127,
+ * CellInfo.UNAVAILABLE if unknown
* @param uarfcn 16-bit UMTS Absolute RF Channel Number described in TS 25.101 sec. 5.4.3
* @param alphal long alpha Operator Name String or Enhanced Operator Name String
* @param alphas short alpha Operator Name String or Enhanced Operator Name String
@@ -116,21 +121,24 @@
}
/**
- * @return 16-bit Location Area Code, 0..65535, INT_MAX if unknown
+ * @return 16-bit Location Area Code, 0..65535,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getLac() {
return mLac;
}
/**
- * @return 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown
+ * @return 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getCid() {
return mCid;
}
/**
- * @return 8-bit Cell Parameters ID described in TS 25.331, 0..127, INT_MAX if unknown
+ * @return 8-bit Cell Parameters ID described in TS 25.331, 0..127,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getCpid() {
return mCpid;
@@ -146,8 +154,8 @@
@Override
public GsmCellLocation asCellLocation() {
GsmCellLocation cl = new GsmCellLocation();
- int lac = mLac != Integer.MAX_VALUE ? mLac : -1;
- int cid = mCid != Integer.MAX_VALUE ? mCid : -1;
+ int lac = mLac != CellInfo.UNAVAILABLE ? mLac : -1;
+ int cid = mCid != CellInfo.UNAVAILABLE ? mCid : -1;
cl.setLacAndCid(lac, cid);
cl.setPsc(-1); // There is no PSC for TD-SCDMA; not using this for CPI to stem shenanigans
return cl;
diff --git a/telephony/java/android/telephony/CellIdentityWcdma.java b/telephony/java/android/telephony/CellIdentityWcdma.java
index 727d990..3416ffe 100644
--- a/telephony/java/android/telephony/CellIdentityWcdma.java
+++ b/telephony/java/android/telephony/CellIdentityWcdma.java
@@ -16,7 +16,6 @@
package android.telephony;
-import android.annotation.Nullable;
import android.annotation.UnsupportedAppUsage;
import android.os.Parcel;
import android.telephony.gsm.GsmCellLocation;
@@ -46,10 +45,10 @@
*/
public CellIdentityWcdma() {
super(TAG, CellInfo.TYPE_WCDMA, null, null, null, null);
- mLac = Integer.MAX_VALUE;
- mCid = Integer.MAX_VALUE;
- mPsc = Integer.MAX_VALUE;
- mUarfcn = Integer.MAX_VALUE;
+ mLac = CellInfo.UNAVAILABLE;
+ mCid = CellInfo.UNAVAILABLE;
+ mPsc = CellInfo.UNAVAILABLE;
+ mUarfcn = CellInfo.UNAVAILABLE;
}
/**
* public constructor
@@ -62,7 +61,7 @@
* @hide
*/
public CellIdentityWcdma (int mcc, int mnc, int lac, int cid, int psc) {
- this(lac, cid, psc, Integer.MAX_VALUE, String.valueOf(mcc), String.valueOf(mnc),
+ this(lac, cid, psc, CellInfo.UNAVAILABLE, String.valueOf(mcc), String.valueOf(mnc),
null, null);
}
@@ -113,25 +112,28 @@
}
/**
- * @return 3-digit Mobile Country Code, 0..999, Integer.MAX_VALUE if unknown
+ * @return 3-digit Mobile Country Code, 0..999,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
* @deprecated Use {@link #getMccString} instead.
*/
@Deprecated
public int getMcc() {
- return (mMccStr != null) ? Integer.valueOf(mMccStr) : Integer.MAX_VALUE;
+ return (mMccStr != null) ? Integer.valueOf(mMccStr) : CellInfo.UNAVAILABLE;
}
/**
- * @return 2 or 3-digit Mobile Network Code, 0..999, Integer.MAX_VALUE if unknown
+ * @return 2 or 3-digit Mobile Network Code, 0..999,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
* @deprecated Use {@link #getMncString} instead.
*/
@Deprecated
public int getMnc() {
- return (mMncStr != null) ? Integer.valueOf(mMncStr) : Integer.MAX_VALUE;
+ return (mMncStr != null) ? Integer.valueOf(mMncStr) : CellInfo.UNAVAILABLE;
}
/**
- * @return 16-bit Location Area Code, 0..65535, Integer.MAX_VALUE if unknown
+ * @return 16-bit Location Area Code, 0..65535,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getLac() {
return mLac;
@@ -139,29 +141,30 @@
/**
* @return CID
- * 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, Integer.MAX_VALUE if unknown
+ * 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getCid() {
return mCid;
}
/**
- * @return 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511, Integer.MAX_VALUE
- * if unknown
+ * @return 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getPsc() {
return mPsc;
}
/**
- * @return Mobile Country Code in string version, null if unknown
+ * @return Mobile Country Code in string version, null if unavailable.
*/
public String getMccString() {
return mMccStr;
}
/**
- * @return Mobile Network Code in string version, null if unknown
+ * @return Mobile Network Code in string version, null if unavailable.
*/
public String getMncString() {
return mMncStr;
@@ -180,7 +183,8 @@
}
/**
- * @return 16-bit UMTS Absolute RF Channel Number, Integer.MAX_VALUE if unknown
+ * @return 16-bit UMTS Absolute RF Channel Number,
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getUarfcn() {
return mUarfcn;
@@ -196,9 +200,9 @@
@Override
public GsmCellLocation asCellLocation() {
GsmCellLocation cl = new GsmCellLocation();
- int lac = mLac != Integer.MAX_VALUE ? mLac : -1;
- int cid = mCid != Integer.MAX_VALUE ? mCid : -1;
- int psc = mPsc != Integer.MAX_VALUE ? mPsc : -1;
+ int lac = mLac != CellInfo.UNAVAILABLE ? mLac : -1;
+ int cid = mCid != CellInfo.UNAVAILABLE ? mCid : -1;
+ int psc = mPsc != CellInfo.UNAVAILABLE ? mPsc : -1;
cl.setLacAndCid(lac, cid);
cl.setPsc(psc);
@@ -280,4 +284,4 @@
protected static CellIdentityWcdma createFromParcelBody(Parcel in) {
return new CellIdentityWcdma(in);
}
-}
\ No newline at end of file
+}
diff --git a/telephony/java/android/telephony/CellInfo.java b/telephony/java/android/telephony/CellInfo.java
index 94e4293..1c63e82 100644
--- a/telephony/java/android/telephony/CellInfo.java
+++ b/telephony/java/android/telephony/CellInfo.java
@@ -33,6 +33,11 @@
public abstract class CellInfo implements Parcelable {
/**
+ * This value indicates that the integer field is unreported.
+ */
+ public static final int UNAVAILABLE = Integer.MAX_VALUE;
+
+ /**
* Cell identity type
* @hide
*/
diff --git a/telephony/java/android/telephony/CellSignalStrengthCdma.java b/telephony/java/android/telephony/CellSignalStrengthCdma.java
index aa6b207..5123052 100644
--- a/telephony/java/android/telephony/CellSignalStrengthCdma.java
+++ b/telephony/java/android/telephony/CellSignalStrengthCdma.java
@@ -51,8 +51,9 @@
* <p>Note that this HAL is inconsistent with UMTS-based radio techs as the value indicating
* that a field is unreported is negative, rather than a large(r) positive number.
* <p>Also note that to keep the public-facing methods of this class consistent with others,
- * unreported values are coerced to Integer.MAX_VALUE rather than left as -1, which is
- * a departure from SignalStrength, which is stuck with the values it currently reports.
+ * unreported values are coerced to {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE}
+ * rather than left as -1, which is a departure from SignalStrength, which is stuck with the
+ * values it currently reports.
*
* @param cdmaDbm negative of the CDMA signal strength value or -1 if invalid.
* @param cdmaEcio negative of the CDMA pilot/noise ratio or -1 if invalid.
@@ -65,12 +66,12 @@
int evdoSnr) {
// The values here were lifted from SignalStrength.validateInput()
// FIXME: Combine all checking and setting logic between this and SignalStrength.
- mCdmaDbm = ((cdmaDbm > 0) && (cdmaDbm < 120)) ? -cdmaDbm : Integer.MAX_VALUE;
- mCdmaEcio = ((cdmaEcio > 0) && (cdmaEcio < 160)) ? -cdmaEcio : Integer.MAX_VALUE;
+ mCdmaDbm = ((cdmaDbm > 0) && (cdmaDbm < 120)) ? -cdmaDbm : CellInfo.UNAVAILABLE;
+ mCdmaEcio = ((cdmaEcio > 0) && (cdmaEcio < 160)) ? -cdmaEcio : CellInfo.UNAVAILABLE;
- mEvdoDbm = ((evdoDbm > 0) && (evdoDbm < 120)) ? -evdoDbm : Integer.MAX_VALUE;
- mEvdoEcio = ((evdoEcio > 0) && (evdoEcio < 160)) ? -evdoEcio : Integer.MAX_VALUE;
- mEvdoSnr = ((evdoSnr > 0) && (evdoSnr <= 8)) ? evdoSnr : Integer.MAX_VALUE;
+ mEvdoDbm = ((evdoDbm > 0) && (evdoDbm < 120)) ? -evdoDbm : CellInfo.UNAVAILABLE;
+ mEvdoEcio = ((evdoEcio > 0) && (evdoEcio < 160)) ? -evdoEcio : CellInfo.UNAVAILABLE;
+ mEvdoSnr = ((evdoSnr > 0) && (evdoSnr <= 8)) ? evdoSnr : CellInfo.UNAVAILABLE;
}
/** @hide */
@@ -96,11 +97,11 @@
/** @hide */
@Override
public void setDefaultValues() {
- mCdmaDbm = Integer.MAX_VALUE;
- mCdmaEcio = Integer.MAX_VALUE;
- mEvdoDbm = Integer.MAX_VALUE;
- mEvdoEcio = Integer.MAX_VALUE;
- mEvdoSnr = Integer.MAX_VALUE;
+ mCdmaDbm = CellInfo.UNAVAILABLE;
+ mCdmaEcio = CellInfo.UNAVAILABLE;
+ mEvdoDbm = CellInfo.UNAVAILABLE;
+ mEvdoEcio = CellInfo.UNAVAILABLE;
+ mEvdoSnr = CellInfo.UNAVAILABLE;
}
/**
@@ -139,7 +140,7 @@
int cdmaAsuLevel;
int ecioAsuLevel;
- if (cdmaDbm == Integer.MAX_VALUE) cdmaAsuLevel = 99;
+ if (cdmaDbm == CellInfo.UNAVAILABLE) cdmaAsuLevel = 99;
else if (cdmaDbm >= -75) cdmaAsuLevel = 16;
else if (cdmaDbm >= -82) cdmaAsuLevel = 8;
else if (cdmaDbm >= -90) cdmaAsuLevel = 4;
@@ -148,7 +149,7 @@
else cdmaAsuLevel = 99;
// Ec/Io are in dB*10
- if (cdmaEcio == Integer.MAX_VALUE) ecioAsuLevel = 99;
+ if (cdmaEcio == CellInfo.UNAVAILABLE) ecioAsuLevel = 99;
else if (cdmaEcio >= -90) ecioAsuLevel = 16;
else if (cdmaEcio >= -100) ecioAsuLevel = 8;
else if (cdmaEcio >= -115) ecioAsuLevel = 4;
@@ -170,7 +171,7 @@
int levelDbm;
int levelEcio;
- if (cdmaDbm == Integer.MAX_VALUE) levelDbm = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
+ if (cdmaDbm == CellInfo.UNAVAILABLE) levelDbm = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
else if (cdmaDbm >= -75) levelDbm = SIGNAL_STRENGTH_GREAT;
else if (cdmaDbm >= -85) levelDbm = SIGNAL_STRENGTH_GOOD;
else if (cdmaDbm >= -95) levelDbm = SIGNAL_STRENGTH_MODERATE;
@@ -178,7 +179,7 @@
else levelDbm = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
// Ec/Io are in dB*10
- if (cdmaEcio == Integer.MAX_VALUE) levelEcio = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
+ if (cdmaEcio == CellInfo.UNAVAILABLE) levelEcio = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
else if (cdmaEcio >= -90) levelEcio = SIGNAL_STRENGTH_GREAT;
else if (cdmaEcio >= -110) levelEcio = SIGNAL_STRENGTH_GOOD;
else if (cdmaEcio >= -130) levelEcio = SIGNAL_STRENGTH_MODERATE;
@@ -199,14 +200,14 @@
int levelEvdoDbm;
int levelEvdoSnr;
- if (evdoDbm == Integer.MAX_VALUE) levelEvdoDbm = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
+ if (evdoDbm == CellInfo.UNAVAILABLE) levelEvdoDbm = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
else if (evdoDbm >= -65) levelEvdoDbm = SIGNAL_STRENGTH_GREAT;
else if (evdoDbm >= -75) levelEvdoDbm = SIGNAL_STRENGTH_GOOD;
else if (evdoDbm >= -90) levelEvdoDbm = SIGNAL_STRENGTH_MODERATE;
else if (evdoDbm >= -105) levelEvdoDbm = SIGNAL_STRENGTH_POOR;
else levelEvdoDbm = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
- if (evdoSnr == Integer.MAX_VALUE) levelEvdoSnr = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
+ if (evdoSnr == CellInfo.UNAVAILABLE) levelEvdoSnr = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
else if (evdoSnr >= 7) levelEvdoSnr = SIGNAL_STRENGTH_GREAT;
else if (evdoSnr >= 5) levelEvdoSnr = SIGNAL_STRENGTH_GOOD;
else if (evdoSnr >= 3) levelEvdoSnr = SIGNAL_STRENGTH_MODERATE;
diff --git a/telephony/java/android/telephony/CellSignalStrengthGsm.java b/telephony/java/android/telephony/CellSignalStrengthGsm.java
index 1e8d119..e906f46 100644
--- a/telephony/java/android/telephony/CellSignalStrengthGsm.java
+++ b/telephony/java/android/telephony/CellSignalStrengthGsm.java
@@ -40,7 +40,7 @@
@UnsupportedAppUsage
private int mBitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5
@UnsupportedAppUsage
- private int mTimingAdvance; // range from 0-219 or Integer.MAX_VALUE if unknown
+ private int mTimingAdvance; // range from 0-219 or CellInfo.UNAVAILABLE if unknown
/** @hide */
@UnsupportedAppUsage
@@ -50,7 +50,7 @@
/** @hide */
public CellSignalStrengthGsm(int ss, int ber) {
- this(ss, ber, Integer.MAX_VALUE);
+ this(ss, ber, CellInfo.UNAVAILABLE);
}
/** @hide */
@@ -81,9 +81,9 @@
/** @hide */
@Override
public void setDefaultValues() {
- mSignalStrength = Integer.MAX_VALUE;
- mBitErrorRate = Integer.MAX_VALUE;
- mTimingAdvance = Integer.MAX_VALUE;
+ mSignalStrength = CellInfo.UNAVAILABLE;
+ mBitErrorRate = CellInfo.UNAVAILABLE;
+ mTimingAdvance = CellInfo.UNAVAILABLE;
}
/**
@@ -112,8 +112,9 @@
/**
* Get the GSM timing advance between 0..219 symbols (normally 0..63).
- * Integer.MAX_VALUE is reported when there is no RR connection.
- * Refer to 3GPP 45.010 Sec 5.8
+ * <p>{@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} is reported when there is no RR
+ * connection. Refer to 3GPP 45.010 Sec 5.8.
+ *
* @return the current GSM timing advance, if available.
*/
public int getTimingAdvance() {
@@ -128,11 +129,11 @@
int dBm;
int level = mSignalStrength;
- int asu = (level == 99 ? Integer.MAX_VALUE : level);
- if (asu != Integer.MAX_VALUE) {
+ int asu = (level == 99 ? CellInfo.UNAVAILABLE : level);
+ if (asu != CellInfo.UNAVAILABLE) {
dBm = -113 + (2 * asu);
} else {
- dBm = Integer.MAX_VALUE;
+ dBm = CellInfo.UNAVAILABLE;
}
if (DBG) log("getDbm=" + dBm);
return dBm;
diff --git a/telephony/java/android/telephony/CellSignalStrengthLte.java b/telephony/java/android/telephony/CellSignalStrengthLte.java
index ed7d4b2..d6856b3 100644
--- a/telephony/java/android/telephony/CellSignalStrengthLte.java
+++ b/telephony/java/android/telephony/CellSignalStrengthLte.java
@@ -85,12 +85,12 @@
/** @hide */
@Override
public void setDefaultValues() {
- mSignalStrength = Integer.MAX_VALUE;
- mRsrp = Integer.MAX_VALUE;
- mRsrq = Integer.MAX_VALUE;
- mRssnr = Integer.MAX_VALUE;
- mCqi = Integer.MAX_VALUE;
- mTimingAdvance = Integer.MAX_VALUE;
+ mSignalStrength = CellInfo.UNAVAILABLE;
+ mRsrp = CellInfo.UNAVAILABLE;
+ mRsrq = CellInfo.UNAVAILABLE;
+ mRssnr = CellInfo.UNAVAILABLE;
+ mCqi = CellInfo.UNAVAILABLE;
+ mTimingAdvance = CellInfo.UNAVAILABLE;
}
/**
@@ -104,26 +104,27 @@
int levelRsrp = 0;
int levelRssnr = 0;
- if (mRsrp == Integer.MAX_VALUE) levelRsrp = 0;
+ if (mRsrp == CellInfo.UNAVAILABLE) levelRsrp = 0;
else if (mRsrp >= -95) levelRsrp = SIGNAL_STRENGTH_GREAT;
else if (mRsrp >= -105) levelRsrp = SIGNAL_STRENGTH_GOOD;
else if (mRsrp >= -115) levelRsrp = SIGNAL_STRENGTH_MODERATE;
else levelRsrp = SIGNAL_STRENGTH_POOR;
// See RIL_LTE_SignalStrength in ril.h
- if (mRssnr == Integer.MAX_VALUE) levelRssnr = 0;
+ if (mRssnr == CellInfo.UNAVAILABLE) levelRssnr = 0;
else if (mRssnr >= 45) levelRssnr = SIGNAL_STRENGTH_GREAT;
else if (mRssnr >= 10) levelRssnr = SIGNAL_STRENGTH_GOOD;
else if (mRssnr >= -30) levelRssnr = SIGNAL_STRENGTH_MODERATE;
else levelRssnr = SIGNAL_STRENGTH_POOR;
int level;
- if (mRsrp == Integer.MAX_VALUE)
+ if (mRsrp == CellInfo.UNAVAILABLE) {
level = levelRssnr;
- else if (mRssnr == Integer.MAX_VALUE)
+ } else if (mRssnr == CellInfo.UNAVAILABLE) {
level = levelRsrp;
- else
+ } else {
level = (levelRssnr < levelRsrp) ? levelRssnr : levelRsrp;
+ }
if (DBG) log("Lte rsrp level: " + levelRsrp
+ " snr level: " + levelRssnr + " level: " + level);
@@ -133,7 +134,8 @@
/**
* Get reference signal received quality
*
- * @return the RSRQ if available or Integer.MAX_VALUE if unavailable.
+ * @return the RSRQ if available or
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getRsrq() {
return mRsrq;
@@ -142,7 +144,8 @@
/**
* Get reference signal signal-to-noise ratio
*
- * @return the RSSNR if available or Integer.MAX_VALUE if unavailable.
+ * @return the RSSNR if available or
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getRssnr() {
return mRssnr;
@@ -160,7 +163,8 @@
/**
* Get channel quality indicator
*
- * @return the CQI if available or Integer.MAX_VALUE if unavailable.
+ * @return the CQI if available or
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getCqi() {
return mCqi;
@@ -184,7 +188,7 @@
public int getAsuLevel() {
int lteAsuLevel = 99;
int lteDbm = getDbm();
- if (lteDbm == Integer.MAX_VALUE) lteAsuLevel = 99;
+ if (lteDbm == CellInfo.UNAVAILABLE) lteAsuLevel = 99;
else if (lteDbm <= -140) lteAsuLevel = 0;
else if (lteDbm >= -43) lteAsuLevel = 97;
else lteAsuLevel = lteDbm + 140;
@@ -194,10 +198,11 @@
/**
* Get the timing advance value for LTE, as a value in range of 0..1282.
- * Integer.MAX_VALUE is reported when there is no active RRC
- * connection. Refer to 3GPP 36.213 Sec 4.2.3
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} is reported when there is no
+ * active RRC connection. Refer to 3GPP 36.213 Sec 4.2.3
*
- * @return the LTE timing advance if available or Integer.MAX_VALUE if unavailable.
+ * @return the LTE timing advance if available or
+ * {@link android.telephony.CellInfo#UNAVAILABLE UNAVAILABLE} if unavailable.
*/
public int getTimingAdvance() {
return mTimingAdvance;
@@ -252,8 +257,8 @@
// Need to multiply rsrp and rsrq by -1
// to ensure consistency when reading values written here
// unless the values are invalid
- dest.writeInt(mRsrp * (mRsrp != Integer.MAX_VALUE ? -1 : 1));
- dest.writeInt(mRsrq * (mRsrq != Integer.MAX_VALUE ? -1 : 1));
+ dest.writeInt(mRsrp * (mRsrp != CellInfo.UNAVAILABLE ? -1 : 1));
+ dest.writeInt(mRsrq * (mRsrq != CellInfo.UNAVAILABLE ? -1 : 1));
dest.writeInt(mRssnr);
dest.writeInt(mCqi);
dest.writeInt(mTimingAdvance);
@@ -268,9 +273,9 @@
// rsrp and rsrq are written into the parcel as positive values.
// Need to convert into negative values unless the values are invalid
mRsrp = in.readInt();
- if (mRsrp != Integer.MAX_VALUE) mRsrp *= -1;
+ if (mRsrp != CellInfo.UNAVAILABLE) mRsrp *= -1;
mRsrq = in.readInt();
- if (mRsrq != Integer.MAX_VALUE) mRsrq *= -1;
+ if (mRsrq != CellInfo.UNAVAILABLE) mRsrq *= -1;
mRssnr = in.readInt();
mCqi = in.readInt();
mTimingAdvance = in.readInt();
diff --git a/telephony/java/android/telephony/CellSignalStrengthTdscdma.java b/telephony/java/android/telephony/CellSignalStrengthTdscdma.java
index 41859a3..4d040cc 100644
--- a/telephony/java/android/telephony/CellSignalStrengthTdscdma.java
+++ b/telephony/java/android/telephony/CellSignalStrengthTdscdma.java
@@ -36,11 +36,11 @@
private static final int TDSCDMA_SIGNAL_STRENGTH_MODERATE = 5;
private int mSignalStrength; // in ASU; Valid values are (0-31, 99) as defined in TS 27.007 8.5
- // or Integer.MAX_VALUE if unknown
+ // or CellInfo.UNAVAILABLE if unknown
private int mBitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5 or
- // Integer.MAX_VALUE if unknown
- private int mRscp; // Pilot power (0-96, 255) as defined in TS 27.007 8.69 or Integer.MAX_VALUE
- // if unknown
+ // CellInfo.UNAVAILABLE if unknown
+ private int mRscp; // Pilot power (0-96, 255) as defined in TS 27.007 8.69 or
+ // CellInfo.UNAVAILABLE if unknown
/** @hide */
public CellSignalStrengthTdscdma() {
@@ -75,9 +75,9 @@
/** @hide */
@Override
public void setDefaultValues() {
- mSignalStrength = Integer.MAX_VALUE;
- mBitErrorRate = Integer.MAX_VALUE;
- mRscp = Integer.MAX_VALUE;
+ mSignalStrength = CellInfo.UNAVAILABLE;
+ mBitErrorRate = CellInfo.UNAVAILABLE;
+ mRscp = CellInfo.UNAVAILABLE;
}
/**
@@ -118,11 +118,11 @@
int dBm;
int level = mSignalStrength;
- int asu = (level == 99 ? Integer.MAX_VALUE : level);
- if (asu != Integer.MAX_VALUE) {
+ int asu = (level == 99 ? CellInfo.UNAVAILABLE : level);
+ if (asu != CellInfo.UNAVAILABLE) {
dBm = -113 + (2 * asu);
} else {
- dBm = Integer.MAX_VALUE;
+ dBm = CellInfo.UNAVAILABLE;
}
if (DBG) log("getDbm=" + dBm);
return dBm;
diff --git a/telephony/java/android/telephony/CellSignalStrengthWcdma.java b/telephony/java/android/telephony/CellSignalStrengthWcdma.java
index 66e0882..0048cbd 100644
--- a/telephony/java/android/telephony/CellSignalStrengthWcdma.java
+++ b/telephony/java/android/telephony/CellSignalStrengthWcdma.java
@@ -37,14 +37,14 @@
@UnsupportedAppUsage
private int mSignalStrength; // in ASU; Valid values are (0-31, 99) as defined in TS 27.007 8.5
- // or Integer.MAX_VALUE if unknown
+ // or CellInfo.UNAVAILABLE if unknown
@UnsupportedAppUsage
private int mBitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5 or
- // Integer.MAX_VALUE if unknown
+ // CellInfo.UNAVAILABLE if unknown
private int mRscp; // bit error rate (0-96, 255) as defined in TS 27.007 8.69 or
- // Integer.MAX_VALUE if unknown
+ // CellInfo.UNAVAILABLE if unknown
private int mEcNo; // signal to noise radio (0-49, 255) as defined in TS 27.007 8.69 or
- // Integer.MAX_VALUE if unknown
+ // CellInfo.UNAVAILABLE if unknown
/** @hide */
public CellSignalStrengthWcdma() {
@@ -81,10 +81,10 @@
/** @hide */
@Override
public void setDefaultValues() {
- mSignalStrength = Integer.MAX_VALUE;
- mBitErrorRate = Integer.MAX_VALUE;
- mRscp = Integer.MAX_VALUE;
- mEcNo = Integer.MAX_VALUE;
+ mSignalStrength = CellInfo.UNAVAILABLE;
+ mBitErrorRate = CellInfo.UNAVAILABLE;
+ mRscp = CellInfo.UNAVAILABLE;
+ mEcNo = CellInfo.UNAVAILABLE;
}
/**
@@ -119,11 +119,11 @@
int dBm;
int level = mSignalStrength;
- int asu = (level == 99 ? Integer.MAX_VALUE : level);
- if (asu != Integer.MAX_VALUE) {
+ int asu = (level == 99 ? CellInfo.UNAVAILABLE : level);
+ if (asu != CellInfo.UNAVAILABLE) {
dBm = -113 + (2 * asu);
} else {
- dBm = Integer.MAX_VALUE;
+ dBm = CellInfo.UNAVAILABLE;
}
if (DBG) log("getDbm=" + dBm);
return dBm;
diff --git a/telephony/java/android/telephony/ServiceState.java b/telephony/java/android/telephony/ServiceState.java
index 7f87ef3..c407681 100644
--- a/telephony/java/android/telephony/ServiceState.java
+++ b/telephony/java/android/telephony/ServiceState.java
@@ -247,7 +247,7 @@
private String mDataOperatorAlphaLong;
private String mDataOperatorAlphaShort;
private String mDataOperatorNumeric;
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
private boolean mIsManualNetworkSelection;
private boolean mIsEmergencyOnly;
@@ -266,9 +266,9 @@
@UnsupportedAppUsage
private boolean mCssIndicator;
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
private int mNetworkId;
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
private int mSystemId;
@UnsupportedAppUsage
private int mCdmaRoamingIndicator;
@@ -466,7 +466,7 @@
*
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public int getVoiceRegState() {
return mVoiceRegState;
}
@@ -481,7 +481,7 @@
*
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public int getDataRegState() {
return mDataRegState;
}
@@ -542,7 +542,7 @@
* @return roaming status
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public boolean getVoiceRoaming() {
return getVoiceRoamingType() != ROAMING_TYPE_NOT_ROAMING;
}
@@ -566,7 +566,7 @@
* @return roaming type
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public boolean getDataRoaming() {
return getDataRoamingType() != ROAMING_TYPE_NOT_ROAMING;
}
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java
index c585cf1..4a1534b 100644
--- a/telephony/java/android/telephony/SubscriptionManager.java
+++ b/telephony/java/android/telephony/SubscriptionManager.java
@@ -1369,7 +1369,7 @@
}
/** @hide */
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public static int getPhoneId(int subId) {
if (!isValidSubscriptionId(subId)) {
if (DBG) {
@@ -1665,7 +1665,7 @@
* usable subId means its neither a INVALID_SUBSCRIPTION_ID nor a DEFAULT_SUB_ID.
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public static boolean isUsableSubIdValue(int subId) {
return subId >= MIN_SUBSCRIPTION_ID_VALUE && subId <= MAX_SUBSCRIPTION_ID_VALUE;
}
@@ -1683,7 +1683,7 @@
}
/** @hide */
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public static void putPhoneIdAndSubIdExtra(Intent intent, int phoneId) {
int[] subIds = SubscriptionManager.getSubId(phoneId);
if (subIds != null && subIds.length > 0) {
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 0ad2cbe..2508b6d 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -232,7 +232,8 @@
/** @hide
/* @deprecated - use getSystemService as described above */
- @UnsupportedAppUsage
+ @Deprecated
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public static TelephonyManager getDefault() {
return sInstance;
}
@@ -321,7 +322,7 @@
}
/** {@hide} */
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public static TelephonyManager from(Context context) {
return (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
}
@@ -1890,7 +1891,7 @@
* @param subId
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getNetworkOperatorName(int subId) {
int phoneId = SubscriptionManager.getPhoneId(subId);
return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_ALPHA, "");
@@ -1918,7 +1919,7 @@
* @param subId
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getNetworkOperator(int subId) {
int phoneId = SubscriptionManager.getPhoneId(subId);
return getNetworkOperatorForPhone(phoneId);
@@ -2242,7 +2243,7 @@
* @hide
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public int getDataNetworkType(int subId) {
try{
ITelephony telephony = getITelephony();
@@ -2278,7 +2279,7 @@
* @hide
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public int getVoiceNetworkType(int subId) {
try{
ITelephony telephony = getITelephony();
@@ -2761,7 +2762,7 @@
* @param subId for which SimOperator is returned
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getSimOperator(int subId) {
return getSimOperatorNumeric(subId);
}
@@ -2775,7 +2776,7 @@
* @see #getSimState
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getSimOperatorNumeric() {
int subId = mSubId;
if (!SubscriptionManager.isUsableSubIdValue(subId)) {
@@ -2804,7 +2805,7 @@
* @param subId for which SimOperator is returned
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getSimOperatorNumeric(int subId) {
int phoneId = SubscriptionManager.getPhoneId(subId);
return getSimOperatorNumericForPhone(phoneId);
@@ -2818,7 +2819,7 @@
* @param phoneId for which SimOperator is returned
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getSimOperatorNumericForPhone(int phoneId) {
return getTelephonyProperty(phoneId,
TelephonyProperties.PROPERTY_ICC_OPERATOR_NUMERIC, "");
@@ -2845,7 +2846,7 @@
* @param subId for which SimOperatorName is returned
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getSimOperatorName(int subId) {
int phoneId = SubscriptionManager.getPhoneId(subId);
return getSimOperatorNameForPhone(phoneId);
@@ -2875,7 +2876,7 @@
* @param subId for which SimCountryIso is returned
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getSimCountryIso(int subId) {
int phoneId = SubscriptionManager.getPhoneId(subId);
return getSimCountryIsoForPhone(phoneId);
@@ -3065,7 +3066,7 @@
* @hide
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getSubscriberId(int subId) {
try {
IPhoneSubInfo info = getSubscriberInfo();
@@ -3450,7 +3451,7 @@
* @hide
*/
@RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getMsisdn(int subId) {
try {
IPhoneSubInfo info = getSubscriberInfo();
@@ -4416,7 +4417,7 @@
/**
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
private ITelephony getITelephony() {
return ITelephony.Stub.asInterface(ServiceManager.getService(Context.TELEPHONY_SERVICE));
}
@@ -8000,7 +8001,7 @@
* either READ_PRIVILEGED_PHONE_STATE or READ_PHONE_STATE to retrieve the information.
* @hide
*/
- @UnsupportedAppUsage
+ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public ServiceState getServiceStateForSubscriber(int subId) {
try {
ITelephony service = getITelephony();