42 lines
1.5 KiB
Java
42 lines
1.5 KiB
Java
package androidx.work.impl.utils;
|
|
|
|
import android.content.Context;
|
|
import android.os.PowerManager;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.work.Logger;
|
|
import c.d.b.a.a;
|
|
import java.util.HashMap;
|
|
import java.util.WeakHashMap;
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
|
|
public class WakeLocks {
|
|
private static final String TAG = Logger.tagWithPrefix("WakeLocks");
|
|
private static final WeakHashMap<PowerManager.WakeLock, String> sWakeLocks = new WeakHashMap<>();
|
|
|
|
private WakeLocks() {
|
|
}
|
|
|
|
public static void checkWakeLocks() {
|
|
HashMap hashMap = new HashMap();
|
|
WeakHashMap<PowerManager.WakeLock, String> weakHashMap = sWakeLocks;
|
|
synchronized (weakHashMap) {
|
|
hashMap.putAll(weakHashMap);
|
|
}
|
|
for (PowerManager.WakeLock wakeLock : hashMap.keySet()) {
|
|
if (wakeLock != null && wakeLock.isHeld()) {
|
|
Logger.get().warning(TAG, String.format("WakeLock held for %s", hashMap.get(wakeLock)), new Throwable[0]);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static PowerManager.WakeLock newWakeLock(@NonNull Context context, @NonNull String str) {
|
|
String s2 = a.s("WorkManager: ", str);
|
|
PowerManager.WakeLock newWakeLock = ((PowerManager) context.getApplicationContext().getSystemService("power")).newWakeLock(1, s2);
|
|
WeakHashMap<PowerManager.WakeLock, String> weakHashMap = sWakeLocks;
|
|
synchronized (weakHashMap) {
|
|
weakHashMap.put(newWakeLock, s2);
|
|
}
|
|
return newWakeLock;
|
|
}
|
|
}
|