diff --git a/app/src/main/java/foundation/e/advancedprivacy/data/repositories/ResourcesRepository.kt b/app/src/main/java/foundation/e/advancedprivacy/data/repositories/ResourcesRepository.kt index 23ea9b6dd38bee22eec48f84b6ed1b1780d9096f..88060a3983ed09d4a6983b9ef306effc0b9bce31 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/data/repositories/ResourcesRepository.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/data/repositories/ResourcesRepository.kt @@ -22,16 +22,14 @@ import android.content.res.Configuration import android.content.res.Resources import androidx.annotation.StringRes import java.time.format.DateTimeFormatter -import java.util.Locale import timber.log.Timber class ResourcesRepository(private val context: Context) { - private val defaultResources by lazy { getLocalizedResources(context, Locale("")) } + private val defaultResources by lazy { getLocalizedResources(context) } - private fun getLocalizedResources(context: Context, desiredLocale: Locale?): Resources { + private fun getLocalizedResources(context: Context): Resources { var conf: Configuration = context.resources.configuration conf = Configuration(conf) - conf.setLocale(desiredLocale) val localizedContext = context.createConfigurationContext(conf) return localizedContext.resources } diff --git a/app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyFragment.kt b/app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyFragment.kt index d7025d6af7ad74266284c277494a5200ab26fd54..9001910fe629e7a06e1d910625b1629da83ce90f 100644 --- a/app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyFragment.kt +++ b/app/src/main/java/foundation/e/advancedprivacy/features/internetprivacy/InternetPrivacyFragment.kt @@ -18,6 +18,7 @@ package foundation.e.advancedprivacy.features.internetprivacy +import android.os.Build import android.os.Bundle import android.view.View import android.widget.AdapterView @@ -90,7 +91,12 @@ class InternetPrivacyFragment : NavToolbarFragment(R.layout.fragment_internet_ac if (it == "") { getString(R.string.ipscrambling_any_location) } else { - Locale("", it).displayCountry + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.BAKLAVA) { + Locale.of("", it) + } else { + @Suppress("DEPRECATION") + Locale("", it) + }.displayCountry } } ).apply { diff --git a/build.gradle b/build.gradle index d92615e4a8b11f2eba47c574d06113d23598672f..af25bd3a75a12b7ff9590628cdcb125b1e3430a6 100644 --- a/build.gradle +++ b/build.gradle @@ -19,9 +19,9 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.buildConfig = [ - 'compileSdk': 35, + 'compileSdk': 36, 'minSdk' : 30, - 'targetSdk' : 35, + 'targetSdk' : 36, 'version' : [ 'major': 3, 'minor': 3, diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/app/AppOpsManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/app/AppOpsManager.java index 4df0da1950e0184418bab9721fb484f0dfc2b2c8..497e6b7f822472db639d1034a55d9d29dcd7dabf 100644 --- a/permissionseos/libs/hidden-apis-stub/src/main/java/android/app/AppOpsManager.java +++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/app/AppOpsManager.java @@ -31,8 +31,8 @@ public class AppOpsManager { @TargetApi(29) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) public static int strOpToOp(@NonNull String op) { return 0; @@ -40,8 +40,8 @@ public class AppOpsManager { @TargetApi(29) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) @RequiresPermission("android.permission.MANAGE_APP_OPS_MODES") public void setMode(int code, int uid, String packageName, int mode) {} diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/PackageManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/PackageManager.java index 97fb7e1f170838d9eb698bbd7d4df7c403926f2e..cf44a14880b75cadd8bc4ef10c2ba1152b308ff4 100644 --- a/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/PackageManager.java +++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/PackageManager.java @@ -35,8 +35,8 @@ public abstract class PackageManager { @TargetApi(29) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) public static class NameNotFoundException extends AndroidException { public NameNotFoundException() { @@ -50,8 +50,8 @@ public abstract class PackageManager { @TargetApi(29) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) @RequiresPermission("android.permission.GRANT_RUNTIME_PERMISSIONS") public abstract void grantRuntimePermission( @@ -62,8 +62,8 @@ public abstract class PackageManager { @TargetApi(29) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) @RequiresPermission("android.permission.REVOKE_RUNTIME_PERMISSIONS") public abstract void revokeRuntimePermission( @@ -74,8 +74,8 @@ public abstract class PackageManager { @TargetApi(29) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36, since SDK33, " + + api = 37, + message = "Check availability in SDK37, since SDK33, " + "Use {@link #getApplicationInfoAsUser(String, ApplicationInfoFlags, int)} " + "when long flags are needed." ) @@ -88,8 +88,8 @@ public abstract class PackageManager { @TargetApi(29) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36, since SDK33, " + + api = 37, + message = "Check availability in SDK37, since SDK33, " + "Use {@link #getInstalledPackagesAsUser(PackageInfoFlags, int)} " + "when long flags are needed." ) diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/UserInfo.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/UserInfo.java index 77462399132ae4acdc41d12cdec65cc701bf50b8..c24b8044b79b7f6a33ccf14aeffc53358ddd6901 100644 --- a/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/UserInfo.java +++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/content/pm/UserInfo.java @@ -28,8 +28,8 @@ public class UserInfo { @TargetApi(29) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) public UserHandle getUserHandle() { return null; diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/internal/net/VpnConfig.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/internal/net/VpnConfig.java index 134b1e9090e3a72b16499629bf3313476da4c4df..bc0d823dedcf61323e2bce5ff070039bdc7a081a 100644 --- a/permissionseos/libs/hidden-apis-stub/src/main/java/android/internal/net/VpnConfig.java +++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/internal/net/VpnConfig.java @@ -21,6 +21,6 @@ package android.internal.net; // https://gitlab.e.foundation/e/os/android_frameworks_base/-/blob/[VERSION]/core/java/com/android/internal/net/VpnConfig.java public class VpnConfig { - // Availability checked from SDK29 to SDK 35 + // Availability checked from SDK29 to SDK 36 public static final String LEGACY_VPN = "[Legacy VPN]"; } diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/IConnectivityManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/IConnectivityManager.java index 53440e0c9934c35f6010472a478cf51e0ce3b032..16f1baa1098ab502bd175d436860b8c6e51006d4 100644 --- a/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/IConnectivityManager.java +++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/IConnectivityManager.java @@ -27,6 +27,7 @@ import androidx.annotation.DeprecatedSinceApi; // Stub based on: // https://gitlab.e.foundation/e/os/android_frameworks_base/-/blob/[SDK_VERSION]/core/java/android/net/IConnectivityManager.java +// Up to SDK30. Above, use VpnManager public interface IConnectivityManager { @TargetApi(29) diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/VpnManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/VpnManager.java index 043f00495522aed46ae82bb79a143a162d42add7..245b09b9b14f3b6b76059e3d4e5fca114e606ace 100644 --- a/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/VpnManager.java +++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/net/VpnManager.java @@ -25,13 +25,14 @@ import androidx.annotation.RequiresPermission; // Stub based on: // https://gitlab.e.foundation/e/os/android_frameworks_base/-/blob/[SDK_VERSION]/core/java/android/net/VpnManager.java +// Starting with SDK31. Before use IConnectivityManager. public class VpnManager { public static final int TYPE_VPN_SERVICE = 1; @TargetApi(31) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) public boolean prepareVpn( @Nullable String oldPackage, @@ -43,8 +44,8 @@ public class VpnManager { @TargetApi(31) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) public void setVpnPackageAuthorization( String packageName, @@ -54,8 +55,8 @@ public class VpnManager { @TargetApi(31) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) @RequiresPermission("android.permission.CONTROL_ALWAYS_ON_VPN") public String getAlwaysOnVpnPackageForUser(int userId) { diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/ServiceManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/ServiceManager.java index cbf6826718ca50bc2a3d2e1f66c1703a0060829d..0cdf9a039aaa3b08dba67691e0dfab32e0a5cfca 100644 --- a/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/ServiceManager.java +++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/ServiceManager.java @@ -26,8 +26,8 @@ import androidx.annotation.DeprecatedSinceApi; public class ServiceManager { @TargetApi(30) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) public static IBinder getService(String name) { return null; diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserHandle.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserHandle.java index cf30aa6b71051ab864516c51c6b6a7c9edbc5472..3bb959214178efa74cdcb0205c90e20159922b4f 100644 --- a/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserHandle.java +++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserHandle.java @@ -22,13 +22,13 @@ import android.annotation.TargetApi; import androidx.annotation.DeprecatedSinceApi; // Stub based on: -// https://gitlab.e.foundation/e/os/android_frameworks_base/-/blob/[SDK_VERSION]/core/java/android/os/ServiceManager.java +// https://gitlab.e.foundation/e/os/android_frameworks_base/-/blob/[SDK_VERSION]/core/java/android/os/UserHandle.java public class UserHandle { @TargetApi(30) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) public static /*@UserIdInt*/ int myUserId() { return 0; diff --git a/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserManager.java b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserManager.java index fb6d1a945a75e37a0bb4ad7f3809005c1579f63d..bbce4f7a7ba2e5cdbca92176d2d3601eba7c9a19 100644 --- a/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserManager.java +++ b/permissionseos/libs/hidden-apis-stub/src/main/java/android/os/UserManager.java @@ -33,11 +33,11 @@ public class UserManager { // to "android.permission.MANAGE_USERS" @TargetApi(29) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) @RequiresPermission("android.permission.MANAGE_USERS") - public List getProfiles(int userHandle) { + public List getProfiles(int userId) { return null; } @@ -45,8 +45,8 @@ public class UserManager { // to "android.permission.MANAGE_USERS" @TargetApi(29) @DeprecatedSinceApi( - api = 36, - message = "Check availability in SDK36" + api = 37, + message = "Check availability in SDK37" ) @RequiresPermission("android.permission.MANAGE_USERS") public boolean isManagedProfile(int userId) {