diff --git a/apex/jobscheduler/framework/Android.bp b/apex/jobscheduler/framework/Android.bp index 23f5614f018c9..6650e677544b0 100644 --- a/apex/jobscheduler/framework/Android.bp +++ b/apex/jobscheduler/framework/Android.bp @@ -2,10 +2,7 @@ filegroup { name: "framework-jobscheduler-sources", srcs: [ "java/**/*.java", - "java/android/app/job/IJobCallback.aidl", - "java/android/app/job/IJobScheduler.aidl", - "java/android/app/job/IJobService.aidl", - "java/android/os/IDeviceIdleController.aidl", + "java/**/*.aidl", ], path: "java", visibility: ["//frameworks/base"], diff --git a/core/java/android/app/AlarmManager.aidl b/apex/jobscheduler/framework/java/android/app/AlarmManager.aidl similarity index 100% rename from core/java/android/app/AlarmManager.aidl rename to apex/jobscheduler/framework/java/android/app/AlarmManager.aidl diff --git a/core/java/android/app/AlarmManager.java b/apex/jobscheduler/framework/java/android/app/AlarmManager.java similarity index 100% rename from core/java/android/app/AlarmManager.java rename to apex/jobscheduler/framework/java/android/app/AlarmManager.java diff --git a/core/java/android/app/IAlarmCompleteListener.aidl b/apex/jobscheduler/framework/java/android/app/IAlarmCompleteListener.aidl similarity index 100% rename from core/java/android/app/IAlarmCompleteListener.aidl rename to apex/jobscheduler/framework/java/android/app/IAlarmCompleteListener.aidl diff --git a/core/java/android/app/IAlarmListener.aidl b/apex/jobscheduler/framework/java/android/app/IAlarmListener.aidl similarity index 100% rename from core/java/android/app/IAlarmListener.aidl rename to apex/jobscheduler/framework/java/android/app/IAlarmListener.aidl diff --git a/core/java/android/app/IAlarmManager.aidl b/apex/jobscheduler/framework/java/android/app/IAlarmManager.aidl similarity index 100% rename from core/java/android/app/IAlarmManager.aidl rename to apex/jobscheduler/framework/java/android/app/IAlarmManager.aidl diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java similarity index 99% rename from services/core/java/com/android/server/AlarmManagerService.java rename to apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java index 4fab067d1d3ba..5f18747ac9413 100644 --- a/services/core/java/com/android/server/AlarmManagerService.java +++ b/apex/jobscheduler/service/java/com/android/server/alarm/AlarmManagerService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server; +package com.android.server.alarm; import static android.app.AlarmManager.ELAPSED_REALTIME; import static android.app.AlarmManager.ELAPSED_REALTIME_WAKEUP; @@ -97,7 +97,14 @@ import com.android.internal.util.FrameworkStatsLog; import com.android.internal.util.IndentingPrintWriter; import com.android.internal.util.LocalLog; import com.android.internal.util.StatLogger; +import com.android.server.AlarmManagerInternal; +import com.android.server.AppStateTracker; import com.android.server.AppStateTracker.Listener; +import com.android.server.DeviceIdleInternal; +import com.android.server.EventLogTags; +import com.android.server.LocalServices; +import com.android.server.SystemService; +import com.android.server.SystemServiceManager; import com.android.server.usage.AppStandbyInternal; import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener; @@ -127,7 +134,7 @@ import java.util.function.Predicate; * Unit test: atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/servicestests/src/com/android/server/AlarmManagerServiceTest.java */ -class AlarmManagerService extends SystemService { +public class AlarmManagerService extends SystemService { private static final int RTC_WAKEUP_MASK = 1 << RTC_WAKEUP; private static final int RTC_MASK = 1 << RTC; private static final int ELAPSED_REALTIME_WAKEUP_MASK = 1 << ELAPSED_REALTIME_WAKEUP; @@ -920,7 +927,7 @@ class AlarmManagerService extends SystemService { mInjector = injector; } - AlarmManagerService(Context context) { + public AlarmManagerService(Context context) { this(context, new Injector(context)); } diff --git a/apex/jobscheduler/service/java/com/android/server/alarm/TEST_MAPPING b/apex/jobscheduler/service/java/com/android/server/alarm/TEST_MAPPING new file mode 100644 index 0000000000000..d76ce7449e433 --- /dev/null +++ b/apex/jobscheduler/service/java/com/android/server/alarm/TEST_MAPPING @@ -0,0 +1,24 @@ +{ + "presubmit": [ + { + "name": "FrameworksMockingServicesTests", + "options": [ + { + "include-filter": "com.android.server.alarm" + }, + { + "include-annotation": "android.platform.test.annotations.Presubmit" + }, + { + "exclude-annotation": "androidx.test.filters.FlakyTest" + } + ] + } + ], + + "postsubmit": [ + { + "name": "CtsAlarmManagerTestCases" + } + ] +} diff --git a/core/proto/android/os/incident.proto b/core/proto/android/os/incident.proto index e97b1a8770ed3..7c1e939a9178a 100644 --- a/core/proto/android/os/incident.proto +++ b/core/proto/android/os/incident.proto @@ -34,7 +34,7 @@ import "frameworks/base/core/proto/android/os/statsdata.proto"; import "frameworks/base/core/proto/android/os/system_properties.proto"; import "frameworks/base/core/proto/android/providers/settings.proto"; import "frameworks/base/core/proto/android/server/activitymanagerservice.proto"; -import "frameworks/base/core/proto/android/server/alarmmanagerservice.proto"; +import "frameworks/base/core/proto/android/server/alarm/alarmmanagerservice.proto"; import "frameworks/base/core/proto/android/server/bluetooth_manager_service.proto"; import "frameworks/base/core/proto/android/server/fingerprint.proto"; import "frameworks/base/core/proto/android/server/jobscheduler.proto"; @@ -317,7 +317,7 @@ message IncidentProto { (section).args = "activity --proto processes" ]; - optional com.android.server.AlarmManagerServiceDumpProto alarm = 3016 [ + optional com.android.server.alarm.AlarmManagerServiceDumpProto alarm = 3016 [ (section).type = SECTION_DUMPSYS, (section).args = "alarm --proto" ]; diff --git a/core/proto/android/server/alarmmanagerservice.proto b/core/proto/android/server/alarm/alarmmanagerservice.proto similarity index 99% rename from core/proto/android/server/alarmmanagerservice.proto rename to core/proto/android/server/alarm/alarmmanagerservice.proto index b008fa9607f20..b74991d525af7 100644 --- a/core/proto/android/server/alarmmanagerservice.proto +++ b/core/proto/android/server/alarm/alarmmanagerservice.proto @@ -23,7 +23,7 @@ import "frameworks/base/core/proto/android/os/worksource.proto"; import "frameworks/base/core/proto/android/server/appstatetracker.proto"; import "frameworks/base/core/proto/android/privacy.proto"; -package com.android.server; +package com.android.server.alarm; option java_multiple_files = true; diff --git a/services/core/java/com/android/server/AppStateTracker.java b/services/core/java/com/android/server/AppStateTracker.java index 74f79e0d40f52..df2aedb482c01 100644 --- a/services/core/java/com/android/server/AppStateTracker.java +++ b/services/core/java/com/android/server/AppStateTracker.java @@ -23,7 +23,6 @@ import android.app.AppOpsManager.PackageOps; import android.app.IActivityManager; import android.app.IUidObserver; import android.app.usage.UsageStatsManager; -import android.app.usage.UsageStatsManagerInternal; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; @@ -53,7 +52,6 @@ import com.android.internal.app.IAppOpsCallback; import com.android.internal.app.IAppOpsService; import com.android.internal.util.ArrayUtils; import com.android.internal.util.IndentingPrintWriter; -import com.android.internal.util.Preconditions; import com.android.internal.util.StatLogger; import com.android.server.AppStateTrackerProto.ExemptedPackage; import com.android.server.AppStateTrackerProto.RunAnyInBackgroundRestrictedPackages; @@ -1181,7 +1179,7 @@ public class AppStateTracker { * @return whether force all apps standby is enabled or not. * */ - boolean isForceAllAppsStandbyEnabled() { + public boolean isForceAllAppsStandbyEnabled() { synchronized (mLock) { return mForceAllAppsStandby; } diff --git a/services/core/java/com/android/server/TEST_MAPPING b/services/core/java/com/android/server/TEST_MAPPING index 3ab3fd504ddc3..ebeec39d6ae6d 100644 --- a/services/core/java/com/android/server/TEST_MAPPING +++ b/services/core/java/com/android/server/TEST_MAPPING @@ -1,20 +1,5 @@ { "presubmit": [ - { - "name": "FrameworksMockingServicesTests", - "file_patterns": ["AlarmManagerService\\.java"], - "options": [ - { - "include-filter": "com.android.server." - }, - { - "include-annotation": "android.platform.test.annotations.Presubmit" - }, - { - "exclude-annotation": "androidx.test.filters.FlakyTest" - } - ] - }, { "name": "CtsLocationFineTestCases" }, diff --git a/services/core/jni/Android.bp b/services/core/jni/Android.bp index 925ad0f57f191..7cc04e8b6faaa 100644 --- a/services/core/jni/Android.bp +++ b/services/core/jni/Android.bp @@ -76,7 +76,7 @@ cc_library_static { product_variables: { arc: { exclude_srcs: [ - "com_android_server_AlarmManagerService.cpp", + "com_android_server_alarm_AlarmManagerService.cpp", ], srcs: [ ":arctimersrcs", @@ -197,6 +197,6 @@ filegroup { filegroup { name: "lib_alarmManagerService_native", srcs: [ - "com_android_server_AlarmManagerService.cpp", + "com_android_server_alarm_AlarmManagerService.cpp", ], } diff --git a/services/core/jni/com_android_server_AlarmManagerService.cpp b/services/core/jni/com_android_server_alarm_AlarmManagerService.cpp similarity index 88% rename from services/core/jni/com_android_server_AlarmManagerService.cpp rename to services/core/jni/com_android_server_alarm_AlarmManagerService.cpp index e79612fbf3d30..ece0177d03c76 100644 --- a/services/core/jni/com_android_server_AlarmManagerService.cpp +++ b/services/core/jni/com_android_server_alarm_AlarmManagerService.cpp @@ -210,7 +210,7 @@ int AlarmImpl::waitForAlarm() return result; } -static jint android_server_AlarmManagerService_setKernelTime(JNIEnv*, jobject, jlong nativeData, jlong millis) +static jint android_server_alarm_AlarmManagerService_setKernelTime(JNIEnv*, jobject, jlong nativeData, jlong millis) { AlarmImpl *impl = reinterpret_cast(nativeData); struct timeval tv; @@ -234,7 +234,7 @@ static jint android_server_AlarmManagerService_setKernelTime(JNIEnv*, jobject, j return ret; } -static jint android_server_AlarmManagerService_setKernelTimezone(JNIEnv*, jobject, jlong, jint minswest) +static jint android_server_alarm_AlarmManagerService_setKernelTimezone(JNIEnv*, jobject, jlong, jint minswest) { struct timezone tz; @@ -337,7 +337,7 @@ static void log_timerfd_create_error(clockid_t id) ALOGE("timerfd_create(%u) failed: %s", id, strerror(errno)); } -static jlong android_server_AlarmManagerService_init(JNIEnv*, jobject) +static jlong android_server_alarm_AlarmManagerService_init(JNIEnv*, jobject) { int epollfd; TimerFds fds; @@ -392,7 +392,7 @@ static jlong android_server_AlarmManagerService_init(JNIEnv*, jobject) return reinterpret_cast(ret); } -static jlong android_server_AlarmManagerService_getNextAlarm(JNIEnv*, jobject, jlong nativeData, jint type) +static jlong android_server_alarm_AlarmManagerService_getNextAlarm(JNIEnv*, jobject, jlong nativeData, jint type) { AlarmImpl *impl = reinterpret_cast(nativeData); struct itimerspec spec; @@ -409,13 +409,13 @@ static jlong android_server_AlarmManagerService_getNextAlarm(JNIEnv*, jobject, j return static_cast(millis); } -static void android_server_AlarmManagerService_close(JNIEnv*, jobject, jlong nativeData) +static void android_server_alarm_AlarmManagerService_close(JNIEnv*, jobject, jlong nativeData) { AlarmImpl *impl = reinterpret_cast(nativeData); delete impl; } -static jint android_server_AlarmManagerService_set(JNIEnv*, jobject, jlong nativeData, jint type, jlong seconds, jlong nanoseconds) +static jint android_server_alarm_AlarmManagerService_set(JNIEnv*, jobject, jlong nativeData, jint type, jlong seconds, jlong nanoseconds) { AlarmImpl *impl = reinterpret_cast(nativeData); struct timespec ts; @@ -432,7 +432,7 @@ static jint android_server_AlarmManagerService_set(JNIEnv*, jobject, jlong nativ return result >= 0 ? 0 : errno; } -static jint android_server_AlarmManagerService_waitForAlarm(JNIEnv*, jobject, jlong nativeData) +static jint android_server_alarm_AlarmManagerService_waitForAlarm(JNIEnv*, jobject, jlong nativeData) { AlarmImpl *impl = reinterpret_cast(nativeData); int result = 0; @@ -453,18 +453,18 @@ static jint android_server_AlarmManagerService_waitForAlarm(JNIEnv*, jobject, jl static const JNINativeMethod sMethods[] = { /* name, signature, funcPtr */ - {"init", "()J", (void*)android_server_AlarmManagerService_init}, - {"close", "(J)V", (void*)android_server_AlarmManagerService_close}, - {"set", "(JIJJ)I", (void*)android_server_AlarmManagerService_set}, - {"waitForAlarm", "(J)I", (void*)android_server_AlarmManagerService_waitForAlarm}, - {"setKernelTime", "(JJ)I", (void*)android_server_AlarmManagerService_setKernelTime}, - {"setKernelTimezone", "(JI)I", (void*)android_server_AlarmManagerService_setKernelTimezone}, - {"getNextAlarm", "(JI)J", (void*)android_server_AlarmManagerService_getNextAlarm}, + {"init", "()J", (void*)android_server_alarm_AlarmManagerService_init}, + {"close", "(J)V", (void*)android_server_alarm_AlarmManagerService_close}, + {"set", "(JIJJ)I", (void*)android_server_alarm_AlarmManagerService_set}, + {"waitForAlarm", "(J)I", (void*)android_server_alarm_AlarmManagerService_waitForAlarm}, + {"setKernelTime", "(JJ)I", (void*)android_server_alarm_AlarmManagerService_setKernelTime}, + {"setKernelTimezone", "(JI)I", (void*)android_server_alarm_AlarmManagerService_setKernelTimezone}, + {"getNextAlarm", "(JI)J", (void*)android_server_alarm_AlarmManagerService_getNextAlarm}, }; -int register_android_server_AlarmManagerService(JNIEnv* env) +int register_android_server_alarm_AlarmManagerService(JNIEnv* env) { - return jniRegisterNativeMethods(env, "com/android/server/AlarmManagerService", + return jniRegisterNativeMethods(env, "com/android/server/alarm/AlarmManagerService", sMethods, NELEM(sMethods)); } diff --git a/services/core/jni/onload.cpp b/services/core/jni/onload.cpp index e5d2a83479e0c..df982e4d2238e 100644 --- a/services/core/jni/onload.cpp +++ b/services/core/jni/onload.cpp @@ -24,7 +24,7 @@ #include "BroadcastRadio/Tuner.h" namespace android { -int register_android_server_AlarmManagerService(JNIEnv* env); +int register_android_server_alarm_AlarmManagerService(JNIEnv* env); int register_android_server_BatteryStatsService(JNIEnv* env); int register_android_server_ConsumerIrService(JNIEnv *env); int register_android_server_InputManager(JNIEnv* env); @@ -85,7 +85,7 @@ extern "C" jint JNI_OnLoad(JavaVM* vm, void* /* reserved */) register_android_server_SerialService(env); register_android_server_InputManager(env); register_android_server_LightsService(env); - register_android_server_AlarmManagerService(env); + register_android_server_alarm_AlarmManagerService(env); register_android_server_UsbDeviceManager(env); register_android_server_UsbMidiDevice(env); register_android_server_UsbAlsaJackDetector(env); diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 2a200fb0ae2c2..6225e62c82674 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -306,6 +306,8 @@ public final class SystemServer { "com.android.server.blob.BlobStoreManagerService"; private static final String ROLLBACK_MANAGER_SERVICE_CLASS = "com.android.server.rollback.RollbackManagerService"; + private static final String ALARM_MANAGER_SERVICE_CLASS = + "com.android.server.alarm.AlarmManagerService"; private static final String TETHERING_CONNECTOR_CLASS = "android.net.ITetheringConnector"; @@ -1143,7 +1145,7 @@ public final class SystemServer { } t.traceBegin("StartAlarmManagerService"); - mSystemServiceManager.startService(new AlarmManagerService(context)); + mSystemServiceManager.startService(ALARM_MANAGER_SERVICE_CLASS); t.traceEnd(); t.traceBegin("StartInputManagerService"); diff --git a/services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/alarm/AlarmManagerServiceTest.java similarity index 96% rename from services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java rename to services/tests/mockingservicestests/src/com/android/server/alarm/AlarmManagerServiceTest.java index ca8e50aa19c99..4c99f0b29aca8 100644 --- a/services/tests/mockingservicestests/src/com/android/server/AlarmManagerServiceTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/alarm/AlarmManagerServiceTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.server; +package com.android.server.alarm; import static android.app.AlarmManager.ELAPSED_REALTIME; import static android.app.AlarmManager.ELAPSED_REALTIME_WAKEUP; @@ -26,7 +26,6 @@ import static android.app.usage.UsageStatsManager.STANDBY_BUCKET_RESTRICTED; import static android.app.usage.UsageStatsManager.STANDBY_BUCKET_WORKING_SET; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doCallRealMethod; -import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doThrow; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock; @@ -34,20 +33,20 @@ import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSess import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify; import static com.android.dx.mockito.inline.extended.ExtendedMockito.when; -import static com.android.server.AlarmManagerService.ACTIVE_INDEX; -import static com.android.server.AlarmManagerService.AlarmHandler.APP_STANDBY_BUCKET_CHANGED; -import static com.android.server.AlarmManagerService.AlarmHandler.CHARGING_STATUS_CHANGED; -import static com.android.server.AlarmManagerService.AlarmHandler.REMOVE_FOR_CANCELED; -import static com.android.server.AlarmManagerService.Constants.KEY_ALLOW_WHILE_IDLE_LONG_TIME; -import static com.android.server.AlarmManagerService.Constants.KEY_ALLOW_WHILE_IDLE_SHORT_TIME; -import static com.android.server.AlarmManagerService.Constants.KEY_ALLOW_WHILE_IDLE_WHITELIST_DURATION; -import static com.android.server.AlarmManagerService.Constants.KEY_LISTENER_TIMEOUT; -import static com.android.server.AlarmManagerService.Constants.KEY_MAX_INTERVAL; -import static com.android.server.AlarmManagerService.Constants.KEY_MIN_FUTURITY; -import static com.android.server.AlarmManagerService.Constants.KEY_MIN_INTERVAL; -import static com.android.server.AlarmManagerService.IS_WAKEUP_MASK; -import static com.android.server.AlarmManagerService.TIME_CHANGED_MASK; -import static com.android.server.AlarmManagerService.WORKING_INDEX; +import static com.android.server.alarm.AlarmManagerService.ACTIVE_INDEX; +import static com.android.server.alarm.AlarmManagerService.AlarmHandler.APP_STANDBY_BUCKET_CHANGED; +import static com.android.server.alarm.AlarmManagerService.AlarmHandler.CHARGING_STATUS_CHANGED; +import static com.android.server.alarm.AlarmManagerService.AlarmHandler.REMOVE_FOR_CANCELED; +import static com.android.server.alarm.AlarmManagerService.Constants.KEY_ALLOW_WHILE_IDLE_LONG_TIME; +import static com.android.server.alarm.AlarmManagerService.Constants.KEY_ALLOW_WHILE_IDLE_SHORT_TIME; +import static com.android.server.alarm.AlarmManagerService.Constants.KEY_ALLOW_WHILE_IDLE_WHITELIST_DURATION; +import static com.android.server.alarm.AlarmManagerService.Constants.KEY_LISTENER_TIMEOUT; +import static com.android.server.alarm.AlarmManagerService.Constants.KEY_MAX_INTERVAL; +import static com.android.server.alarm.AlarmManagerService.Constants.KEY_MIN_FUTURITY; +import static com.android.server.alarm.AlarmManagerService.Constants.KEY_MIN_INTERVAL; +import static com.android.server.alarm.AlarmManagerService.IS_WAKEUP_MASK; +import static com.android.server.alarm.AlarmManagerService.TIME_CHANGED_MASK; +import static com.android.server.alarm.AlarmManagerService.WORKING_INDEX; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -77,6 +76,7 @@ import android.os.Looper; import android.os.Message; import android.os.PowerManager; import android.os.RemoteException; +import android.os.ServiceManager; import android.os.UserHandle; import android.platform.test.annotations.Presubmit; import android.provider.Settings; @@ -87,6 +87,10 @@ import androidx.test.runner.AndroidJUnit4; import com.android.dx.mockito.inline.extended.MockedVoidMethod; import com.android.internal.annotations.GuardedBy; +import com.android.server.AlarmManagerInternal; +import com.android.server.AppStateTracker; +import com.android.server.LocalServices; +import com.android.server.SystemService; import com.android.server.usage.AppStandbyInternal; import org.junit.After; @@ -255,7 +259,8 @@ public class AlarmManagerServiceTest { .spyStatic(ActivityManager.class) .mockStatic(LocalServices.class) .spyStatic(Looper.class) - .spyStatic(Settings.Global.class) + .mockStatic(Settings.Global.class) + .mockStatic(ServiceManager.class) .spyStatic(UserHandle.class) .strictness(Strictness.WARN) .startMocking(); @@ -280,7 +285,6 @@ public class AlarmManagerServiceTest { mInjector = new Injector(mMockContext); mService = new AlarmManagerService(mMockContext, mInjector); spyOn(mService); - doNothing().when(mService).publishBinderService(any(), any()); mService.onStart(); spyOn(mService.mHandler); diff --git a/services/tests/servicestests/src/com/android/server/BackgroundRestrictedAlarmsTest.java b/services/tests/mockingservicestests/src/com/android/server/alarm/BackgroundRestrictedAlarmsTest.java similarity index 97% rename from services/tests/servicestests/src/com/android/server/BackgroundRestrictedAlarmsTest.java rename to services/tests/mockingservicestests/src/com/android/server/alarm/BackgroundRestrictedAlarmsTest.java index d248b8902e352..12e953a4d4e87 100644 --- a/services/tests/servicestests/src/com/android/server/BackgroundRestrictedAlarmsTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/alarm/BackgroundRestrictedAlarmsTest.java @@ -13,26 +13,28 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.server; +package com.android.server.alarm; import static android.app.AlarmManager.RTC; import static android.app.AlarmManager.RTC_WAKEUP; import static org.junit.Assert.assertEquals; +import android.platform.test.annotations.Presubmit; import android.util.SparseArray; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; import com.android.internal.util.ObjectUtils; -import com.android.server.AlarmManagerService.Alarm; +import com.android.server.alarm.AlarmManagerService.Alarm; import org.junit.Test; import org.junit.runner.RunWith; import java.util.ArrayList; +@Presubmit @SmallTest @RunWith(AndroidJUnit4.class) public class BackgroundRestrictedAlarmsTest {