From 0e9c51ca5ca71f552b64c14b7c1439aa3d37d2e8 Mon Sep 17 00:00:00 2001 From: Junyu Lai Date: Wed, 5 Jan 2022 07:47:24 +0000 Subject: [PATCH] [MS39.2] Remove the looper from NetworkStatsSubscriptionMonitor OnSubscriptionsChangedListenerHandler(Looper looper) is hidden, there is no way to pass a looper to it in the test. This change partially revert aosp/1340040 to fix hidden API dependency. And will use a different approach to address this problem in later stages. Test: atest NetworkStatsSubscriptionMonitorTest Bug: 204830222 Bug: 213280079 Change-Id: Ie17f04cd9f174f2895bde4607bbd7a9a92181a96 --- .../android/server/net/NetworkStatsServiceTest.java | 2 +- .../net/NetworkStatsSubscriptionsMonitorTest.java | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java b/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java index 513f485d8e..d82a756ae8 100644 --- a/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java +++ b/tests/unit/java/com/android/server/net/NetworkStatsServiceTest.java @@ -307,7 +307,7 @@ public class NetworkStatsServiceTest extends NetworkStatsBaseTest { @Override public NetworkStatsSubscriptionsMonitor makeSubscriptionsMonitor( - @NonNull Context context, @NonNull Looper looper, @NonNull Executor executor, + @NonNull Context context, @NonNull Executor executor, @NonNull NetworkStatsService service) { return mNetworkStatsSubscriptionsMonitor; diff --git a/tests/unit/java/com/android/server/net/NetworkStatsSubscriptionsMonitorTest.java b/tests/unit/java/com/android/server/net/NetworkStatsSubscriptionsMonitorTest.java index 2add3ee618..58cdc7f4f1 100644 --- a/tests/unit/java/com/android/server/net/NetworkStatsSubscriptionsMonitorTest.java +++ b/tests/unit/java/com/android/server/net/NetworkStatsSubscriptionsMonitorTest.java @@ -35,7 +35,7 @@ import android.annotation.Nullable; import android.content.Context; import android.net.NetworkTemplate; import android.os.Build; -import android.os.test.TestLooper; +import android.os.Looper; import android.telephony.NetworkRegistrationInfo; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; @@ -79,19 +79,23 @@ public final class NetworkStatsSubscriptionsMonitorTest { private final Executor mExecutor = Executors.newSingleThreadExecutor(); private NetworkStatsSubscriptionsMonitor mMonitor; - private TestLooper mTestLooper = new TestLooper(); @Before public void setUp() { MockitoAnnotations.initMocks(this); + // TODO(b/213280079): Start a different thread and prepare the looper, create the monitor + // on that thread instead of using the test main thread looper. + if (Looper.myLooper() == null) { + Looper.prepare(); + } + when(mContext.getSystemService(eq(Context.TELEPHONY_SUBSCRIPTION_SERVICE))) .thenReturn(mSubscriptionManager); when(mContext.getSystemService(eq(Context.TELEPHONY_SERVICE))) .thenReturn(mTelephonyManager); - mMonitor = new NetworkStatsSubscriptionsMonitor(mContext, mTestLooper.getLooper(), - mExecutor, mDelegate); + mMonitor = new NetworkStatsSubscriptionsMonitor(mContext, mExecutor, mDelegate); } @Test