Loading packages/SystemUI/aconfig/systemui.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -907,16 +907,6 @@ flag { } } flag { name: "delayed_wakelock_release_on_background_thread" namespace: "systemui" description: "Released delayed wakelocks on background threads to avoid janking screen transitions." bug: "316128516" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "notify_power_manager_user_activity_background" namespace: "systemui" Loading packages/SystemUI/multivalentTests/src/com/android/systemui/util/wakelock/WakeLockTest.java +2 −22 Original line number Diff line number Diff line Loading @@ -21,43 +21,23 @@ import static org.junit.Assert.assertTrue; import android.os.Build; import android.os.PowerManager; import android.platform.test.flag.junit.FlagsParameterization; import android.platform.test.flag.junit.SetFlagsRule; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.systemui.Flags; import com.android.systemui.SysuiTestCase; import org.junit.After; import org.junit.Assume; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import java.util.List; import platform.test.runner.parameterized.ParameterizedAndroidJunit4; import platform.test.runner.parameterized.Parameters; @SmallTest @RunWith(ParameterizedAndroidJunit4.class) @RunWith(AndroidJUnit4.class) public class WakeLockTest extends SysuiTestCase { @Parameters(name = "{0}") public static List<FlagsParameterization> getFlags() { return FlagsParameterization.allCombinationsOf( Flags.FLAG_DELAYED_WAKELOCK_RELEASE_ON_BACKGROUND_THREAD); } @Rule public final SetFlagsRule mSetFlagsRule; public WakeLockTest(FlagsParameterization flags) { mSetFlagsRule = new SetFlagsRule(SetFlagsRule.DefaultInitValueType.NULL_DEFAULT, flags); } private static final String WHY = "test"; WakeLock mWakeLock; PowerManager.WakeLock mInner; Loading packages/SystemUI/src/com/android/systemui/util/wakelock/DelayedWakeLock.java +2 −7 Original line number Diff line number Diff line Loading @@ -19,11 +19,8 @@ package com.android.systemui.util.wakelock; import android.content.Context; import android.os.Handler; import com.android.systemui.Flags; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import dagger.Lazy; import dagger.assisted.Assisted; import dagger.assisted.AssistedFactory; import dagger.assisted.AssistedInject; Loading @@ -40,13 +37,11 @@ public class DelayedWakeLock implements WakeLock { private final WakeLock mInner; @AssistedInject public DelayedWakeLock(@Background Lazy<Handler> bgHandler, @Main Lazy<Handler> mainHandler, public DelayedWakeLock(@Background Handler bgHandler, Context context, WakeLockLogger logger, @Assisted String tag) { mInner = WakeLock.createPartial(context, logger, tag); mHandler = Flags.delayedWakelockReleaseOnBackgroundThread() ? bgHandler.get() : mainHandler.get(); mHandler = bgHandler; } @Override Loading packages/SystemUI/src/com/android/systemui/util/wakelock/WakeLock.java +1 −58 Original line number Diff line number Diff line Loading @@ -18,14 +18,9 @@ package com.android.systemui.util.wakelock; import android.content.Context; import android.os.PowerManager; import android.util.Log; import androidx.annotation.VisibleForTesting; import com.android.systemui.Flags; import java.util.HashMap; import javax.inject.Inject; /** WakeLock wrapper for testability */ Loading Loading @@ -114,61 +109,9 @@ public interface WakeLock { @VisibleForTesting static WakeLock wrap( final PowerManager.WakeLock inner, WakeLockLogger logger, long maxTimeout) { if (Flags.delayedWakelockReleaseOnBackgroundThread()) { return new ClientTrackingWakeLock(inner, logger, maxTimeout); } // Non-thread safe implementation, remove when flag above is removed. return new WakeLock() { private final HashMap<String, Integer> mActiveClients = new HashMap<>(); /** @see PowerManager.WakeLock#acquire() */ public void acquire(String why) { mActiveClients.putIfAbsent(why, 0); int count = mActiveClients.get(why) + 1; mActiveClients.put(why, count); if (logger != null) { logger.logAcquire(inner, why, count); } if (maxTimeout == Builder.NO_TIMEOUT) { inner.acquire(); } else { inner.acquire(maxTimeout); } } /** @see PowerManager.WakeLock#release() */ public void release(String why) { Integer count = mActiveClients.get(why); if (count == null) { Log.wtf(TAG, "Releasing WakeLock with invalid reason: " + why, new Throwable()); return; } count--; if (count == 0) { mActiveClients.remove(why); } else { mActiveClients.put(why, count); } if (logger != null) { logger.logRelease(inner, why, count); } inner.release(); } /** @see PowerManager.WakeLock#wrap(Runnable) */ public Runnable wrap(Runnable runnable) { return wrapImpl(this, runnable); } @Override public String toString() { return "active clients= " + mActiveClients; } }; } /** * An injectable Builder that wraps {@link #createPartial(Context, String, long)}. */ Loading Loading
packages/SystemUI/aconfig/systemui.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -907,16 +907,6 @@ flag { } } flag { name: "delayed_wakelock_release_on_background_thread" namespace: "systemui" description: "Released delayed wakelocks on background threads to avoid janking screen transitions." bug: "316128516" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "notify_power_manager_user_activity_background" namespace: "systemui" Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/util/wakelock/WakeLockTest.java +2 −22 Original line number Diff line number Diff line Loading @@ -21,43 +21,23 @@ import static org.junit.Assert.assertTrue; import android.os.Build; import android.os.PowerManager; import android.platform.test.flag.junit.FlagsParameterization; import android.platform.test.flag.junit.SetFlagsRule; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import com.android.systemui.Flags; import com.android.systemui.SysuiTestCase; import org.junit.After; import org.junit.Assume; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import java.util.List; import platform.test.runner.parameterized.ParameterizedAndroidJunit4; import platform.test.runner.parameterized.Parameters; @SmallTest @RunWith(ParameterizedAndroidJunit4.class) @RunWith(AndroidJUnit4.class) public class WakeLockTest extends SysuiTestCase { @Parameters(name = "{0}") public static List<FlagsParameterization> getFlags() { return FlagsParameterization.allCombinationsOf( Flags.FLAG_DELAYED_WAKELOCK_RELEASE_ON_BACKGROUND_THREAD); } @Rule public final SetFlagsRule mSetFlagsRule; public WakeLockTest(FlagsParameterization flags) { mSetFlagsRule = new SetFlagsRule(SetFlagsRule.DefaultInitValueType.NULL_DEFAULT, flags); } private static final String WHY = "test"; WakeLock mWakeLock; PowerManager.WakeLock mInner; Loading
packages/SystemUI/src/com/android/systemui/util/wakelock/DelayedWakeLock.java +2 −7 Original line number Diff line number Diff line Loading @@ -19,11 +19,8 @@ package com.android.systemui.util.wakelock; import android.content.Context; import android.os.Handler; import com.android.systemui.Flags; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.dagger.qualifiers.Main; import dagger.Lazy; import dagger.assisted.Assisted; import dagger.assisted.AssistedFactory; import dagger.assisted.AssistedInject; Loading @@ -40,13 +37,11 @@ public class DelayedWakeLock implements WakeLock { private final WakeLock mInner; @AssistedInject public DelayedWakeLock(@Background Lazy<Handler> bgHandler, @Main Lazy<Handler> mainHandler, public DelayedWakeLock(@Background Handler bgHandler, Context context, WakeLockLogger logger, @Assisted String tag) { mInner = WakeLock.createPartial(context, logger, tag); mHandler = Flags.delayedWakelockReleaseOnBackgroundThread() ? bgHandler.get() : mainHandler.get(); mHandler = bgHandler; } @Override Loading
packages/SystemUI/src/com/android/systemui/util/wakelock/WakeLock.java +1 −58 Original line number Diff line number Diff line Loading @@ -18,14 +18,9 @@ package com.android.systemui.util.wakelock; import android.content.Context; import android.os.PowerManager; import android.util.Log; import androidx.annotation.VisibleForTesting; import com.android.systemui.Flags; import java.util.HashMap; import javax.inject.Inject; /** WakeLock wrapper for testability */ Loading Loading @@ -114,61 +109,9 @@ public interface WakeLock { @VisibleForTesting static WakeLock wrap( final PowerManager.WakeLock inner, WakeLockLogger logger, long maxTimeout) { if (Flags.delayedWakelockReleaseOnBackgroundThread()) { return new ClientTrackingWakeLock(inner, logger, maxTimeout); } // Non-thread safe implementation, remove when flag above is removed. return new WakeLock() { private final HashMap<String, Integer> mActiveClients = new HashMap<>(); /** @see PowerManager.WakeLock#acquire() */ public void acquire(String why) { mActiveClients.putIfAbsent(why, 0); int count = mActiveClients.get(why) + 1; mActiveClients.put(why, count); if (logger != null) { logger.logAcquire(inner, why, count); } if (maxTimeout == Builder.NO_TIMEOUT) { inner.acquire(); } else { inner.acquire(maxTimeout); } } /** @see PowerManager.WakeLock#release() */ public void release(String why) { Integer count = mActiveClients.get(why); if (count == null) { Log.wtf(TAG, "Releasing WakeLock with invalid reason: " + why, new Throwable()); return; } count--; if (count == 0) { mActiveClients.remove(why); } else { mActiveClients.put(why, count); } if (logger != null) { logger.logRelease(inner, why, count); } inner.release(); } /** @see PowerManager.WakeLock#wrap(Runnable) */ public Runnable wrap(Runnable runnable) { return wrapImpl(this, runnable); } @Override public String toString() { return "active clients= " + mActiveClients; } }; } /** * An injectable Builder that wraps {@link #createPartial(Context, String, long)}. */ Loading