DO NOT MERGE: De-guava BroadcastInterceptingContext and move it to testutils.
Removing the static dependency on guava reduces test compile time by about 20 seconds on a Z840, thus substantially speeding up the compile/test cycle. Make FutureIntent public instead of package-private because it is used directly by NetworkPolicyManagementServiceTest, which as of this CL is now in a different package. (cherry picked from commit281a17c958) Test: runtest frameworks-services -c com.android.server.ConnectivityServiceTest # PASS Test: runtest frameworks-services -c com.android.server.NetworkPolicyManagerServiceTest # PASS Test: runtest frameworks-services -c com.android.server.net.NetworkStatsServiceTest # PASS Test: runtest frameworks-services -c com.android.server.NetworkManagementServiceTest # Already failing. Bug: 31479480 (cherry picked from commit3c295b59f5) Change-Id: I8a95d4618dced81f173d2b38b9c1dfe3860b348a
This commit is contained in:
@@ -76,6 +76,7 @@ import android.util.Log;
|
||||
import android.util.LogPrinter;
|
||||
|
||||
import com.android.internal.util.WakeupMessage;
|
||||
import com.android.internal.util.test.BroadcastInterceptingContext;
|
||||
import com.android.internal.util.test.FakeSettingsProvider;
|
||||
import com.android.server.connectivity.NetworkAgentInfo;
|
||||
import com.android.server.connectivity.NetworkMonitor;
|
||||
|
||||
@@ -24,6 +24,7 @@ import android.os.Binder;
|
||||
import android.test.AndroidTestCase;
|
||||
import android.test.suitebuilder.annotation.LargeTest;
|
||||
import com.android.server.net.BaseNetworkObserver;
|
||||
import com.android.internal.util.test.BroadcastInterceptingContext;
|
||||
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
@@ -78,6 +78,7 @@ import android.test.suitebuilder.annotation.Suppress;
|
||||
import android.text.format.Time;
|
||||
import android.util.TrustedTime;
|
||||
|
||||
import com.android.internal.util.test.BroadcastInterceptingContext;
|
||||
import com.android.server.net.NetworkPolicyManagerService;
|
||||
import com.google.common.util.concurrent.AbstractFuture;
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ import android.test.suitebuilder.annotation.Suppress;
|
||||
import android.util.TrustedTime;
|
||||
|
||||
import com.android.internal.net.VpnInfo;
|
||||
import com.android.server.BroadcastInterceptingContext;
|
||||
import com.android.internal.util.test.BroadcastInterceptingContext;
|
||||
import com.android.server.net.NetworkStatsService;
|
||||
import com.android.server.net.NetworkStatsService.NetworkStatsSettings;
|
||||
import com.android.server.net.NetworkStatsService.NetworkStatsSettings.Config;
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.server;
|
||||
package com.android.internal.util.test;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
@@ -25,13 +25,12 @@ import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.UserHandle;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.util.concurrent.AbstractFuture;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.concurrent.FutureTask;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
@@ -42,9 +41,17 @@ import java.util.concurrent.TimeoutException;
|
||||
public class BroadcastInterceptingContext extends ContextWrapper {
|
||||
private static final String TAG = "WatchingContext";
|
||||
|
||||
private final List<BroadcastInterceptor> mInterceptors = Lists.newArrayList();
|
||||
private final List<BroadcastInterceptor> mInterceptors = new ArrayList<>();
|
||||
|
||||
public class BroadcastInterceptor extends AbstractFuture<Intent> {
|
||||
public abstract class FutureIntent extends FutureTask<Intent> {
|
||||
public FutureIntent() {
|
||||
super(
|
||||
() -> { throw new IllegalStateException("Cannot happen"); }
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public class BroadcastInterceptor extends FutureIntent {
|
||||
private final BroadcastReceiver mReceiver;
|
||||
private final IntentFilter mFilter;
|
||||
|
||||
@@ -82,11 +89,11 @@ public class BroadcastInterceptingContext extends ContextWrapper {
|
||||
super(base);
|
||||
}
|
||||
|
||||
public Future<Intent> nextBroadcastIntent(String action) {
|
||||
public FutureIntent nextBroadcastIntent(String action) {
|
||||
return nextBroadcastIntent(new IntentFilter(action));
|
||||
}
|
||||
|
||||
public Future<Intent> nextBroadcastIntent(IntentFilter filter) {
|
||||
public FutureIntent nextBroadcastIntent(IntentFilter filter) {
|
||||
final BroadcastInterceptor interceptor = new BroadcastInterceptor(null, filter);
|
||||
synchronized (mInterceptors) {
|
||||
mInterceptors.add(interceptor);
|
||||
Reference in New Issue
Block a user