aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Martins <bgcngm@gmail.com>2020-04-21 00:17:21 +0100
committerBruno Martins <bgcngm@gmail.com>2020-04-21 00:47:55 +0100
commitbd39ad8c077c5762813693e580dd126c9f58589e (patch)
treead2bdeee8de140df235ac857fc6ba1acfc3deac7
parentf3b9b0c95d32bcba4e8853829482048f80d83699 (diff)
downloadlineage-sdk-bd39ad8c077c5762813693e580dd126c9f58589e.tar.gz
lineage-sdk-bd39ad8c077c5762813693e580dd126c9f58589e.tar.bz2
lineage-sdk-bd39ad8c077c5762813693e580dd126c9f58589e.zip
profiles: Account for deprecated location API methods
Settings.Secure#setLocationProviderEnabled is deprecated since API level 19. Change-Id: I7d1d13de3af100fb81d87e957acf89fb7f08cb7d
-rw-r--r--api/lineage_current.txt3
-rw-r--r--sdk/src/java/lineageos/profiles/ConnectionSettings.java20
-rw-r--r--tests/src/org/lineageos/tests/profiles/unit/ConnectionSettingsTest.java13
-rw-r--r--tests/src/org/lineageos/tests/profiles/unit/ProfileTest.java5
4 files changed, 28 insertions, 13 deletions
diff --git a/api/lineage_current.txt b/api/lineage_current.txt
index 233cf8ef..93a4888a 100644
--- a/api/lineage_current.txt
+++ b/api/lineage_current.txt
@@ -623,12 +623,13 @@ package lineageos.profiles {
method public void writeToParcel(android.os.Parcel, int);
field public static final int PROFILE_CONNECTION_2G3G4G = 9; // 0x9
field public static final int PROFILE_CONNECTION_BLUETOOTH = 7; // 0x7
- field public static final int PROFILE_CONNECTION_GPS = 4; // 0x4
+ field public static final int PROFILE_CONNECTION_LOCATION = 6; // 0x6
field public static final int PROFILE_CONNECTION_MOBILEDATA = 0; // 0x0
field public static final int PROFILE_CONNECTION_NFC = 8; // 0x8
field public static final int PROFILE_CONNECTION_SYNC = 5; // 0x5
field public static final int PROFILE_CONNECTION_WIFI = 1; // 0x1
field public static final int PROFILE_CONNECTION_WIFIAP = 2; // 0x2
+ field public static final deprecated int PROFILE_CONNECTION_GPS = 4; // 0x4
field public static final deprecated int PROFILE_CONNECTION_WIMAX = 3; // 0x3
}
diff --git a/sdk/src/java/lineageos/profiles/ConnectionSettings.java b/sdk/src/java/lineageos/profiles/ConnectionSettings.java
index 66fda392..9891d5ef 100644
--- a/sdk/src/java/lineageos/profiles/ConnectionSettings.java
+++ b/sdk/src/java/lineageos/profiles/ConnectionSettings.java
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2015 The CyanogenMod Project
+ * 2020 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,9 +27,11 @@ import android.net.wifi.WifiManager;
import android.nfc.NfcAdapter;
import android.os.Parcel;
import android.os.Parcelable;
+import android.os.UserHandle;
import android.provider.Settings;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+
import com.android.internal.telephony.RILConstants;
import lineageos.os.Build;
@@ -96,7 +99,10 @@ public final class ConnectionSettings implements Parcelable {
/**
* The {@link #PROFILE_CONNECTION_GPS} allows for enabling and disabling the GPS radio (if exists)
* on the device. Boolean connection settings {@link BooleanState}
+ *
+ * @deprecated Replaced by PROFILE_CONNECTION_LOCATION
*/
+ @Deprecated
public static final int PROFILE_CONNECTION_GPS = 4;
/**
@@ -106,6 +112,12 @@ public final class ConnectionSettings implements Parcelable {
public static final int PROFILE_CONNECTION_SYNC = 5;
/**
+ * The {@link #PROFILE_CONNECTION_LOCATION} allows for enabling and disabling location services
+ * on the device. Boolean connection settings {@link BooleanState}
+ */
+ public static final int PROFILE_CONNECTION_LOCATION = 6;
+
+ /**
* The {@link #PROFILE_CONNECTION_BLUETOOTH} allows for enabling and disabling the Bluetooth device
* (if exists) on the device. Boolean connection settings {@link BooleanState}
*/
@@ -321,11 +333,11 @@ public final class ConnectionSettings implements Parcelable {
bta.disable();
}
break;
- case PROFILE_CONNECTION_GPS:
- currentState = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
+ case PROFILE_CONNECTION_LOCATION:
+ currentState = lm.isLocationEnabled();
if (currentState != forcedState) {
- Settings.Secure.setLocationProviderEnabled(context.getContentResolver(),
- LocationManager.GPS_PROVIDER, forcedState);
+ lm.setLocationEnabledForUser(forcedState,
+ new UserHandle(UserHandle.USER_CURRENT));
}
break;
case PROFILE_CONNECTION_SYNC:
diff --git a/tests/src/org/lineageos/tests/profiles/unit/ConnectionSettingsTest.java b/tests/src/org/lineageos/tests/profiles/unit/ConnectionSettingsTest.java
index 4564727e..78e4ac3c 100644
--- a/tests/src/org/lineageos/tests/profiles/unit/ConnectionSettingsTest.java
+++ b/tests/src/org/lineageos/tests/profiles/unit/ConnectionSettingsTest.java
@@ -1,5 +1,6 @@
/**
- * Copyright (c) 2016, The CyanogenMod Project
+ * Copyright (C) 2016 The CyanogenMod Project
+ * 2020 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,8 +25,8 @@ public class ConnectionSettingsTest extends AndroidTestCase {
@SmallTest
public void testConstructManually() {
ConnectionSettings connectionSettings = new ConnectionSettings(
- ConnectionSettings.PROFILE_CONNECTION_GPS);
- assertEquals(ConnectionSettings.PROFILE_CONNECTION_GPS,
+ ConnectionSettings.PROFILE_CONNECTION_LOCATION);
+ assertEquals(ConnectionSettings.PROFILE_CONNECTION_LOCATION,
connectionSettings.getConnectionId());
assertNotNull(connectionSettings);
}
@@ -33,12 +34,12 @@ public class ConnectionSettingsTest extends AndroidTestCase {
@SmallTest
public void testConstructWholly() {
ConnectionSettings connectionSettings =
- new ConnectionSettings(ConnectionSettings.PROFILE_CONNECTION_GPS,
+ new ConnectionSettings(ConnectionSettings.PROFILE_CONNECTION_LOCATION,
ConnectionSettings.BooleanState.STATE_DISALED, true);
assertEquals(true, connectionSettings.isOverride());
assertEquals(ConnectionSettings.BooleanState.STATE_DISALED,
connectionSettings.getValue());
- assertEquals(ConnectionSettings.PROFILE_CONNECTION_GPS,
+ assertEquals(ConnectionSettings.PROFILE_CONNECTION_LOCATION,
connectionSettings.getConnectionId());
assertNotNull(connectionSettings);
}
@@ -46,7 +47,7 @@ public class ConnectionSettingsTest extends AndroidTestCase {
@SmallTest
public void testVerifyOverride() {
ConnectionSettings connectionSettings = new ConnectionSettings(
- ConnectionSettings.PROFILE_CONNECTION_GPS);
+ ConnectionSettings.PROFILE_CONNECTION_LOCATION);
connectionSettings.setOverride(true);
assertEquals(true, connectionSettings.isOverride());
}
diff --git a/tests/src/org/lineageos/tests/profiles/unit/ProfileTest.java b/tests/src/org/lineageos/tests/profiles/unit/ProfileTest.java
index ac4b5bbe..3beba541 100644
--- a/tests/src/org/lineageos/tests/profiles/unit/ProfileTest.java
+++ b/tests/src/org/lineageos/tests/profiles/unit/ProfileTest.java
@@ -1,5 +1,6 @@
/**
- * Copyright (c) 2015, The CyanogenMod Project
+ * Copyright (C) 2015 The CyanogenMod Project
+ * 2020 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -51,7 +52,7 @@ public class ProfileTest extends AndroidTestCase {
public void testProfileConnectionSettingsUnravelFromParcel() {
Profile profile = new Profile("Connection Profile");
ConnectionSettings expectedConnectionSettings =
- new ConnectionSettings(ConnectionSettings.PROFILE_CONNECTION_GPS,
+ new ConnectionSettings(ConnectionSettings.PROFILE_CONNECTION_LOCATION,
ConnectionSettings.BooleanState.STATE_DISALED, true);
profile.setConnectionSettings(expectedConnectionSettings);