summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sarp Misoglu <sarpm@google.com> 2025-01-08 19:15:19 +0000
committer Sarp Misoglu <sarpm@google.com> 2025-01-09 22:02:33 +0000
commit3682f501fb72835ec6a580377c2f610570573bd4 (patch)
treea6a83ac352f7ae2c5801e1fa3772bb8409af344e
parent8a7102c166fe464256b4a1daa9684ca8b1212931 (diff)
Move BackupWakeLock to its own file
There's no reason for it to be under UserBackupManagerService and bloat it up. Test: n/a Flag: EXEMPT no-op refactor Change-Id: I595fe26e97e804e59033a5dc95e8fa8e16de895f
-rw-r--r--services/backup/java/com/android/server/backup/BackupWakeLock.java95
-rw-r--r--services/backup/java/com/android/server/backup/UserBackupManagerService.java95
-rw-r--r--services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java2
-rw-r--r--services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java2
-rw-r--r--services/backup/java/com/android/server/backup/internal/BackupHandler.java8
-rw-r--r--services/backup/java/com/android/server/backup/internal/PerformClearTask.java2
-rw-r--r--services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java7
-rw-r--r--services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java5
-rw-r--r--services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java2
-rw-r--r--services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java26
-rw-r--r--services/robotests/backup/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java3
-rw-r--r--services/robotests/backup/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java13
-rw-r--r--services/tests/mockingservicestests/src/com/android/server/backup/fullbackup/PerformFullTransportBackupTaskTest.java5
13 files changed, 137 insertions, 128 deletions
diff --git a/services/backup/java/com/android/server/backup/BackupWakeLock.java b/services/backup/java/com/android/server/backup/BackupWakeLock.java
new file mode 100644
index 000000000000..d839e7a1583b
--- /dev/null
+++ b/services/backup/java/com/android/server/backup/BackupWakeLock.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (C) 2025 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 com.android.server.backup;
+
+import static com.android.server.backup.BackupManagerService.TAG;
+
+import android.annotation.Nullable;
+import android.os.PowerManager;
+import android.os.WorkSource;
+import android.util.Slog;
+
+/**
+ * Wrapper over {@link PowerManager.WakeLock} to prevent double-free exceptions on release()
+ * after quit().
+ *
+ * <p>There should be a single instance of this class per {@link UserBackupManagerService}.
+ */
+public class BackupWakeLock {
+ private final PowerManager.WakeLock mPowerManagerWakeLock;
+ private boolean mHasQuit = false;
+ private final String mUserIdMessage;
+ private final BackupManagerConstants mBackupManagerConstants;
+
+ public BackupWakeLock(PowerManager.WakeLock powerManagerWakeLock, int userId,
+ BackupManagerConstants backupManagerConstants) {
+ mPowerManagerWakeLock = powerManagerWakeLock;
+ mUserIdMessage = "[UserID:" + userId + "] ";
+ mBackupManagerConstants = backupManagerConstants;
+ }
+
+ /** Acquires the {@link PowerManager.WakeLock} if hasn't been quit. */
+ public synchronized void acquire() {
+ if (mHasQuit) {
+ Slog.d(TAG, mUserIdMessage + "Ignore wakelock acquire after quit: "
+ + mPowerManagerWakeLock.getTag());
+ return;
+ }
+ // Set a timeout for the wakelock. Otherwise if we fail internally and never call
+ // release(), the device might stay awake and drain battery indefinitely.
+ mPowerManagerWakeLock.acquire(mBackupManagerConstants.getWakelockTimeoutMillis());
+ Slog.d(TAG, mUserIdMessage + "Acquired wakelock:" + mPowerManagerWakeLock.getTag());
+ }
+
+ /** Releases the {@link PowerManager.WakeLock} if hasn't been quit. */
+ public synchronized void release() {
+ if (mHasQuit) {
+ Slog.d(TAG, mUserIdMessage + "Ignore wakelock release after quit: "
+ + mPowerManagerWakeLock.getTag());
+ return;
+ }
+
+ if (!mPowerManagerWakeLock.isHeld()) {
+ Slog.w(TAG, mUserIdMessage + "Wakelock not held: " + mPowerManagerWakeLock.getTag());
+ return;
+ }
+
+ mPowerManagerWakeLock.release();
+ Slog.d(TAG, mUserIdMessage + "Released wakelock:" + mPowerManagerWakeLock.getTag());
+ }
+
+ /**
+ * Returns true if the {@link PowerManager.WakeLock} has been acquired but not yet released.
+ */
+ public synchronized boolean isHeld() {
+ return mPowerManagerWakeLock.isHeld();
+ }
+
+ /** Release the {@link PowerManager.WakeLock} till it isn't held. */
+ public synchronized void quit() {
+ while (mPowerManagerWakeLock.isHeld()) {
+ Slog.d(TAG, mUserIdMessage + "Releasing wakelock: " + mPowerManagerWakeLock.getTag());
+ mPowerManagerWakeLock.release();
+ }
+ mHasQuit = true;
+ }
+
+ /** Calls {@link PowerManager.WakeLock#setWorkSource} on the underlying wake lock. */
+ public void setWorkSource(@Nullable WorkSource workSource) {
+ mPowerManagerWakeLock.setWorkSource(workSource);
+ }
+}
diff --git a/services/backup/java/com/android/server/backup/UserBackupManagerService.java b/services/backup/java/com/android/server/backup/UserBackupManagerService.java
index ef1d09381237..5af2346650ed 100644
--- a/services/backup/java/com/android/server/backup/UserBackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/UserBackupManagerService.java
@@ -86,7 +86,6 @@ import android.os.RemoteException;
import android.os.SELinux;
import android.os.SystemClock;
import android.os.UserHandle;
-import android.os.WorkSource;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.ArraySet;
@@ -172,88 +171,6 @@ import java.util.concurrent.atomic.AtomicInteger;
/** System service that performs backup/restore operations. */
public class UserBackupManagerService {
- /**
- * Wrapper over {@link PowerManager.WakeLock} to prevent double-free exceptions on release()
- * after quit().
- */
- public static class BackupWakeLock {
- private final PowerManager.WakeLock mPowerManagerWakeLock;
- private boolean mHasQuit = false;
- private final int mUserId;
- private final BackupManagerConstants mBackupManagerConstants;
-
- public BackupWakeLock(PowerManager.WakeLock powerManagerWakeLock, int userId,
- BackupManagerConstants backupManagerConstants) {
- mPowerManagerWakeLock = powerManagerWakeLock;
- mUserId = userId;
- mBackupManagerConstants = backupManagerConstants;
- }
-
- /** Acquires the {@link PowerManager.WakeLock} if hasn't been quit. */
- public synchronized void acquire() {
- if (mHasQuit) {
- Slog.d(
- TAG,
- addUserIdToLogMessage(
- mUserId,
- "Ignore wakelock acquire after quit: "
- + mPowerManagerWakeLock.getTag()));
- return;
- }
- // Set a timeout for the wakelock. Otherwise if we fail internally and never call
- // release(), the device might stay awake and drain battery indefinitely.
- mPowerManagerWakeLock.acquire(mBackupManagerConstants.getWakelockTimeoutMillis());
- Slog.d(
- TAG,
- addUserIdToLogMessage(
- mUserId, "Acquired wakelock:" + mPowerManagerWakeLock.getTag()));
- }
-
- /** Releases the {@link PowerManager.WakeLock} if hasn't been quit. */
- public synchronized void release() {
- if (mHasQuit) {
- Slog.d(
- TAG,
- addUserIdToLogMessage(
- mUserId,
- "Ignore wakelock release after quit: "
- + mPowerManagerWakeLock.getTag()));
- return;
- }
-
- if (!mPowerManagerWakeLock.isHeld()) {
- Slog.w(TAG, addUserIdToLogMessage(mUserId,
- "Wakelock not held: " + mPowerManagerWakeLock.getTag()));
- return;
- }
-
- mPowerManagerWakeLock.release();
- Slog.d(
- TAG,
- addUserIdToLogMessage(
- mUserId, "Released wakelock:" + mPowerManagerWakeLock.getTag()));
- }
-
- /**
- * Returns true if the {@link PowerManager.WakeLock} has been acquired but not yet released.
- */
- public synchronized boolean isHeld() {
- return mPowerManagerWakeLock.isHeld();
- }
-
- /** Release the {@link PowerManager.WakeLock} till it isn't held. */
- public synchronized void quit() {
- while (mPowerManagerWakeLock.isHeld()) {
- Slog.d(
- TAG,
- addUserIdToLogMessage(
- mUserId, "Releasing wakelock: " + mPowerManagerWakeLock.getTag()));
- mPowerManagerWakeLock.release();
- }
- mHasQuit = true;
- }
- }
-
// Persistently track the need to do a full init.
private static final String INIT_SENTINEL_FILE_NAME = "_need_init_";
@@ -756,20 +673,10 @@ public class UserBackupManagerService {
mSetupComplete = setupComplete;
}
- public BackupWakeLock getWakelock() {
+ public BackupWakeLock getWakeLock() {
return mWakelock;
}
- /**
- * Sets the {@link WorkSource} of the {@link PowerManager.WakeLock} returned by {@link
- * #getWakelock()}.
- */
- @VisibleForTesting
- public void setWorkSource(@Nullable WorkSource workSource) {
- // TODO: This is for testing, unfortunately WakeLock is final and WorkSource is not exposed
- mWakelock.mPowerManagerWakeLock.setWorkSource(workSource);
- }
-
public Handler getBackupHandler() {
return mBackupHandler;
}
diff --git a/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java b/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java
index 9d680c0cf1fa..0d4364e14e03 100644
--- a/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java
+++ b/services/backup/java/com/android/server/backup/fullbackup/PerformAdbBackupTask.java
@@ -468,7 +468,7 @@ public class PerformAdbBackupTask extends FullBackupTask implements BackupRestor
sendEndBackup();
obbConnection.tearDown();
Slog.d(TAG, "Full backup pass complete.");
- mUserBackupManagerService.getWakelock().release();
+ mUserBackupManagerService.getWakeLock().release();
}
}
diff --git a/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java b/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java
index 88abc439a566..bd34f33226a1 100644
--- a/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java
+++ b/services/backup/java/com/android/server/backup/fullbackup/PerformFullTransportBackupTask.java
@@ -688,7 +688,7 @@ public class PerformFullTransportBackupTask extends FullBackupTask implements Ba
.getBackupAgentConnectionManager().clearNoRestrictedModePackages();
Slog.i(TAG, "Full data backup pass finished.");
- mUserBackupManagerService.getWakelock().release();
+ mUserBackupManagerService.getWakeLock().release();
}
}
diff --git a/services/backup/java/com/android/server/backup/internal/BackupHandler.java b/services/backup/java/com/android/server/backup/internal/BackupHandler.java
index 18c983585490..87cf8a313651 100644
--- a/services/backup/java/com/android/server/backup/internal/BackupHandler.java
+++ b/services/backup/java/com/android/server/backup/internal/BackupHandler.java
@@ -136,7 +136,7 @@ public class BackupHandler extends Handler {
public void handleMessage(Message msg) {
if (msg.what == MSG_STOP) {
Slog.d(TAG, "Stopping backup handler");
- backupManagerService.getWakelock().quit();
+ backupManagerService.getWakeLock().quit();
mBackupThread.quitSafely();
}
@@ -181,7 +181,7 @@ public class BackupHandler extends Handler {
// Acquire the wakelock and pass it to the backup thread. It will be released
// once backup concludes.
backupManagerService.setBackupRunning(true);
- backupManagerService.getWakelock().acquire();
+ backupManagerService.getWakeLock().acquire();
// Do we have any work to do? Construct the work queue
// then release the synchronization lock to actually run
@@ -254,7 +254,7 @@ public class BackupHandler extends Handler {
synchronized (backupManagerService.getQueueLock()) {
backupManagerService.setBackupRunning(false);
}
- backupManagerService.getWakelock().release();
+ backupManagerService.getWakeLock().release();
}
break;
}
@@ -466,7 +466,7 @@ public class BackupHandler extends Handler {
Slog.d(TAG, "MSG_REQUEST_BACKUP observer=" + params.observer);
}
backupManagerService.setBackupRunning(true);
- backupManagerService.getWakelock().acquire();
+ backupManagerService.getWakeLock().acquire();
KeyValueBackupTask.start(
backupManagerService,
diff --git a/services/backup/java/com/android/server/backup/internal/PerformClearTask.java b/services/backup/java/com/android/server/backup/internal/PerformClearTask.java
index de0177c1b62c..b9ac5648a5f4 100644
--- a/services/backup/java/com/android/server/backup/internal/PerformClearTask.java
+++ b/services/backup/java/com/android/server/backup/internal/PerformClearTask.java
@@ -75,7 +75,7 @@ public class PerformClearTask implements Runnable {
}
mListener.onFinished(callerLogString);
// Last but not least, release the cpu
- mBackupManagerService.getWakelock().release();
+ mBackupManagerService.getWakeLock().release();
}
}
}
diff --git a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java
index 689c43a1cc96..494b9d59a238 100644
--- a/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java
+++ b/services/backup/java/com/android/server/backup/keyvalue/KeyValueBackupTask.java
@@ -826,7 +826,7 @@ public class KeyValueBackupTask implements BackupRestoreTask, Runnable {
}
mTaskFinishedListener.onFinished(callerLogString);
mReporter.onBackupFinished(getBackupFinishedStatus(mCancelled, status));
- mBackupManagerService.getWakelock().release();
+ mBackupManagerService.getWakeLock().release();
}
private int getBackupFinishedStatus(boolean cancelled, int transportStatus) {
@@ -878,12 +878,13 @@ public class KeyValueBackupTask implements BackupRestoreTask, Runnable {
* the transport or not. It's the caller responsibility to do the clean-up or delegate it.
*/
private void extractAgentData(PackageInfo packageInfo) throws AgentException, TaskException {
- mBackupManagerService.setWorkSource(new WorkSource(packageInfo.applicationInfo.uid));
+ mBackupManagerService.getWakeLock().setWorkSource(
+ new WorkSource(packageInfo.applicationInfo.uid));
try {
mAgent = bindAgent(packageInfo);
extractAgentData(packageInfo, mAgent);
} finally {
- mBackupManagerService.setWorkSource(null);
+ mBackupManagerService.getWakeLock().setWorkSource(null);
}
}
diff --git a/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java b/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java
index 3ed0b835c634..41134d68916a 100644
--- a/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java
+++ b/services/backup/java/com/android/server/backup/restore/ActiveRestoreSession.java
@@ -40,6 +40,7 @@ import android.util.Slog;
import com.android.internal.annotations.VisibleForTesting;
import com.android.server.LocalServices;
+import com.android.server.backup.BackupWakeLock;
import com.android.server.backup.Flags;
import com.android.server.backup.TransportManager;
import com.android.server.backup.UserBackupManagerService;
@@ -120,7 +121,7 @@ public class ActiveRestoreSession extends IRestoreSession.Stub {
// comes in.
mBackupManagerService.getBackupHandler().removeMessages(MSG_RESTORE_SESSION_TIMEOUT);
- UserBackupManagerService.BackupWakeLock wakelock = mBackupManagerService.getWakelock();
+ BackupWakeLock wakelock = mBackupManagerService.getWakeLock();
wakelock.acquire();
// Prevent lambda from leaking 'this'
@@ -420,7 +421,7 @@ public class ActiveRestoreSession extends IRestoreSession.Stub {
Handler backupHandler = mBackupManagerService.getBackupHandler();
backupHandler.removeMessages(MSG_RESTORE_SESSION_TIMEOUT);
- UserBackupManagerService.BackupWakeLock wakelock = mBackupManagerService.getWakelock();
+ BackupWakeLock wakelock = mBackupManagerService.getWakeLock();
wakelock.acquire();
if (DEBUG) {
Slog.d(TAG, callerLogString);
diff --git a/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java b/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java
index 211628412449..5a3494c2bc6e 100644
--- a/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java
+++ b/services/backup/java/com/android/server/backup/restore/PerformAdbRestoreTask.java
@@ -141,7 +141,7 @@ public class PerformAdbRestoreTask implements Runnable {
mObbConnection.tearDown();
mObserver = FullBackupRestoreObserverUtils.sendEndRestore(mObserver);
Slog.d(TAG, "Full restore pass complete.");
- mBackupManagerService.getWakelock().release();
+ mBackupManagerService.getWakeLock().release();
}
}
diff --git a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java
index de16b7ee8126..2dd16f68dc56 100644
--- a/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java
+++ b/services/robotests/backup/src/com/android/server/backup/keyvalue/KeyValueBackupTaskTest.java
@@ -109,6 +109,7 @@ import com.android.server.EventLogTags;
import com.android.server.LocalServices;
import com.android.server.backup.BackupAgentConnectionManager;
import com.android.server.backup.BackupRestoreTask;
+import com.android.server.backup.BackupWakeLock;
import com.android.server.backup.DataChangedJournal;
import com.android.server.backup.KeyValueBackupJob;
import com.android.server.backup.PackageManagerBackupAgent;
@@ -201,7 +202,7 @@ public class KeyValueBackupTaskTest {
private TransportData mTransport;
private ShadowLooper mShadowBackupLooper;
private Handler mBackupHandler;
- private UserBackupManagerService.BackupWakeLock mWakeLock;
+ private BackupWakeLock mWakeLock;
private KeyValueBackupReporter mReporter;
private PackageManager mPackageManager;
private ShadowPackageManager mShadowPackageManager;
@@ -238,7 +239,7 @@ public class KeyValueBackupTaskTest {
mPackageManager = mApplication.getPackageManager();
mShadowPackageManager = shadowOf(mPackageManager);
- mWakeLock = createBackupWakeLock(mApplication);
+ mWakeLock = spy(createBackupWakeLock(mApplication));
mBackupManager = spy(FakeIBackupManager.class);
// Needed to be able to use a real BMS instead of a mock
@@ -737,17 +738,16 @@ public class KeyValueBackupTaskTest {
// In production (for non-system agents) the call is asynchronous, but here is
// synchronous, so it's fine to verify here.
// Verify has set work source and hasn't unset yet.
- verify(mBackupManagerService)
- .setWorkSource(
- argThat(workSource -> workSource.getUid(0) == PACKAGE_1.uid));
- verify(mBackupManagerService, never()).setWorkSource(null);
+ verify(mWakeLock).setWorkSource(
+ argThat(workSource -> workSource.getUid(0) == PACKAGE_1.uid));
+ verify(mWakeLock, never()).setWorkSource(null);
});
KeyValueBackupTask task = createKeyValueBackupTask(transportMock, PACKAGE_1);
runTask(task);
// More verifications inside agent call above
- verify(mBackupManagerService).setWorkSource(null);
+ verify(mWakeLock).setWorkSource(null);
}
/**
@@ -765,7 +765,7 @@ public class KeyValueBackupTaskTest {
runTask(task);
- verify(mBackupManagerService).setWorkSource(null);
+ verify(mWakeLock).setWorkSource(null);
verify(mObserver).onResult(PACKAGE_1.packageName, ERROR_AGENT_FAILURE);
verify(mObserver).backupFinished(SUCCESS);
assertBackupPendingFor(PACKAGE_1);
@@ -798,7 +798,7 @@ public class KeyValueBackupTaskTest {
runTask(task);
- verify(mBackupManagerService).setWorkSource(null);
+ verify(mWakeLock).setWorkSource(null);
verify(mObserver).onResult(PACKAGE_1.packageName, ERROR_AGENT_FAILURE);
verify(mObserver).backupFinished(SUCCESS);
assertBackupPendingFor(PACKAGE_1);
@@ -815,7 +815,7 @@ public class KeyValueBackupTaskTest {
runTask(task);
- verify(mBackupManagerService).setWorkSource(null);
+ verify(mWakeLock).setWorkSource(null);
verify(mObserver).onResult(PACKAGE_1.packageName, ERROR_AGENT_FAILURE);
verify(mObserver).backupFinished(SUCCESS);
assertBackupPendingFor(PACKAGE_1);
@@ -833,7 +833,7 @@ public class KeyValueBackupTaskTest {
runTask(task);
- verify(mBackupManagerService).setWorkSource(null);
+ verify(mWakeLock).setWorkSource(null);
verify(mObserver).onResult(PACKAGE_1.packageName, ERROR_AGENT_FAILURE);
verify(mObserver).backupFinished(SUCCESS);
assertBackupPendingFor(PACKAGE_1);
@@ -864,7 +864,7 @@ public class KeyValueBackupTaskTest {
runTask(task);
- verify(mBackupManagerService).setWorkSource(null);
+ verify(mWakeLock).setWorkSource(null);
verify(mBackupAgentConnectionManager).unbindAgent(argThat(applicationInfo(PACKAGE_1)),
eq(false));
}
@@ -918,7 +918,7 @@ public class KeyValueBackupTaskTest {
runTask(task);
- verify(mBackupManagerService).setWorkSource(null);
+ verify(mWakeLock).setWorkSource(null);
}
@Test
diff --git a/services/robotests/backup/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java b/services/robotests/backup/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java
index 73ddbe8cec7c..ffec68aa4082 100644
--- a/services/robotests/backup/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java
+++ b/services/robotests/backup/src/com/android/server/backup/restore/ActiveRestoreSessionTest.java
@@ -51,6 +51,7 @@ import android.platform.test.annotations.Presubmit;
import com.android.server.EventLogTags;
import com.android.server.backup.BackupAgentTimeoutParameters;
+import com.android.server.backup.BackupWakeLock;
import com.android.server.backup.OperationStorage;
import com.android.server.backup.TransportManager;
import com.android.server.backup.UserBackupManagerService;
@@ -103,7 +104,7 @@ public class ActiveRestoreSessionTest {
@Mock private OperationStorage mOperationStorage;
private ShadowLooper mShadowBackupLooper;
private ShadowApplication mShadowApplication;
- private UserBackupManagerService.BackupWakeLock mWakeLock;
+ private BackupWakeLock mWakeLock;
private TransportData mTransport;
private RestoreSet mRestoreSet1;
private RestoreSet mRestoreSet2;
diff --git a/services/robotests/backup/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java b/services/robotests/backup/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java
index 4d04c8b76fc7..10d23dc18e58 100644
--- a/services/robotests/backup/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java
+++ b/services/robotests/backup/src/com/android/server/backup/testing/BackupManagerServiceTestUtils.java
@@ -39,6 +39,7 @@ import android.util.Log;
import com.android.server.backup.BackupAgentTimeoutParameters;
import com.android.server.backup.BackupManagerConstants;
import com.android.server.backup.BackupManagerService;
+import com.android.server.backup.BackupWakeLock;
import com.android.server.backup.TransportManager;
import com.android.server.backup.UserBackupManagerService;
@@ -114,7 +115,7 @@ public class BackupManagerServiceTestUtils {
TransportManager transportManager,
PackageManager packageManager,
Handler backupHandler,
- UserBackupManagerService.BackupWakeLock wakeLock,
+ BackupWakeLock wakeLock,
BackupAgentTimeoutParameters agentTimeoutParameters) {
when(backupManagerService.getContext()).thenReturn(application);
@@ -123,7 +124,7 @@ public class BackupManagerServiceTestUtils {
when(backupManagerService.getBackupHandler()).thenReturn(backupHandler);
when(backupManagerService.getQueueLock()).thenReturn(new Object());
when(backupManagerService.getActivityManager()).thenReturn(mock(IActivityManager.class));
- when(backupManagerService.getWakelock()).thenReturn(wakeLock);
+ when(backupManagerService.getWakeLock()).thenReturn(wakeLock);
when(backupManagerService.getAgentTimeoutParameters()).thenReturn(agentTimeoutParameters);
AccessorMock backupEnabled = mockAccessor(false);
@@ -161,10 +162,12 @@ public class BackupManagerServiceTestUtils {
});
}
- public static UserBackupManagerService.BackupWakeLock createBackupWakeLock(
- Application application) {
+ /**
+ * Creates a wakelock for testing.
+ */
+ public static BackupWakeLock createBackupWakeLock(Application application) {
PowerManager powerManager = application.getSystemService(PowerManager.class);
- return new UserBackupManagerService.BackupWakeLock(
+ return new BackupWakeLock(
powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "*backup*"), 0,
new BackupManagerConstants(Handler.getMain(), application.getContentResolver()));
}
diff --git a/services/tests/mockingservicestests/src/com/android/server/backup/fullbackup/PerformFullTransportBackupTaskTest.java b/services/tests/mockingservicestests/src/com/android/server/backup/fullbackup/PerformFullTransportBackupTaskTest.java
index e618433862f2..2b7a62a9f9fe 100644
--- a/services/tests/mockingservicestests/src/com/android/server/backup/fullbackup/PerformFullTransportBackupTaskTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/backup/fullbackup/PerformFullTransportBackupTaskTest.java
@@ -35,6 +35,7 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.server.backup.BackupAgentConnectionManager;
import com.android.server.backup.BackupAgentTimeoutParameters;
+import com.android.server.backup.BackupWakeLock;
import com.android.server.backup.OperationStorage;
import com.android.server.backup.TransportManager;
import com.android.server.backup.UserBackupManagerService;
@@ -81,7 +82,7 @@ public class PerformFullTransportBackupTaskTest {
@Mock
TransportManager mTransportManager;
@Mock
- UserBackupManagerService.BackupWakeLock mWakeLock;
+ BackupWakeLock mWakeLock;
private final List<String> mEligiblePackages = new ArrayList<>();
@@ -94,7 +95,7 @@ public class PerformFullTransportBackupTaskTest {
when(mBackupManagerService.getPackageManager()).thenReturn(mPackageManager);
when(mBackupManagerService.getQueueLock()).thenReturn("something!");
when(mBackupManagerService.isEnabled()).thenReturn(true);
- when(mBackupManagerService.getWakelock()).thenReturn(mWakeLock);
+ when(mBackupManagerService.getWakeLock()).thenReturn(mWakeLock);
when(mBackupManagerService.isSetupComplete()).thenReturn(true);
when(mBackupManagerService.getAgentTimeoutParameters()).thenReturn(
mBackupAgentTimeoutParameters);