From 8f72bd6401a448aedf8b4ee8c7cc15a2f21d71dc 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. Original change (project moved): Ied29d3c7fb517d0c82f40662a1e0e87186c3a89e Bug: 182125649 Test: atest FrameworksNetTests Merged-In: I3c2563d4ae4e3715d0c6270344ba8f7ef067872f Change-Id: I6b18aab62fbb66bdd43cdb7add30e0c215687c3c --- .../connectivity/NetworkNotificationManager.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/service/src/com/android/server/connectivity/NetworkNotificationManager.java b/service/src/com/android/server/connectivity/NetworkNotificationManager.java index 0c0d45995a..b57ad5d84e 100644 --- a/service/src/com/android/server/connectivity/NetworkNotificationManager.java +++ b/service/src/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(); }