From e7636e47504034c048872f251a0a7cb240017b31 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Sun, 21 Feb 2016 01:04:13 +0900 Subject: [PATCH] Make it easier to test code that uses WakeupMessage. Code that uses WakeupMessage uses the AlarmManager. Testing such code is slow because AlarmManager.MIN_FUTURITY ensures that alarms must wait at least 5 seconds before firing. This change makes WakeupMessage's fields protected so that test code can subclass from it and override schedule() and cancel() with implementations that do not use AlarmManager, for example by making schedule() call sendEmptyMessageDelayed and making cancel() call removeMessages. Change-Id: I51096b182d9eb87cc7bd46c3c91906f18356b354 --- core/java/com/android/internal/util/WakeupMessage.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/core/java/com/android/internal/util/WakeupMessage.java b/core/java/com/android/internal/util/WakeupMessage.java index 451078b1b047..26537451992c 100644 --- a/core/java/com/android/internal/util/WakeupMessage.java +++ b/core/java/com/android/internal/util/WakeupMessage.java @@ -21,7 +21,9 @@ import android.content.Context; import android.os.Handler; import android.os.Message; -/** +import com.android.internal.annotations.VisibleForTesting; + + /** * An AlarmListener that sends the specified message to a Handler and keeps the system awake until * the message is processed. * @@ -36,9 +38,13 @@ import android.os.Message; */ public class WakeupMessage implements AlarmManager.OnAlarmListener { private final AlarmManager mAlarmManager; - private final Handler mHandler; - private final String mCmdName; - private final int mCmd, mArg1, mArg2; + + @VisibleForTesting + protected final Handler mHandler; + @VisibleForTesting + protected final String mCmdName; + @VisibleForTesting + protected final int mCmd, mArg1, mArg2; private boolean mScheduled; public WakeupMessage(Context context, Handler handler, -- 2.11.0