diff options
| -rw-r--r-- | wifi/Android.bp | 21 | ||||
| -rw-r--r-- | wifi/java/android/net/wifi/WifiNetworkSpecifier.java | 23 |
2 files changed, 36 insertions, 8 deletions
diff --git a/wifi/Android.bp b/wifi/Android.bp index 4c9ee854536e..76ccc68908d1 100644 --- a/wifi/Android.bp +++ b/wifi/Android.bp @@ -58,19 +58,20 @@ test_access_hidden_api_whitelist = [ // classes before they are renamed. java_library { name: "framework-wifi-pre-jarjar", - // TODO(b/140299412) should be core_current once we build against framework-system-stubs - sdk_version: "core_platform", + // TODO(b/146757305): sdk_version should be "module_lib_current" + sdk_version: "core_current", static_libs: [ "framework-wifi-util-lib", "android.hardware.wifi-V1.0-java-constants", ], libs: [ - // TODO(b/140299412) should be framework-system-stubs once we fix all @hide dependencies - "framework-minus-apex", "framework-annotations-lib", "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage "unsupportedappusage-annotation", // for dalvik.annotation.compat.UnsupportedAppUsage "framework-telephony-stubs", + // TODO(b/146757305): should be unnecessary once + // sdk_version="module_lib_current" + "android_system_stubs_current", ], srcs: [ ":framework-wifi-updatable-sources", @@ -80,13 +81,21 @@ java_library { "//frameworks/opt/net/wifi/service", "//frameworks/opt/net/wifi/tests/wifitests", ], + + // TODO(b/146757305): should be unnecessary once + // sdk_version="module_lib_current" + aidl: { + include_dirs: [ + "frameworks/base/core/java", + ], + }, } // post-jarjar version of framework-wifi java_library { name: "framework-wifi", - // TODO(b/140299412) should be core_current once we build against framework-system-stubs - sdk_version: "core_platform", + // TODO(b/146757305): sdk_version should be "module_lib_current" + sdk_version: "core_current", static_libs: [ "framework-wifi-pre-jarjar", ], diff --git a/wifi/java/android/net/wifi/WifiNetworkSpecifier.java b/wifi/java/android/net/wifi/WifiNetworkSpecifier.java index 07afd7fb6714..444e1ef041e8 100644 --- a/wifi/java/android/net/wifi/WifiNetworkSpecifier.java +++ b/wifi/java/android/net/wifi/WifiNetworkSpecifier.java @@ -20,7 +20,7 @@ import static com.android.internal.util.Preconditions.checkNotNull; import android.annotation.NonNull; import android.annotation.Nullable; -import android.app.ActivityThread; +import android.app.Application; import android.net.MacAddress; import android.net.MatchAllNetworkSpecifier; import android.net.NetworkRequest; @@ -30,8 +30,11 @@ import android.os.Parcelable; import android.os.PatternMatcher; import android.os.Process; import android.text.TextUtils; +import android.util.Log; import android.util.Pair; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; import java.nio.charset.CharsetEncoder; import java.nio.charset.StandardCharsets; import java.util.Objects; @@ -41,6 +44,7 @@ import java.util.Objects; * {@link WifiNetworkSpecifier.Builder} class to create an instance. */ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parcelable { + private static final String TAG = "WifiNetworkSpecifier"; /** * Builder used to create {@link WifiNetworkSpecifier} objects. @@ -436,7 +440,22 @@ public final class WifiNetworkSpecifier extends NetworkSpecifier implements Parc mBssidPatternMatcher, buildWifiConfiguration(), Process.myUid(), - ActivityThread.currentApplication().getApplicationContext().getOpPackageName()); + getCurrentApplicationReflectively().getApplicationContext().getOpPackageName()); + } + + // TODO(b/144102365): Remove once refactor is complete + private static Application getCurrentApplicationReflectively() { + try { + // reflection for static method android.app.ActivityThread#currentApplication() + Class<?> klass = Class.forName("android.app.ActivityThread"); + Method currentApplicationMethod = klass.getDeclaredMethod("currentApplication"); + Object result = currentApplicationMethod.invoke(null); + return (Application) result; + } catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException + | InvocationTargetException e) { + Log.e(TAG, "Failed to call ActivityThread#currentApplication() reflectively!", e); + throw new RuntimeException(e); + } } } |