Move AlarmManager to apex
Mechanical refactoring to move all except native code to the apex
directory. Accesses across the jar boundary will be cleaned up in
follow-ups.
Also, moved alarm manager code into its own package for better
organization.
Test: Buids, boots. Existing tests:
atest FrameworksMockingServicesTests:AlarmManagerServiceTest
atest CtsAlarmManagerTestCases
Bug: 151976605
Change-Id: Ida46491c1f1dff02dce4c50d3fafd4efbf977766
diff --git a/apex/jobscheduler/framework/Android.bp b/apex/jobscheduler/framework/Android.bp
index ec07426..dab295b 100644
--- a/apex/jobscheduler/framework/Android.bp
+++ b/apex/jobscheduler/framework/Android.bp
@@ -2,10 +2,7 @@
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",
}
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 4009caf..42c56c1ad 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.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;
@@ -126,7 +133,7 @@
* 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;
@@ -915,7 +922,7 @@
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 0000000..d76ce74
--- /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 64cf75d..5609b36 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/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 @@
(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 b008fa9..b74991d 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/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 72e170f..7c01f36 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.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.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;
@@ -1172,7 +1170,7 @@
* @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 df16058..0da0976 100644
--- a/services/core/java/com/android/server/TEST_MAPPING
+++ b/services/core/java/com/android/server/TEST_MAPPING
@@ -1,21 +1,6 @@
{
"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 33f02683..b3db56c 100644
--- a/services/core/jni/Android.bp
+++ b/services/core/jni/Android.bp
@@ -76,7 +76,7 @@
product_variables: {
arc: {
exclude_srcs: [
- "com_android_server_AlarmManagerService.cpp",
+ "com_android_server_alarm_AlarmManagerService.cpp",
],
srcs: [
":arctimersrcs",
@@ -201,6 +201,6 @@
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 a99c0a3..dfe8aa8a 100644
--- a/services/core/jni/com_android_server_AlarmManagerService.cpp
+++ b/services/core/jni/com_android_server_alarm_AlarmManagerService.cpp
@@ -211,7 +211,7 @@
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<AlarmImpl *>(nativeData);
@@ -233,7 +233,7 @@
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;
@@ -336,7 +336,7 @@
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;
@@ -391,7 +391,7 @@
return reinterpret_cast<jlong>(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<AlarmImpl *>(nativeData);
struct itimerspec spec;
@@ -408,13 +408,13 @@
return static_cast<jlong>(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<AlarmImpl *>(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<AlarmImpl *>(nativeData);
struct timespec ts;
@@ -431,7 +431,7 @@
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<AlarmImpl *>(nativeData);
int result = 0;
@@ -452,18 +452,18 @@
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 4d6f87f..8c1c5fb 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);
@@ -86,7 +86,7 @@
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 ea2e724..92ca32f 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/java/com/android/server/SystemServer.java
@@ -308,6 +308,8 @@
"com.android.server.appsearch.AppSearchManagerService";
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";
@@ -1145,7 +1147,7 @@
}
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 ca8e50a..4c99f0b 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_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.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.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 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 @@
.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 @@
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 d248b89..12e953a 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 {