Loading services/core/java/com/android/server/ConnectivityService.java +1 −7 Original line number Diff line number Diff line Loading @@ -65,7 +65,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.app.AppOpsManager; import android.app.BroadcastOptions; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.ComponentName; Loading Loading @@ -1146,12 +1145,7 @@ public class ConnectivityService extends IConnectivityManager.Stub dataConnectionStats.startMonitoring(); mKeepaliveTracker = new KeepaliveTracker(mContext, mHandler); mNotifier = new NetworkNotificationManager(mContext, mTelephonyManager, // Pass a NotificationManager obtained from a context with UserHandle.ALL, then // NetworkNotificationManager can put up a notification to all users. // TODO: Create NotificationManager in NetworkNotificationManager directly. (NotificationManager) mContext.createContextAsUser(UserHandle.ALL, 0 /* flags */) .getSystemService(Context.NOTIFICATION_SERVICE)); mNotifier = new NetworkNotificationManager(mContext, mTelephonyManager); final int dailyLimit = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.NETWORK_SWITCH_NOTIFICATION_DAILY_LIMIT, Loading services/core/java/com/android/server/connectivity/NetworkNotificationManager.java +6 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; import static android.net.NetworkCapabilities.TRANSPORT_VPN; import static android.net.NetworkCapabilities.TRANSPORT_WIFI; import android.annotation.NonNull; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; Loading @@ -30,6 +31,7 @@ import android.content.res.Resources; import android.net.NetworkSpecifier; import android.net.TelephonyNetworkSpecifier; import android.net.wifi.WifiInfo; import android.os.UserHandle; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; Loading Loading @@ -83,10 +85,12 @@ public class NetworkNotificationManager { // Tracks the types of notifications managed by this instance, from creation to cancellation. private final SparseIntArray mNotificationTypeMap; public NetworkNotificationManager(Context c, TelephonyManager t, NotificationManager n) { public NetworkNotificationManager(@NonNull final Context c, @NonNull final TelephonyManager t) { mContext = c; mTelephonyManager = t; mNotificationManager = n; mNotificationManager = (NotificationManager) c.createContextAsUser(UserHandle.ALL, 0 /* flags */) .getSystemService(Context.NOTIFICATION_SERVICE); mNotificationTypeMap = new SparseIntArray(); } Loading tests/net/java/com/android/server/connectivity/NetworkNotificationManagerTest.java +9 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.times; Loading @@ -36,6 +37,7 @@ import android.content.pm.PackageManager; import android.content.res.Resources; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.os.UserHandle; import android.telephony.TelephonyManager; import androidx.test.filters.SmallTest; Loading @@ -47,6 +49,7 @@ import com.android.server.connectivity.NetworkNotificationManager.NotificationTy import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.AdditionalAnswers; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; Loading Loading @@ -104,10 +107,15 @@ public class NetworkNotificationManagerTest { when(mCtx.getResources()).thenReturn(mResources); when(mCtx.getPackageManager()).thenReturn(mPm); when(mCtx.getApplicationInfo()).thenReturn(new ApplicationInfo()); final Context asUserCtx = mock(Context.class, AdditionalAnswers.delegatesTo(mCtx)); doReturn(UserHandle.ALL).when(asUserCtx).getUser(); when(mCtx.createContextAsUser(eq(UserHandle.ALL), anyInt())).thenReturn(asUserCtx); when(mCtx.getSystemService(eq(Context.NOTIFICATION_SERVICE))) .thenReturn(mNotificationManager); when(mNetworkInfo.getExtraInfo()).thenReturn("extra"); when(mResources.getColor(anyInt(), any())).thenReturn(0xFF607D8B); mManager = new NetworkNotificationManager(mCtx, mTelephonyManager, mNotificationManager); mManager = new NetworkNotificationManager(mCtx, mTelephonyManager); } private void verifyTitleByNetwork(final int id, final NetworkAgentInfo nai, final int title) { Loading Loading
services/core/java/com/android/server/ConnectivityService.java +1 −7 Original line number Diff line number Diff line Loading @@ -65,7 +65,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.app.AppOpsManager; import android.app.BroadcastOptions; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.ComponentName; Loading Loading @@ -1146,12 +1145,7 @@ public class ConnectivityService extends IConnectivityManager.Stub dataConnectionStats.startMonitoring(); mKeepaliveTracker = new KeepaliveTracker(mContext, mHandler); mNotifier = new NetworkNotificationManager(mContext, mTelephonyManager, // Pass a NotificationManager obtained from a context with UserHandle.ALL, then // NetworkNotificationManager can put up a notification to all users. // TODO: Create NotificationManager in NetworkNotificationManager directly. (NotificationManager) mContext.createContextAsUser(UserHandle.ALL, 0 /* flags */) .getSystemService(Context.NOTIFICATION_SERVICE)); mNotifier = new NetworkNotificationManager(mContext, mTelephonyManager); final int dailyLimit = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.NETWORK_SWITCH_NOTIFICATION_DAILY_LIMIT, Loading
services/core/java/com/android/server/connectivity/NetworkNotificationManager.java +6 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static android.net.NetworkCapabilities.TRANSPORT_CELLULAR; import static android.net.NetworkCapabilities.TRANSPORT_VPN; import static android.net.NetworkCapabilities.TRANSPORT_WIFI; import android.annotation.NonNull; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; Loading @@ -30,6 +31,7 @@ import android.content.res.Resources; import android.net.NetworkSpecifier; import android.net.TelephonyNetworkSpecifier; import android.net.wifi.WifiInfo; import android.os.UserHandle; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; Loading Loading @@ -83,10 +85,12 @@ public class NetworkNotificationManager { // Tracks the types of notifications managed by this instance, from creation to cancellation. private final SparseIntArray mNotificationTypeMap; public NetworkNotificationManager(Context c, TelephonyManager t, NotificationManager n) { public NetworkNotificationManager(@NonNull final Context c, @NonNull final TelephonyManager t) { mContext = c; mTelephonyManager = t; mNotificationManager = n; mNotificationManager = (NotificationManager) c.createContextAsUser(UserHandle.ALL, 0 /* flags */) .getSystemService(Context.NOTIFICATION_SERVICE); mNotificationTypeMap = new SparseIntArray(); } Loading
tests/net/java/com/android/server/connectivity/NetworkNotificationManagerTest.java +9 −1 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.times; Loading @@ -36,6 +37,7 @@ import android.content.pm.PackageManager; import android.content.res.Resources; import android.net.NetworkCapabilities; import android.net.NetworkInfo; import android.os.UserHandle; import android.telephony.TelephonyManager; import androidx.test.filters.SmallTest; Loading @@ -47,6 +49,7 @@ import com.android.server.connectivity.NetworkNotificationManager.NotificationTy import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.AdditionalAnswers; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.MockitoAnnotations; Loading Loading @@ -104,10 +107,15 @@ public class NetworkNotificationManagerTest { when(mCtx.getResources()).thenReturn(mResources); when(mCtx.getPackageManager()).thenReturn(mPm); when(mCtx.getApplicationInfo()).thenReturn(new ApplicationInfo()); final Context asUserCtx = mock(Context.class, AdditionalAnswers.delegatesTo(mCtx)); doReturn(UserHandle.ALL).when(asUserCtx).getUser(); when(mCtx.createContextAsUser(eq(UserHandle.ALL), anyInt())).thenReturn(asUserCtx); when(mCtx.getSystemService(eq(Context.NOTIFICATION_SERVICE))) .thenReturn(mNotificationManager); when(mNetworkInfo.getExtraInfo()).thenReturn("extra"); when(mResources.getColor(anyInt(), any())).thenReturn(0xFF607D8B); mManager = new NetworkNotificationManager(mCtx, mTelephonyManager, mNotificationManager); mManager = new NetworkNotificationManager(mCtx, mTelephonyManager); } private void verifyTitleByNetwork(final int id, final NetworkAgentInfo nai, final int title) { Loading