From fff9cd3b1cdee166dbd9ebfdca44d6490476bc48 Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Mon, 22 Mar 2021 10:21:48 +0000 Subject: [PATCH] Remove hidden Icon.createWithResource API usage Icon.createWithResource(Context, int) is public, but Icon.createWithResource(Resources, int) is a hidden API. Replace the former by the latter in NetworkNotificationManager, so that it builds against stable APIs. Bug: 182125649 Test: atest FrameworksNetTests Change-Id: Ied29d3c7fb517d0c82f40662a1e0e87186c3a89e --- .../connectivity/NetworkNotificationManager.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java b/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java index 0c0d45995a..b57ad5d84e 100644 --- a/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java +++ b/services/core/java/com/android/server/connectivity/NetworkNotificationManager.java @@ -84,7 +84,7 @@ public class NetworkNotificationManager { // The context is for the current user (system server) private final Context mContext; - private final Resources mResources; + private final ConnectivityResources mResources; private final TelephonyManager mTelephonyManager; // The notification manager is created from a context for User.ALL, so notifications // will be sent to all users. @@ -99,7 +99,7 @@ public class NetworkNotificationManager { (NotificationManager) c.createContextAsUser(UserHandle.ALL, 0 /* flags */) .getSystemService(Context.NOTIFICATION_SERVICE); mNotificationTypeMap = new SparseIntArray(); - mResources = new ConnectivityResources(mContext).get(); + mResources = new ConnectivityResources(mContext); } @VisibleForTesting @@ -118,11 +118,11 @@ public class NetworkNotificationManager { } private String getTransportName(final int transportType) { - String[] networkTypes = mResources.getStringArray(R.array.network_switch_type_name); + String[] networkTypes = mResources.get().getStringArray(R.array.network_switch_type_name); try { return networkTypes[transportType]; } catch (IndexOutOfBoundsException e) { - return mResources.getString(R.string.network_switch_type_name_unknown); + return mResources.get().getString(R.string.network_switch_type_name_unknown); } } @@ -197,10 +197,11 @@ public class NetworkNotificationManager { tag, nameOf(eventId), getTransportName(transportType), name, highPriority)); } - final Resources r = mResources; + final Resources r = mResources.get(); final CharSequence title; final CharSequence details; - Icon icon = Icon.createWithResource(r, getIcon(transportType)); + Icon icon = Icon.createWithResource( + mResources.getResourcesContext(), getIcon(transportType)); if (notifyType == NotificationType.NO_INTERNET && transportType == TRANSPORT_WIFI) { title = r.getString(R.string.wifi_no_internet, name); details = r.getString(R.string.wifi_no_internet_detailed); @@ -355,7 +356,7 @@ public class NetworkNotificationManager { public void showToast(NetworkAgentInfo fromNai, NetworkAgentInfo toNai) { String fromTransport = getTransportName(approximateTransportType(fromNai)); String toTransport = getTransportName(approximateTransportType(toNai)); - String text = mResources.getString( + String text = mResources.get().getString( R.string.network_switch_metered_toast, fromTransport, toTransport); Toast.makeText(mContext, text, Toast.LENGTH_LONG).show(); }