Merge "Fix testNightModeAutoNotPersistedCarMode" into rvc-dev
diff --git a/hostsidetests/scopedstorage/legacy/src/android/scopedstorage/cts/legacy/LegacyStorageTest.java b/hostsidetests/scopedstorage/legacy/src/android/scopedstorage/cts/legacy/LegacyStorageTest.java
index 2422f3b..4596cab 100644
--- a/hostsidetests/scopedstorage/legacy/src/android/scopedstorage/cts/legacy/LegacyStorageTest.java
+++ b/hostsidetests/scopedstorage/legacy/src/android/scopedstorage/cts/legacy/LegacyStorageTest.java
@@ -133,6 +133,7 @@
@After
public void teardown() throws Exception {
executeShellCommand("rm " + getShellFile());
+ MediaStore.scanFile(getContentResolver(), getShellFile());
}
/**
@@ -221,6 +222,7 @@
try {
executeShellCommand("touch " + existingFile);
+ MediaStore.scanFile(getContentResolver(), existingFile);
Os.open(existingFile.getPath(), OsConstants.O_RDONLY, /*mode*/ 0);
fail("Opening file for read expected to fail: " + existingFile);
} catch (ErrnoException expected) {
@@ -273,6 +275,7 @@
FileDescriptor fd = null;
try {
executeShellCommand("touch " + existingFile);
+ MediaStore.scanFile(getContentResolver(), existingFile);
fd = Os.open(existingFile.getPath(), OsConstants.O_RDONLY, /*mode*/ 0);
} finally {
if (fd != null) {
@@ -314,6 +317,7 @@
final File shellFile = getShellFile();
executeShellCommand("touch " + getShellFile());
+ MediaStore.scanFile(getContentResolver(), getShellFile());
// can list a non-media file created by other package.
assertThat(Arrays.asList(shellFile.getParentFile().list()))
.contains(shellFile.getName());
@@ -381,6 +385,7 @@
"LegacyFileAccessTest2");
try {
executeShellCommand("touch " + shellFile1);
+ MediaStore.scanFile(getContentResolver(), shellFile1);
// app can't rename shell file.
assertCantRenameFile(shellFile1, shellFile2);
// app can't move shell file to its media directory.
@@ -415,6 +420,7 @@
"LegacyFileAccessTest2");
try {
executeShellCommand("touch " + shellFile1);
+ MediaStore.scanFile(getContentResolver(), shellFile1);
// app can't rename shell file.
assertCantRenameFile(shellFile1, shellFile2);
// app can't move shell file to its media directory.
diff --git a/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java b/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java
index 8f44bae..e2c9d71 100644
--- a/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java
+++ b/hostsidetests/scopedstorage/src/android/scopedstorage/cts/ScopedStorageTest.java
@@ -781,6 +781,8 @@
} finally {
executeShellCommand("rm " + pdfFile.getAbsolutePath());
executeShellCommand("rm " + videoFile.getAbsolutePath());
+ MediaStore.scanFile(getContentResolver(), pdfFile);
+ MediaStore.scanFile(getContentResolver(), videoFile);
uninstallAppNoThrow(TEST_APP_A);
}
}
@@ -1387,6 +1389,7 @@
videoFile.delete();
topLevelVideoFile.delete();
executeShellCommand("rm " + musicFile.getAbsolutePath());
+ MediaStore.scanFile(getContentResolver(), musicFile);
denyAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
}
}
@@ -2097,11 +2100,13 @@
// Use shell to create root file because TEST_APP_A is in
// scoped storage.
executeShellCommand("touch " + shellPdfAtRoot.getAbsolutePath());
+ MediaStore.scanFile(getContentResolver(), shellPdfAtRoot);
assertFileAccess_existsOnly(shellPdfAtRoot);
} finally {
deleteFileAsNoThrow(TEST_APP_A, otherAppPdf.getAbsolutePath());
deleteFileAsNoThrow(TEST_APP_A, otherAppImage.getAbsolutePath());
executeShellCommand("rm " + shellPdfAtRoot.getAbsolutePath());
+ MediaStore.scanFile(getContentResolver(), shellPdfAtRoot);
myAppPdf.delete();
uninstallApp(TEST_APP_A);
}
@@ -2225,6 +2230,7 @@
installApp(TEST_APP_A);
assertCreateFilesAs(TEST_APP_A, otherAppImg, otherAppMusic, otherAppPdf);
executeShellCommand("touch " + otherTopLevelFile);
+ MediaStore.scanFile(getContentResolver(), otherTopLevelFile);
allowAppOpsToUid(Process.myUid(), OPSTR_MANAGE_EXTERNAL_STORAGE);
@@ -2240,6 +2246,7 @@
} finally {
denyAppOpsToUid(Process.myUid(), OPSTR_MANAGE_EXTERNAL_STORAGE);
executeShellCommand("rm " + otherTopLevelFile);
+ MediaStore.scanFile(getContentResolver(), otherTopLevelFile);
deleteFilesAs(TEST_APP_A, otherAppImg, otherAppMusic, otherAppPdf);
uninstallApp(TEST_APP_A);
}
@@ -2344,6 +2351,7 @@
assertThat(dirInDcim.exists() || dirInDcim.mkdir()).isTrue();
executeShellCommand("touch " + otherAppPdfFile1);
+ MediaStore.scanFile(getContentResolver(), otherAppPdfFile1);
installAppWithStoragePermissions(TEST_APP_A);
allowAppOpsToUid(Process.myUid(), SYSTEM_GALERY_APPOPS);
@@ -2362,6 +2370,8 @@
} finally {
executeShellCommand("rm " + otherAppPdfFile1);
executeShellCommand("rm " + otherAppPdfFile2);
+ MediaStore.scanFile(getContentResolver(), otherAppPdfFile1);
+ MediaStore.scanFile(getContentResolver(), otherAppPdfFile2);
otherAppImageFile1.delete();
otherAppImageFile2.delete();
otherAppVideoFile1.delete();
diff --git a/tests/accessibilityservice/src/android/accessibilityservice/cts/MagnificationGestureHandlerTest.java b/tests/accessibilityservice/src/android/accessibilityservice/cts/MagnificationGestureHandlerTest.java
index 8393012..c64eaa3 100644
--- a/tests/accessibilityservice/src/android/accessibilityservice/cts/MagnificationGestureHandlerTest.java
+++ b/tests/accessibilityservice/src/android/accessibilityservice/cts/MagnificationGestureHandlerTest.java
@@ -51,6 +51,7 @@
import android.graphics.PointF;
import android.platform.test.annotations.AppModeFull;
import android.provider.Settings;
+import android.view.ViewConfiguration;
import android.widget.TextView;
import androidx.test.InstrumentationRegistry;
@@ -105,7 +106,6 @@
@Before
public void setUp() throws Exception {
mInstrumentation = InstrumentationRegistry.getInstrumentation();
-
PackageManager pm = mInstrumentation.getContext().getPackageManager();
mHasTouchscreen = pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN)
|| pm.hasSystemFeature(PackageManager.FEATURE_FAKETOUCH);
@@ -179,7 +179,11 @@
@Test
public void testPanning() {
- if (!mHasTouchscreen) return;
+ //The minimum movement to transit to panningState.
+ final float minSwipeDistance = ViewConfiguration.get(
+ mInstrumentation.getContext()).getScaledTouchSlop();
+ final boolean screenBigEnough = mPan > minSwipeDistance;
+ if (!mHasTouchscreen || !screenBigEnough) return;
assertFalse(isZoomed());
setZoomByTripleTapping(true);
@@ -190,7 +194,8 @@
swipe(mTapLocation2, add(mTapLocation2, -mPan, 0)));
waitOn(mZoomLock,
- () -> (mCurrentZoomCenter.x - oldCenter.x >= mPan / mCurrentScale * 0.9));
+ () -> (mCurrentZoomCenter.x - oldCenter.x
+ >= (mPan - minSwipeDistance) / mCurrentScale * 0.9));
setZoomByTripleTapping(false);
}
diff --git a/tests/tests/media/src/android/media/cts/MediaRouter2Test.java b/tests/tests/media/src/android/media/cts/MediaRouter2Test.java
index 3f6e690..48466d5 100644
--- a/tests/tests/media/src/android/media/cts/MediaRouter2Test.java
+++ b/tests/tests/media/src/android/media/cts/MediaRouter2Test.java
@@ -285,6 +285,8 @@
final CountDownLatch successLatch2 = new CountDownLatch(1);
final CountDownLatch failureLatch = new CountDownLatch(1);
final CountDownLatch stopLatch = new CountDownLatch(1);
+ final CountDownLatch onReleaseSessionLatch = new CountDownLatch(1);
+
final List<RoutingController> createdControllers = new ArrayList<>();
// Create session with this route
@@ -311,6 +313,16 @@
}
};
+ StubMediaRoute2ProviderService service = mService;
+ if (service != null) {
+ service.setProxy(new StubMediaRoute2ProviderService.Proxy() {
+ @Override
+ public void onReleaseSession(long requestId, String sessionId) {
+ onReleaseSessionLatch.countDown();
+ }
+ });
+ }
+
Map<String, MediaRoute2Info> routes = waitAndGetRoutes(sampleRouteType);
MediaRoute2Info route1 = routes.get(ROUTE_ID1);
MediaRoute2Info route2 = routes.get(ROUTE_ID2);
@@ -337,15 +349,19 @@
RoutingController controller1 = createdControllers.get(0);
RoutingController controller2 = createdControllers.get(1);
- // The first controller is expected to be released.
- assertTrue(controller1.isReleased());
-
assertNotEquals(controller1.getId(), controller2.getId());
assertTrue(createRouteMap(controller1.getSelectedRoutes()).containsKey(
ROUTE_ID1));
assertTrue(createRouteMap(controller2.getSelectedRoutes()).containsKey(
ROUTE_ID2));
+ // Transferred controllers shouldn't be obtainable.
+ assertFalse(mRouter2.getControllers().contains(controller1));
+ assertTrue(mRouter2.getControllers().contains(controller2));
+
+ // Should be able to release transferred controllers.
+ controller1.release();
+ assertTrue(onReleaseSessionLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
} finally {
releaseControllers(createdControllers);
mRouter2.unregisterRouteCallback(routeCallback);
diff --git a/tests/tests/net/src/android/net/cts/ConnectivityDiagnosticsManagerTest.java b/tests/tests/net/src/android/net/cts/ConnectivityDiagnosticsManagerTest.java
index a19ba64..34ca9a4 100644
--- a/tests/tests/net/src/android/net/cts/ConnectivityDiagnosticsManagerTest.java
+++ b/tests/tests/net/src/android/net/cts/ConnectivityDiagnosticsManagerTest.java
@@ -80,6 +80,7 @@
import com.android.testutils.ArrayTrackRecord;
import com.android.testutils.DevSdkIgnoreRule.IgnoreUpTo;
import com.android.testutils.DevSdkIgnoreRunner;
+import com.android.testutils.SkipPresubmit;
import org.junit.After;
import org.junit.Before;
@@ -189,6 +190,7 @@
cb.assertNoCallback();
}
+ @SkipPresubmit(reason = "Flaky: b/159718782; add to presubmit after fixing")
@Test
public void testRegisterCallbackWithCarrierPrivileges() throws Exception {
assumeTrue(mPackageManager.hasSystemFeature(FEATURE_TELEPHONY));
diff --git a/tests/tests/net/src/android/net/cts/DnsResolverTest.java b/tests/tests/net/src/android/net/cts/DnsResolverTest.java
index e6f75c3..4acbbcf 100644
--- a/tests/tests/net/src/android/net/cts/DnsResolverTest.java
+++ b/tests/tests/net/src/android/net/cts/DnsResolverTest.java
@@ -47,6 +47,7 @@
import android.util.Log;
import com.android.net.module.util.DnsPacket;
+import com.android.testutils.SkipPresubmit;
import java.net.Inet4Address;
import java.net.Inet6Address;
@@ -585,6 +586,7 @@
doTestContinuousQueries(mExecutor);
}
+ @SkipPresubmit(reason = "Flaky: b/159762682; add to presubmit after fixing")
public void testContinuousQueriesInline() throws Exception {
doTestContinuousQueries(mExecutorInline);
}