Merge "NetworkNotificationManager gets NotificationManager locally" am: a13966feea
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1459882 Change-Id: I1a3b685f04d7b4d7d5a028015e94742c83db2dc8
This commit is contained in:
@@ -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;
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user