Loading packages/SystemUI/src/com/android/systemui/keyguard/Lifecycle.java +15 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ package com.android.systemui.keyguard; import androidx.annotation.NonNull; import com.android.app.tracing.TraceUtils; import kotlin.Unit; import java.util.ArrayList; import java.util.Objects; import java.util.function.BiConsumer; Loading @@ -28,7 +32,7 @@ import java.util.function.Consumer; */ public class Lifecycle<T> { private ArrayList<T> mObservers = new ArrayList<>(); private final ArrayList<T> mObservers = new ArrayList<>(); public void addObserver(@NonNull T observer) { mObservers.add(Objects.requireNonNull(observer)); Loading @@ -40,7 +44,11 @@ public class Lifecycle<T> { public void dispatch(Consumer<T> consumer) { for (int i = 0; i < mObservers.size(); i++) { consumer.accept(mObservers.get(i)); final T observer = mObservers.get(i); TraceUtils.trace(() -> "dispatch#" + consumer.toString(), () -> { consumer.accept(observer); return Unit.INSTANCE; }); } } Loading @@ -49,7 +57,11 @@ public class Lifecycle<T> { */ public <U> void dispatch(BiConsumer<T, U> biConsumer, U arg) { for (int i = 0; i < mObservers.size(); i++) { biConsumer.accept(mObservers.get(i), arg); final T observer = mObservers.get(i); TraceUtils.trace(() -> "dispatch#" + biConsumer.toString(), () -> { biConsumer.accept(observer, arg); return Unit.INSTANCE; }); } } } packages/SystemUI/tests/src/com/android/systemui/keyguard/LifecycleTest.java +4 −7 Original line number Diff line number Diff line Loading @@ -16,8 +16,7 @@ package com.android.systemui.keyguard; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static com.google.common.truth.Truth.assertThat; import android.testing.AndroidTestingRunner; Loading Loading @@ -52,8 +51,7 @@ public class LifecycleTest extends SysuiTestCase { mLifecycle.addObserver(mObj1); mLifecycle.dispatch(mDispatchedObjects::add); assertTrue(mDispatchedObjects.contains(mObj1)); assertThat(mDispatchedObjects).contains(mObj1); } @Test Loading @@ -63,7 +61,7 @@ public class LifecycleTest extends SysuiTestCase { mLifecycle.dispatch(mDispatchedObjects::add); assertFalse(mDispatchedObjects.contains(mObj1)); assertThat(mDispatchedObjects).isEmpty(); } @Test Loading @@ -73,8 +71,7 @@ public class LifecycleTest extends SysuiTestCase { mLifecycle.dispatch(mDispatchedObjects::add); assertTrue(mDispatchedObjects.contains(mObj1)); assertTrue(mDispatchedObjects.contains(mObj2)); assertThat(mDispatchedObjects).containsExactly(mObj1, mObj2); } } No newline at end of file Loading
packages/SystemUI/src/com/android/systemui/keyguard/Lifecycle.java +15 −3 Original line number Diff line number Diff line Loading @@ -18,6 +18,10 @@ package com.android.systemui.keyguard; import androidx.annotation.NonNull; import com.android.app.tracing.TraceUtils; import kotlin.Unit; import java.util.ArrayList; import java.util.Objects; import java.util.function.BiConsumer; Loading @@ -28,7 +32,7 @@ import java.util.function.Consumer; */ public class Lifecycle<T> { private ArrayList<T> mObservers = new ArrayList<>(); private final ArrayList<T> mObservers = new ArrayList<>(); public void addObserver(@NonNull T observer) { mObservers.add(Objects.requireNonNull(observer)); Loading @@ -40,7 +44,11 @@ public class Lifecycle<T> { public void dispatch(Consumer<T> consumer) { for (int i = 0; i < mObservers.size(); i++) { consumer.accept(mObservers.get(i)); final T observer = mObservers.get(i); TraceUtils.trace(() -> "dispatch#" + consumer.toString(), () -> { consumer.accept(observer); return Unit.INSTANCE; }); } } Loading @@ -49,7 +57,11 @@ public class Lifecycle<T> { */ public <U> void dispatch(BiConsumer<T, U> biConsumer, U arg) { for (int i = 0; i < mObservers.size(); i++) { biConsumer.accept(mObservers.get(i), arg); final T observer = mObservers.get(i); TraceUtils.trace(() -> "dispatch#" + biConsumer.toString(), () -> { biConsumer.accept(observer, arg); return Unit.INSTANCE; }); } } }
packages/SystemUI/tests/src/com/android/systemui/keyguard/LifecycleTest.java +4 −7 Original line number Diff line number Diff line Loading @@ -16,8 +16,7 @@ package com.android.systemui.keyguard; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static com.google.common.truth.Truth.assertThat; import android.testing.AndroidTestingRunner; Loading Loading @@ -52,8 +51,7 @@ public class LifecycleTest extends SysuiTestCase { mLifecycle.addObserver(mObj1); mLifecycle.dispatch(mDispatchedObjects::add); assertTrue(mDispatchedObjects.contains(mObj1)); assertThat(mDispatchedObjects).contains(mObj1); } @Test Loading @@ -63,7 +61,7 @@ public class LifecycleTest extends SysuiTestCase { mLifecycle.dispatch(mDispatchedObjects::add); assertFalse(mDispatchedObjects.contains(mObj1)); assertThat(mDispatchedObjects).isEmpty(); } @Test Loading @@ -73,8 +71,7 @@ public class LifecycleTest extends SysuiTestCase { mLifecycle.dispatch(mDispatchedObjects::add); assertTrue(mDispatchedObjects.contains(mObj1)); assertTrue(mDispatchedObjects.contains(mObj2)); assertThat(mDispatchedObjects).containsExactly(mObj1, mObj2); } } No newline at end of file