Merge "MediaRouter: make request id globally unique"
diff --git a/api/current.txt b/api/current.txt
index 1d036b9..c734db5 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -23803,9 +23803,9 @@
method public void loadSoundEffects();
method public void playSoundEffect(int);
method public void playSoundEffect(int, float);
- method public void registerAudioDeviceCallback(android.media.AudioDeviceCallback, android.os.Handler);
- method public void registerAudioPlaybackCallback(@NonNull android.media.AudioManager.AudioPlaybackCallback, android.os.Handler);
- method public void registerAudioRecordingCallback(@NonNull android.media.AudioManager.AudioRecordingCallback, android.os.Handler);
+ method public void registerAudioDeviceCallback(android.media.AudioDeviceCallback, @Nullable android.os.Handler);
+ method public void registerAudioPlaybackCallback(@NonNull android.media.AudioManager.AudioPlaybackCallback, @Nullable android.os.Handler);
+ method public void registerAudioRecordingCallback(@NonNull android.media.AudioManager.AudioRecordingCallback, @Nullable android.os.Handler);
method @Deprecated public void registerMediaButtonEventReceiver(android.content.ComponentName);
method @Deprecated public void registerMediaButtonEventReceiver(android.app.PendingIntent);
method @Deprecated public void registerRemoteControlClient(android.media.RemoteControlClient);
diff --git a/api/system-current.txt b/api/system-current.txt
index 5da2db8..062df8d 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -4864,6 +4864,14 @@
method @NonNull public android.net.StaticIpConfiguration.Builder setIpAddress(@Nullable android.net.LinkAddress);
}
+ public final class StringNetworkSpecifier extends android.net.NetworkSpecifier implements android.os.Parcelable {
+ ctor public StringNetworkSpecifier(@NonNull String);
+ method public int describeContents();
+ method public void writeToParcel(@NonNull android.os.Parcel, int);
+ field @NonNull public static final android.os.Parcelable.Creator<android.net.StringNetworkSpecifier> CREATOR;
+ field @NonNull public final String specifier;
+ }
+
public class TrafficStats {
method public static void setThreadStatsTagApp();
method public static void setThreadStatsTagBackup();
diff --git a/core/java/android/companion/BluetoothLeDeviceFilter.java b/core/java/android/companion/BluetoothLeDeviceFilter.java
index 730bc60..dccfb03 100644
--- a/core/java/android/companion/BluetoothLeDeviceFilter.java
+++ b/core/java/android/companion/BluetoothLeDeviceFilter.java
@@ -340,7 +340,7 @@
public Builder setRawDataFilter(@NonNull byte[] rawDataFilter,
@Nullable byte[] rawDataFilterMask) {
checkNotUsed();
- Preconditions.checkNotNull(rawDataFilter);
+ Objects.requireNonNull(rawDataFilter);
checkArgument(rawDataFilterMask == null ||
rawDataFilter.length == rawDataFilterMask.length,
"Mask and filter should be the same length");
diff --git a/core/java/android/companion/CompanionDeviceManager.java b/core/java/android/companion/CompanionDeviceManager.java
index 28cc1f8..3107c63 100644
--- a/core/java/android/companion/CompanionDeviceManager.java
+++ b/core/java/android/companion/CompanionDeviceManager.java
@@ -16,9 +16,6 @@
package android.companion;
-
-import static com.android.internal.util.Preconditions.checkNotNull;
-
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
@@ -42,6 +39,7 @@
import java.util.Collections;
import java.util.List;
+import java.util.Objects;
import java.util.function.BiConsumer;
/**
@@ -150,8 +148,8 @@
if (!checkFeaturePresent()) {
return;
}
- checkNotNull(request, "Request cannot be null");
- checkNotNull(callback, "Callback cannot be null");
+ Objects.requireNonNull(request, "Request cannot be null");
+ Objects.requireNonNull(callback, "Callback cannot be null");
try {
mService.associate(
request,
@@ -278,9 +276,9 @@
if (!checkFeaturePresent()) {
return false;
}
- checkNotNull(packageName, "package name cannot be null");
- checkNotNull(macAddress, "mac address cannot be null");
- checkNotNull(user, "user cannot be null");
+ Objects.requireNonNull(packageName, "package name cannot be null");
+ Objects.requireNonNull(macAddress, "mac address cannot be null");
+ Objects.requireNonNull(user, "user cannot be null");
try {
return mService.isDeviceAssociated(
packageName, macAddress.toString(), user.getIdentifier());
diff --git a/core/java/android/net/StringNetworkSpecifier.java b/core/java/android/net/StringNetworkSpecifier.java
index 21dee55..83dbc63 100644
--- a/core/java/android/net/StringNetworkSpecifier.java
+++ b/core/java/android/net/StringNetworkSpecifier.java
@@ -16,7 +16,8 @@
package android.net;
-import android.annotation.UnsupportedAppUsage;
+import android.annotation.NonNull;
+import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.TextUtils;
@@ -26,18 +27,20 @@
import java.util.Objects;
/** @hide */
+@SystemApi
public final class StringNetworkSpecifier extends NetworkSpecifier implements Parcelable {
/**
* Arbitrary string used to pass (additional) information to the network factory.
*/
- @UnsupportedAppUsage
+ @NonNull
public final String specifier;
- public StringNetworkSpecifier(String specifier) {
+ public StringNetworkSpecifier(@NonNull String specifier) {
Preconditions.checkStringNotEmpty(specifier);
this.specifier = specifier;
}
+ /** @hide */
@Override
public boolean satisfiedBy(NetworkSpecifier other) {
return equals(other);
@@ -65,11 +68,11 @@
}
@Override
- public void writeToParcel(Parcel dest, int flags) {
+ public void writeToParcel(@NonNull Parcel dest, int flags) {
dest.writeString(specifier);
}
- public static final @android.annotation.NonNull Parcelable.Creator<StringNetworkSpecifier> CREATOR =
+ public static final @NonNull Parcelable.Creator<StringNetworkSpecifier> CREATOR =
new Parcelable.Creator<StringNetworkSpecifier>() {
public StringNetworkSpecifier createFromParcel(Parcel in) {
return new StringNetworkSpecifier(in.readString());
diff --git a/core/tests/coretests/src/android/view/textclassifier/ActionsSuggestionsHelperTest.java b/core/tests/coretests/src/android/view/textclassifier/ActionsSuggestionsHelperTest.java
index 80bce26..ec7e83f 100644
--- a/core/tests/coretests/src/android/view/textclassifier/ActionsSuggestionsHelperTest.java
+++ b/core/tests/coretests/src/android/view/textclassifier/ActionsSuggestionsHelperTest.java
@@ -238,6 +238,7 @@
assertThat(conversationActions).isEmpty();
}
+ @Test
public void createLabeledIntentResult_null() {
ActionsSuggestionsModel.ActionSuggestion nativeSuggestion =
new ActionsSuggestionsModel.ActionSuggestion(
diff --git a/core/tests/systemproperties/src/android/os/SystemPropertiesTest.java b/core/tests/systemproperties/src/android/os/SystemPropertiesTest.java
index 9f70538..67783bf 100644
--- a/core/tests/systemproperties/src/android/os/SystemPropertiesTest.java
+++ b/core/tests/systemproperties/src/android/os/SystemPropertiesTest.java
@@ -94,7 +94,7 @@
}
@SmallTest
- private static void testHandle() throws Exception {
+ public void testHandle() throws Exception {
String value;
SystemProperties.Handle handle = SystemProperties.find("doesnotexist_2341431");
assertNull(handle);
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index 34ed5b3..e410882 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -3645,7 +3645,8 @@
* the callback. If <code>null</code>, the {@link Handler} associated with the main
* {@link Looper} will be used.
*/
- public void registerAudioPlaybackCallback(@NonNull AudioPlaybackCallback cb, Handler handler)
+ public void registerAudioPlaybackCallback(@NonNull AudioPlaybackCallback cb,
+ @Nullable Handler handler)
{
if (cb == null) {
throw new IllegalArgumentException("Illegal null AudioPlaybackCallback argument");
@@ -3834,7 +3835,8 @@
* the callback. If <code>null</code>, the {@link Handler} associated with the main
* {@link Looper} will be used.
*/
- public void registerAudioRecordingCallback(@NonNull AudioRecordingCallback cb, Handler handler)
+ public void registerAudioRecordingCallback(@NonNull AudioRecordingCallback cb,
+ @Nullable Handler handler)
{
if (cb == null) {
throw new IllegalArgumentException("Illegal null AudioRecordingCallback argument");
@@ -5172,7 +5174,7 @@
* {@link Looper} will be used.
*/
public void registerAudioDeviceCallback(AudioDeviceCallback callback,
- android.os.Handler handler) {
+ @Nullable Handler handler) {
synchronized (mDeviceCallbacks) {
if (callback != null && !mDeviceCallbacks.containsKey(callback)) {
if (mDeviceCallbacks.size() == 0) {
diff --git a/services/tests/servicestests/src/com/android/server/backup/BackupManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/backup/BackupManagerServiceTest.java
index 9f8ca7f..2326dfd 100644
--- a/services/tests/servicestests/src/com/android/server/backup/BackupManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/backup/BackupManagerServiceTest.java
@@ -56,6 +56,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -513,6 +514,8 @@
verifyNoMoreInteractions(mUserBackupManagerService);
}
+ @Test
+ @Ignore("b/147012496")
public void testGetUserForAncestralSerialNumber() {
BackupManagerServiceTestable.sBackupDisabled = false;
BackupManagerService backupManagerService =
@@ -524,6 +527,7 @@
assertThat(user).isEqualTo(UserHandle.of(1));
}
+ @Test
public void testGetUserForAncestralSerialNumber_whenDisabled() {
BackupManagerServiceTestable.sBackupDisabled = true;
BackupManagerService backupManagerService =
diff --git a/services/tests/servicestests/src/com/android/server/backup/DataChangedJournalTest.java b/services/tests/servicestests/src/com/android/server/backup/DataChangedJournalTest.java
index 4e7fe44..0e918db 100644
--- a/services/tests/servicestests/src/com/android/server/backup/DataChangedJournalTest.java
+++ b/services/tests/servicestests/src/com/android/server/backup/DataChangedJournalTest.java
@@ -136,6 +136,7 @@
assertThat(mJournal.toString()).isEqualTo(mFile.toString());
}
+ @Test
public void listJournals_invalidJournalFile_returnsEmptyList() throws Exception {
when(invalidFile.listFiles()).thenReturn(null);
diff --git a/services/tests/servicestests/src/com/android/server/backup/utils/FileUtilsTest.java b/services/tests/servicestests/src/com/android/server/backup/utils/FileUtilsTest.java
index eaa9c45..d54aa3b 100644
--- a/services/tests/servicestests/src/com/android/server/backup/utils/FileUtilsTest.java
+++ b/services/tests/servicestests/src/com/android/server/backup/utils/FileUtilsTest.java
@@ -27,7 +27,6 @@
import org.junit.AfterClass;
import org.junit.Before;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -41,11 +40,6 @@
private static File sTemporaryDir;
private File mTemporaryFile;
- @BeforeClass
- public static void setUpClass() {
- sTemporaryDir = Files.createTempDir();
- }
-
@AfterClass
public static void tearDownClass() {
if (sTemporaryDir != null) {
@@ -55,17 +49,21 @@
@Before
public void setUp() throws Exception {
+ if (sTemporaryDir != null) {
+ sTemporaryDir.delete();
+ }
+ sTemporaryDir = Files.createTempDir();
mTemporaryFile = new File(sTemporaryDir, "fileutilstest.txt");
}
/** Test that if file does not exist, {@link FileUtils#createNewFile()} creates the file. */
@Test
public void testEnsureFileExists_fileDoesNotAlreadyExist_getsCreated() {
- assertThat(!mTemporaryFile.exists());
+ assertThat(mTemporaryFile.exists()).isFalse();
FileUtils.createNewFile(mTemporaryFile);
- assertThat(mTemporaryFile.exists());
+ assertThat(mTemporaryFile.exists()).isTrue();
}
/** Test that if file does exist, {@link FileUtils#createNewFile()} does not error out. */
@@ -75,6 +73,6 @@
FileUtils.createNewFile(mTemporaryFile);
- assertThat(mTemporaryFile.exists());
+ assertThat(mTemporaryFile.exists()).isTrue();
}
}
diff --git a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java
index 0a1899b..50ed975 100644
--- a/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java
+++ b/services/tests/servicestests/src/com/android/server/hdmi/HdmiCecLocalDeviceAudioSystemTest.java
@@ -534,6 +534,7 @@
assertThat(mNativeWrapper.getOnlyResultMessage()).isEqualTo(expectedMessage);
}
+ @Test
public void handleSystemAudioModeRequest_fromNonTV_tVNotSupport() {
HdmiCecMessage message =
HdmiCecMessageBuilder.buildSystemAudioModeRequest(
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationHistoryManagerTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationHistoryManagerTest.java
index 92c0546..3b6a4bd 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationHistoryManagerTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationHistoryManagerTest.java
@@ -41,6 +41,7 @@
import com.android.server.UiServiceTestCase;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -124,6 +125,8 @@
verify(mDb, times(1)).init();
}
+ @Test
+ @Ignore("b/147012298")
public void testOnUserUnlocked_historyDisabled() {
Settings.Secure.putIntForUser(getContext().getContentResolver(),
Settings.Secure.NOTIFICATION_HISTORY_ENABLED, 0, USER_SYSTEM);
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
index 876e77a..95617b1 100755
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -4502,6 +4502,7 @@
assertEquals(0, mService.countLogSmartSuggestionsVisible);
}
+ @Test
public void testReportSeen_delegated() {
Notification.Builder nb =
new Notification.Builder(mContext, mTestNotificationChannel.getId())
@@ -5767,6 +5768,7 @@
verify(mUsageStats, times(5)).registerImageRemoved(PKG);
}
+ @Test
public void testNotificationBubbles_flagAutoExpandForeground_fails_notForeground()
throws Exception {
// Bubbles are allowed!