Merge "DO NOT MERGE: Move AlarmManager to apex" into mainline-prod
This commit is contained in:
committed by
Android (Google) Code Review
commit
683f573462
@@ -2,10 +2,7 @@ filegroup {
|
|||||||
name: "framework-jobscheduler-sources",
|
name: "framework-jobscheduler-sources",
|
||||||
srcs: [
|
srcs: [
|
||||||
"java/**/*.java",
|
"java/**/*.java",
|
||||||
"java/android/app/job/IJobCallback.aidl",
|
"java/**/*.aidl",
|
||||||
"java/android/app/job/IJobScheduler.aidl",
|
|
||||||
"java/android/app/job/IJobService.aidl",
|
|
||||||
"java/android/os/IDeviceIdleController.aidl",
|
|
||||||
],
|
],
|
||||||
path: "java",
|
path: "java",
|
||||||
visibility: ["//frameworks/base"],
|
visibility: ["//frameworks/base"],
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
* limitations under the License.
|
* 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;
|
||||||
import static android.app.AlarmManager.ELAPSED_REALTIME_WAKEUP;
|
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.IndentingPrintWriter;
|
||||||
import com.android.internal.util.LocalLog;
|
import com.android.internal.util.LocalLog;
|
||||||
import com.android.internal.util.StatLogger;
|
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.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;
|
||||||
import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener;
|
import com.android.server.usage.AppStandbyInternal.AppIdleStateChangeListener;
|
||||||
|
|
||||||
@@ -127,7 +134,7 @@ import java.util.function.Predicate;
|
|||||||
* Unit test:
|
* Unit test:
|
||||||
atest $ANDROID_BUILD_TOP/frameworks/base/services/tests/servicestests/src/com/android/server/AlarmManagerServiceTest.java
|
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_WAKEUP_MASK = 1 << RTC_WAKEUP;
|
||||||
private static final int RTC_MASK = 1 << RTC;
|
private static final int RTC_MASK = 1 << RTC;
|
||||||
private static final int ELAPSED_REALTIME_WAKEUP_MASK = 1 << ELAPSED_REALTIME_WAKEUP;
|
private static final int ELAPSED_REALTIME_WAKEUP_MASK = 1 << ELAPSED_REALTIME_WAKEUP;
|
||||||
@@ -920,7 +927,7 @@ class AlarmManagerService extends SystemService {
|
|||||||
mInjector = injector;
|
mInjector = injector;
|
||||||
}
|
}
|
||||||
|
|
||||||
AlarmManagerService(Context context) {
|
public AlarmManagerService(Context context) {
|
||||||
this(context, new Injector(context));
|
this(context, new Injector(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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/os/system_properties.proto";
|
||||||
import "frameworks/base/core/proto/android/providers/settings.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/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/bluetooth_manager_service.proto";
|
||||||
import "frameworks/base/core/proto/android/server/fingerprint.proto";
|
import "frameworks/base/core/proto/android/server/fingerprint.proto";
|
||||||
import "frameworks/base/core/proto/android/server/jobscheduler.proto";
|
import "frameworks/base/core/proto/android/server/jobscheduler.proto";
|
||||||
@@ -317,7 +317,7 @@ message IncidentProto {
|
|||||||
(section).args = "activity --proto processes"
|
(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).type = SECTION_DUMPSYS,
|
||||||
(section).args = "alarm --proto"
|
(section).args = "alarm --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/server/appstatetracker.proto";
|
||||||
import "frameworks/base/core/proto/android/privacy.proto";
|
import "frameworks/base/core/proto/android/privacy.proto";
|
||||||
|
|
||||||
package com.android.server;
|
package com.android.server.alarm;
|
||||||
|
|
||||||
option java_multiple_files = true;
|
option java_multiple_files = true;
|
||||||
|
|
||||||
@@ -23,7 +23,6 @@ import android.app.AppOpsManager.PackageOps;
|
|||||||
import android.app.IActivityManager;
|
import android.app.IActivityManager;
|
||||||
import android.app.IUidObserver;
|
import android.app.IUidObserver;
|
||||||
import android.app.usage.UsageStatsManager;
|
import android.app.usage.UsageStatsManager;
|
||||||
import android.app.usage.UsageStatsManagerInternal;
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@@ -53,7 +52,6 @@ import com.android.internal.app.IAppOpsCallback;
|
|||||||
import com.android.internal.app.IAppOpsService;
|
import com.android.internal.app.IAppOpsService;
|
||||||
import com.android.internal.util.ArrayUtils;
|
import com.android.internal.util.ArrayUtils;
|
||||||
import com.android.internal.util.IndentingPrintWriter;
|
import com.android.internal.util.IndentingPrintWriter;
|
||||||
import com.android.internal.util.Preconditions;
|
|
||||||
import com.android.internal.util.StatLogger;
|
import com.android.internal.util.StatLogger;
|
||||||
import com.android.server.AppStateTrackerProto.ExemptedPackage;
|
import com.android.server.AppStateTrackerProto.ExemptedPackage;
|
||||||
import com.android.server.AppStateTrackerProto.RunAnyInBackgroundRestrictedPackages;
|
import com.android.server.AppStateTrackerProto.RunAnyInBackgroundRestrictedPackages;
|
||||||
@@ -1181,7 +1179,7 @@ public class AppStateTracker {
|
|||||||
* @return whether force all apps standby is enabled or not.
|
* @return whether force all apps standby is enabled or not.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
boolean isForceAllAppsStandbyEnabled() {
|
public boolean isForceAllAppsStandbyEnabled() {
|
||||||
synchronized (mLock) {
|
synchronized (mLock) {
|
||||||
return mForceAllAppsStandby;
|
return mForceAllAppsStandby;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +1,5 @@
|
|||||||
{
|
{
|
||||||
"presubmit": [
|
"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"
|
"name": "CtsLocationFineTestCases"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ cc_library_static {
|
|||||||
product_variables: {
|
product_variables: {
|
||||||
arc: {
|
arc: {
|
||||||
exclude_srcs: [
|
exclude_srcs: [
|
||||||
"com_android_server_AlarmManagerService.cpp",
|
"com_android_server_alarm_AlarmManagerService.cpp",
|
||||||
],
|
],
|
||||||
srcs: [
|
srcs: [
|
||||||
":arctimersrcs",
|
":arctimersrcs",
|
||||||
@@ -197,6 +197,6 @@ filegroup {
|
|||||||
filegroup {
|
filegroup {
|
||||||
name: "lib_alarmManagerService_native",
|
name: "lib_alarmManagerService_native",
|
||||||
srcs: [
|
srcs: [
|
||||||
"com_android_server_AlarmManagerService.cpp",
|
"com_android_server_alarm_AlarmManagerService.cpp",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -210,7 +210,7 @@ int AlarmImpl::waitForAlarm()
|
|||||||
return result;
|
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);
|
AlarmImpl *impl = reinterpret_cast<AlarmImpl *>(nativeData);
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
@@ -234,7 +234,7 @@ static jint android_server_AlarmManagerService_setKernelTime(JNIEnv*, jobject, j
|
|||||||
return ret;
|
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;
|
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));
|
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;
|
int epollfd;
|
||||||
TimerFds fds;
|
TimerFds fds;
|
||||||
@@ -392,7 +392,7 @@ static jlong android_server_AlarmManagerService_init(JNIEnv*, jobject)
|
|||||||
return reinterpret_cast<jlong>(ret);
|
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);
|
AlarmImpl *impl = reinterpret_cast<AlarmImpl *>(nativeData);
|
||||||
struct itimerspec spec;
|
struct itimerspec spec;
|
||||||
@@ -409,13 +409,13 @@ static jlong android_server_AlarmManagerService_getNextAlarm(JNIEnv*, jobject, j
|
|||||||
return static_cast<jlong>(millis);
|
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);
|
AlarmImpl *impl = reinterpret_cast<AlarmImpl *>(nativeData);
|
||||||
delete impl;
|
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);
|
AlarmImpl *impl = reinterpret_cast<AlarmImpl *>(nativeData);
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
@@ -432,7 +432,7 @@ static jint android_server_AlarmManagerService_set(JNIEnv*, jobject, jlong nativ
|
|||||||
return result >= 0 ? 0 : errno;
|
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);
|
AlarmImpl *impl = reinterpret_cast<AlarmImpl *>(nativeData);
|
||||||
int result = 0;
|
int result = 0;
|
||||||
@@ -453,18 +453,18 @@ static jint android_server_AlarmManagerService_waitForAlarm(JNIEnv*, jobject, jl
|
|||||||
|
|
||||||
static const JNINativeMethod sMethods[] = {
|
static const JNINativeMethod sMethods[] = {
|
||||||
/* name, signature, funcPtr */
|
/* name, signature, funcPtr */
|
||||||
{"init", "()J", (void*)android_server_AlarmManagerService_init},
|
{"init", "()J", (void*)android_server_alarm_AlarmManagerService_init},
|
||||||
{"close", "(J)V", (void*)android_server_AlarmManagerService_close},
|
{"close", "(J)V", (void*)android_server_alarm_AlarmManagerService_close},
|
||||||
{"set", "(JIJJ)I", (void*)android_server_AlarmManagerService_set},
|
{"set", "(JIJJ)I", (void*)android_server_alarm_AlarmManagerService_set},
|
||||||
{"waitForAlarm", "(J)I", (void*)android_server_AlarmManagerService_waitForAlarm},
|
{"waitForAlarm", "(J)I", (void*)android_server_alarm_AlarmManagerService_waitForAlarm},
|
||||||
{"setKernelTime", "(JJ)I", (void*)android_server_AlarmManagerService_setKernelTime},
|
{"setKernelTime", "(JJ)I", (void*)android_server_alarm_AlarmManagerService_setKernelTime},
|
||||||
{"setKernelTimezone", "(JI)I", (void*)android_server_AlarmManagerService_setKernelTimezone},
|
{"setKernelTimezone", "(JI)I", (void*)android_server_alarm_AlarmManagerService_setKernelTimezone},
|
||||||
{"getNextAlarm", "(JI)J", (void*)android_server_AlarmManagerService_getNextAlarm},
|
{"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));
|
sMethods, NELEM(sMethods));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
#include "BroadcastRadio/Tuner.h"
|
#include "BroadcastRadio/Tuner.h"
|
||||||
|
|
||||||
namespace android {
|
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_BatteryStatsService(JNIEnv* env);
|
||||||
int register_android_server_ConsumerIrService(JNIEnv *env);
|
int register_android_server_ConsumerIrService(JNIEnv *env);
|
||||||
int register_android_server_InputManager(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_SerialService(env);
|
||||||
register_android_server_InputManager(env);
|
register_android_server_InputManager(env);
|
||||||
register_android_server_LightsService(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_UsbDeviceManager(env);
|
||||||
register_android_server_UsbMidiDevice(env);
|
register_android_server_UsbMidiDevice(env);
|
||||||
register_android_server_UsbAlsaJackDetector(env);
|
register_android_server_UsbAlsaJackDetector(env);
|
||||||
|
|||||||
@@ -306,6 +306,8 @@ public final class SystemServer {
|
|||||||
"com.android.server.blob.BlobStoreManagerService";
|
"com.android.server.blob.BlobStoreManagerService";
|
||||||
private static final String ROLLBACK_MANAGER_SERVICE_CLASS =
|
private static final String ROLLBACK_MANAGER_SERVICE_CLASS =
|
||||||
"com.android.server.rollback.RollbackManagerService";
|
"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";
|
private static final String TETHERING_CONNECTOR_CLASS = "android.net.ITetheringConnector";
|
||||||
|
|
||||||
@@ -1143,7 +1145,7 @@ public final class SystemServer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
t.traceBegin("StartAlarmManagerService");
|
t.traceBegin("StartAlarmManagerService");
|
||||||
mSystemServiceManager.startService(new AlarmManagerService(context));
|
mSystemServiceManager.startService(ALARM_MANAGER_SERVICE_CLASS);
|
||||||
t.traceEnd();
|
t.traceEnd();
|
||||||
|
|
||||||
t.traceBegin("StartInputManagerService");
|
t.traceBegin("StartInputManagerService");
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* 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;
|
||||||
import static android.app.AlarmManager.ELAPSED_REALTIME_WAKEUP;
|
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 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.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.doReturn;
|
||||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doThrow;
|
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doThrow;
|
||||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mock;
|
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.spyOn;
|
||||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
|
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
|
||||||
import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
|
import static com.android.dx.mockito.inline.extended.ExtendedMockito.when;
|
||||||
import static com.android.server.AlarmManagerService.ACTIVE_INDEX;
|
import static com.android.server.alarm.AlarmManagerService.ACTIVE_INDEX;
|
||||||
import static com.android.server.AlarmManagerService.AlarmHandler.APP_STANDBY_BUCKET_CHANGED;
|
import static com.android.server.alarm.AlarmManagerService.AlarmHandler.APP_STANDBY_BUCKET_CHANGED;
|
||||||
import static com.android.server.AlarmManagerService.AlarmHandler.CHARGING_STATUS_CHANGED;
|
import static com.android.server.alarm.AlarmManagerService.AlarmHandler.CHARGING_STATUS_CHANGED;
|
||||||
import static com.android.server.AlarmManagerService.AlarmHandler.REMOVE_FOR_CANCELED;
|
import static com.android.server.alarm.AlarmManagerService.AlarmHandler.REMOVE_FOR_CANCELED;
|
||||||
import static com.android.server.AlarmManagerService.Constants.KEY_ALLOW_WHILE_IDLE_LONG_TIME;
|
import static com.android.server.alarm.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.alarm.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.alarm.AlarmManagerService.Constants.KEY_ALLOW_WHILE_IDLE_WHITELIST_DURATION;
|
||||||
import static com.android.server.AlarmManagerService.Constants.KEY_LISTENER_TIMEOUT;
|
import static com.android.server.alarm.AlarmManagerService.Constants.KEY_LISTENER_TIMEOUT;
|
||||||
import static com.android.server.AlarmManagerService.Constants.KEY_MAX_INTERVAL;
|
import static com.android.server.alarm.AlarmManagerService.Constants.KEY_MAX_INTERVAL;
|
||||||
import static com.android.server.AlarmManagerService.Constants.KEY_MIN_FUTURITY;
|
import static com.android.server.alarm.AlarmManagerService.Constants.KEY_MIN_FUTURITY;
|
||||||
import static com.android.server.AlarmManagerService.Constants.KEY_MIN_INTERVAL;
|
import static com.android.server.alarm.AlarmManagerService.Constants.KEY_MIN_INTERVAL;
|
||||||
import static com.android.server.AlarmManagerService.IS_WAKEUP_MASK;
|
import static com.android.server.alarm.AlarmManagerService.IS_WAKEUP_MASK;
|
||||||
import static com.android.server.AlarmManagerService.TIME_CHANGED_MASK;
|
import static com.android.server.alarm.AlarmManagerService.TIME_CHANGED_MASK;
|
||||||
import static com.android.server.AlarmManagerService.WORKING_INDEX;
|
import static com.android.server.alarm.AlarmManagerService.WORKING_INDEX;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
@@ -77,6 +76,7 @@ import android.os.Looper;
|
|||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
|
import android.os.ServiceManager;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.platform.test.annotations.Presubmit;
|
import android.platform.test.annotations.Presubmit;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@@ -87,6 +87,10 @@ import androidx.test.runner.AndroidJUnit4;
|
|||||||
|
|
||||||
import com.android.dx.mockito.inline.extended.MockedVoidMethod;
|
import com.android.dx.mockito.inline.extended.MockedVoidMethod;
|
||||||
import com.android.internal.annotations.GuardedBy;
|
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 com.android.server.usage.AppStandbyInternal;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
@@ -255,7 +259,8 @@ public class AlarmManagerServiceTest {
|
|||||||
.spyStatic(ActivityManager.class)
|
.spyStatic(ActivityManager.class)
|
||||||
.mockStatic(LocalServices.class)
|
.mockStatic(LocalServices.class)
|
||||||
.spyStatic(Looper.class)
|
.spyStatic(Looper.class)
|
||||||
.spyStatic(Settings.Global.class)
|
.mockStatic(Settings.Global.class)
|
||||||
|
.mockStatic(ServiceManager.class)
|
||||||
.spyStatic(UserHandle.class)
|
.spyStatic(UserHandle.class)
|
||||||
.strictness(Strictness.WARN)
|
.strictness(Strictness.WARN)
|
||||||
.startMocking();
|
.startMocking();
|
||||||
@@ -280,7 +285,6 @@ public class AlarmManagerServiceTest {
|
|||||||
mInjector = new Injector(mMockContext);
|
mInjector = new Injector(mMockContext);
|
||||||
mService = new AlarmManagerService(mMockContext, mInjector);
|
mService = new AlarmManagerService(mMockContext, mInjector);
|
||||||
spyOn(mService);
|
spyOn(mService);
|
||||||
doNothing().when(mService).publishBinderService(any(), any());
|
|
||||||
|
|
||||||
mService.onStart();
|
mService.onStart();
|
||||||
spyOn(mService.mHandler);
|
spyOn(mService.mHandler);
|
||||||
@@ -13,26 +13,28 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* 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;
|
||||||
import static android.app.AlarmManager.RTC_WAKEUP;
|
import static android.app.AlarmManager.RTC_WAKEUP;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import android.platform.test.annotations.Presubmit;
|
||||||
import android.util.SparseArray;
|
import android.util.SparseArray;
|
||||||
|
|
||||||
import androidx.test.filters.SmallTest;
|
import androidx.test.filters.SmallTest;
|
||||||
import androidx.test.runner.AndroidJUnit4;
|
import androidx.test.runner.AndroidJUnit4;
|
||||||
|
|
||||||
import com.android.internal.util.ObjectUtils;
|
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.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
@Presubmit
|
||||||
@SmallTest
|
@SmallTest
|
||||||
@RunWith(AndroidJUnit4.class)
|
@RunWith(AndroidJUnit4.class)
|
||||||
public class BackgroundRestrictedAlarmsTest {
|
public class BackgroundRestrictedAlarmsTest {
|
||||||
Reference in New Issue
Block a user