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 sWakeLocks = new WeakHashMap<>(); private WakeLocks() { } public static void checkWakeLocks() { HashMap hashMap = new HashMap(); WeakHashMap 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 weakHashMap = sWakeLocks; synchronized (weakHashMap) { weakHashMap.put(newWakeLock, s2); } return newWakeLock; } }