diff options
5 files changed, 83 insertions, 7 deletions
diff --git a/core/java/com/android/internal/pm/pkg/component/ParsedProviderImpl.java b/core/java/com/android/internal/pm/pkg/component/ParsedProviderImpl.java index 987fd4158418..ec5ff4c6946a 100644 --- a/core/java/com/android/internal/pm/pkg/component/ParsedProviderImpl.java +++ b/core/java/com/android/internal/pm/pkg/component/ParsedProviderImpl.java @@ -174,7 +174,7 @@ public class ParsedProviderImpl extends ParsedMainComponentImpl implements Parse // CHECKSTYLE:OFF Generated code // // To regenerate run: - // $ codegen $ANDROID_BUILD_TOP/frameworks/base/services/core/java/com/android/server/pm/pkg/component/ParsedProviderImpl.java + // $ codegen $ANDROID_BUILD_TOP/frameworks/base/core/java/com/android/internal/pm/pkg/component/ParsedProviderImpl.java // // To exclude the generated code from IntelliJ auto-formatting enable (one-time): // Settings > Editor > Code Style > Formatter Control @@ -298,9 +298,9 @@ public class ParsedProviderImpl extends ParsedMainComponentImpl implements Parse } @DataClass.Generated( - time = 1642560323360L, + time = 1723882842941L, codegenVersion = "1.0.23", - sourceFile = "frameworks/base/services/core/java/com/android/server/pm/pkg/component/ParsedProviderImpl.java", + sourceFile = "frameworks/base/core/java/com/android/internal/pm/pkg/component/ParsedProviderImpl.java", inputSignatures = "private @android.annotation.Nullable @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) java.lang.String authority\nprivate boolean syncable\nprivate @android.annotation.Nullable @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) java.lang.String readPermission\nprivate @android.annotation.Nullable @com.android.internal.util.DataClass.ParcelWith(com.android.internal.util.Parcelling.BuiltIn.ForInternedString.class) java.lang.String writePermission\nprivate boolean grantUriPermissions\nprivate boolean forceUriPermissions\nprivate boolean multiProcess\nprivate int initOrder\nprivate @android.annotation.NonNull java.util.List<android.os.PatternMatcher> uriPermissionPatterns\nprivate @android.annotation.NonNull java.util.List<android.content.pm.PathPermission> pathPermissions\npublic static final @android.annotation.NonNull android.os.Parcelable.Creator<com.android.internal.pm.pkg.component.ParsedProviderImpl> CREATOR\npublic com.android.internal.pm.pkg.component.ParsedProviderImpl setReadPermission(java.lang.String)\npublic com.android.internal.pm.pkg.component.ParsedProviderImpl setWritePermission(java.lang.String)\npublic @android.annotation.NonNull com.android.internal.pm.pkg.component.ParsedProviderImpl addUriPermissionPattern(android.os.PatternMatcher)\npublic @android.annotation.NonNull com.android.internal.pm.pkg.component.ParsedProviderImpl addPathPermission(android.content.pm.PathPermission)\npublic java.lang.String toString()\npublic @java.lang.Override int describeContents()\npublic @java.lang.Override void writeToParcel(android.os.Parcel,int)\nclass ParsedProviderImpl extends com.android.internal.pm.pkg.component.ParsedMainComponentImpl implements [com.android.internal.pm.pkg.component.ParsedProvider, android.os.Parcelable]\n@com.android.internal.util.DataClass(genSetters=true, genGetters=true, genParcelable=false, genBuilder=false)") @Deprecated private void __metadata() {} diff --git a/nfc/tests/src/android/nfc/NdefMessageTest.java b/nfc/tests/src/android/nfc/NdefMessageTest.java new file mode 100644 index 000000000000..9ca295da75c3 --- /dev/null +++ b/nfc/tests/src/android/nfc/NdefMessageTest.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.nfc; + +import static com.google.common.truth.Truth.assertThat; + +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +public class NdefMessageTest { + private NdefMessage mNdefMessage; + private NdefRecord mNdefRecord; + + @Before + public void setUp() { + mNdefRecord = NdefRecord.createUri("http://www.example.com"); + mNdefMessage = new NdefMessage(mNdefRecord); + } + + @After + public void tearDown() { + } + + @Test + public void testGetRecords() { + NdefRecord[] records = mNdefMessage.getRecords(); + assertThat(records).isNotNull(); + assertThat(records).hasLength(1); + assertThat(records[0]).isEqualTo(mNdefRecord); + } + + @Test + public void testToByteArray() throws FormatException { + byte[] bytes = mNdefMessage.toByteArray(); + assertThat(bytes).isNotNull(); + assertThat(bytes.length).isGreaterThan(0); + NdefMessage ndefMessage = new NdefMessage(bytes); + assertThat(ndefMessage).isNotNull(); + } +} diff --git a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java index 3a3f041c4189..955437b23de4 100644 --- a/services/core/java/com/android/server/am/ActivityManagerShellCommand.java +++ b/services/core/java/com/android/server/am/ActivityManagerShellCommand.java @@ -1334,6 +1334,12 @@ final class ActivityManagerShellCommand extends ShellCommand { heapFile = "/data/local/tmp/heapdump-" + logNameTimeString + ".prof"; } + String argAfterHeapFile = getNextArg(); + if (argAfterHeapFile != null) { + err.println("Error: Arguments cannot be placed after the heap file"); + return -1; + } + // Writes an error message to stderr on failure ParcelFileDescriptor fd = openFileForSystem(heapFile, "w"); if (fd == null) { diff --git a/services/core/java/com/android/server/vibrator/VibrationSettings.java b/services/core/java/com/android/server/vibrator/VibrationSettings.java index 2fc183d9113f..227b6b410e6b 100644 --- a/services/core/java/com/android/server/vibrator/VibrationSettings.java +++ b/services/core/java/com/android/server/vibrator/VibrationSettings.java @@ -193,7 +193,7 @@ final class VibrationSettings { @GuardedBy("mLock") private boolean mKeyboardVibrationOn; @GuardedBy("mLock") - private int mRingerMode; + private int mRingerMode = AudioManager.RINGER_MODE_NORMAL; @GuardedBy("mLock") private boolean mOnWirelessCharger; @@ -236,7 +236,7 @@ final class VibrationSettings { public void onSystemReady() { PowerManagerInternal pm = LocalServices.getService(PowerManagerInternal.class); AudioManager am = mContext.getSystemService(AudioManager.class); - int ringerMode = am.getRingerModeInternal(); + int ringerMode = (am == null) ? mRingerMode : am.getRingerModeInternal(); synchronized (mLock) { mPowerManagerInternal = pm; @@ -616,10 +616,10 @@ final class VibrationSettings { private void updateRingerMode() { synchronized (mLock) { - // If audio manager was not loaded yet then assume most restrictive mode. + // If audio manager was not loaded yet then assume normal mode. // This will be loaded again as soon as the audio manager is loaded in onSystemReady. mRingerMode = (mAudioManager == null) - ? AudioManager.RINGER_MODE_SILENT + ? AudioManager.RINGER_MODE_NORMAL : mAudioManager.getRingerModeInternal(); } } diff --git a/services/tests/vibrator/src/com/android/server/vibrator/VibrationSettingsTest.java b/services/tests/vibrator/src/com/android/server/vibrator/VibrationSettingsTest.java index 88a94830e98a..21604df87fe7 100644 --- a/services/tests/vibrator/src/com/android/server/vibrator/VibrationSettingsTest.java +++ b/services/tests/vibrator/src/com/android/server/vibrator/VibrationSettingsTest.java @@ -202,6 +202,7 @@ public class VibrationSettingsTest { removeServicesForTest(); LocalServices.addService(PowerManagerInternal.class, mPowerManagerInternalMock); LocalServices.addService(PackageManagerInternal.class, mPackageManagerInternalMock); + when(mContextSpy.getSystemService(eq(Context.AUDIO_SERVICE))).thenReturn(null); VibrationSettings minimalVibrationSettings = new VibrationSettings(mContextSpy, new Handler(mTestLooper.getLooper()), mVibrationConfigMock); @@ -461,6 +462,16 @@ public class VibrationSettingsTest { } } + @Test + public void shouldIgnoreVibration_withoutAudioManager_allowsAllVibrations() { + when(mContextSpy.getSystemService(eq(Context.AUDIO_SERVICE))).thenReturn(null); + createSystemReadyVibrationSettings(); + + for (int usage : ALL_USAGES) { + assertVibrationNotIgnoredForUsage(usage); + } + } + @Test public void shouldIgnoreVibration_vibrateOnDisabled_ignoresUsagesNotAccessibility() { |