Loading AconfigFlags.bp +14 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ aconfig_srcjars = [ ":android.os.flags-aconfig-java{.generated_srcjars}", ":android.os.vibrator.flags-aconfig-java{.generated_srcjars}", ":android.security.flags-aconfig-java{.generated_srcjars}", ":android.service.notification.flags-aconfig-java{.generated_srcjars}", ":android.view.flags-aconfig-java{.generated_srcjars}", ":android.view.accessibility.flags-aconfig-java{.generated_srcjars}", ":camera_platform_flags_core_java_lib{.generated_srcjars}", Loading Loading @@ -544,3 +545,16 @@ cc_aconfig_library { name: "device_policy_aconfig_flags_c_lib", aconfig_declarations: "device_policy_aconfig_flags", } // Notifications aconfig_declarations { name: "android.service.notification.flags-aconfig", package: "android.service.notification", srcs: ["core/java/android/service/notification/flags.aconfig"], } java_aconfig_library { name: "android.service.notification.flags-aconfig-java", aconfig_declarations: "android.service.notification.flags-aconfig", defaults: ["framework-minus-apex-aconfig-java-defaults"], } core/java/android/service/notification/NotificationRankingUpdate.java +2 −6 Original line number Diff line number Diff line Loading @@ -28,8 +28,6 @@ import android.system.OsConstants; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; Loading Loading @@ -59,8 +57,7 @@ public class NotificationRankingUpdate implements Parcelable { * @hide */ public NotificationRankingUpdate(Parcel in) { if (SystemUiSystemPropertiesFlags.getResolver().isEnabled( SystemUiSystemPropertiesFlags.NotificationFlags.RANKING_UPDATE_ASHMEM)) { if (Flags.rankingUpdateAshmem()) { // Recover the ranking map from the SharedMemory and store it in mapParcel. final Parcel mapParcel = Parcel.obtain(); ByteBuffer buffer = null; Loading Loading @@ -176,8 +173,7 @@ public class NotificationRankingUpdate implements Parcelable { */ @Override public void writeToParcel(@NonNull Parcel out, int flags) { if (SystemUiSystemPropertiesFlags.getResolver().isEnabled( SystemUiSystemPropertiesFlags.NotificationFlags.RANKING_UPDATE_ASHMEM)) { if (Flags.rankingUpdateAshmem()) { final Parcel mapParcel = Parcel.obtain(); ArrayList<NotificationListenerService.Ranking> marshalableRankings = new ArrayList<>(); Bundle smartActionsBundle = new Bundle(); Loading core/java/android/service/notification/flags.aconfig 0 → 100644 +9 −0 Original line number Diff line number Diff line package: "android.service.notification" flag { name: "ranking_update_ashmem" namespace: "systemui" description: "This flag controls moving ranking update contents into ashmem" bug: "284297289" } core/tests/coretests/src/android/service/notification/NotificationRankingUpdateTest.java +13 −36 Original line number Diff line number Diff line Loading @@ -20,8 +20,6 @@ import static android.service.notification.NotificationListenerService.Ranking.U import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEUTRAL; import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_POSITIVE; import static com.android.internal.config.sysui.SystemUiSystemPropertiesFlags.NotificationFlags.RANKING_UPDATE_ASHMEM; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNotNull; Loading @@ -42,16 +40,12 @@ import android.content.pm.ShortcutInfo; import android.os.Bundle; import android.os.Parcel; import android.os.SharedMemory; import android.platform.test.flag.junit.SetFlagsRule; import android.testing.TestableContext; import androidx.test.InstrumentationRegistry; import androidx.test.filters.SmallTest; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags.Flag; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags.FlagResolver; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; Loading @@ -71,6 +65,9 @@ public class NotificationRankingUpdateTest { private NotificationChannel mNotificationChannel; @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); // TODO(b/284297289): remove this flag set once resolved. @Parameterized.Parameters(name = "rankingUpdateAshmem={0}") public static Boolean[] getRankingUpdateAshmem() { Loading Loading @@ -424,30 +421,11 @@ public class NotificationRankingUpdateTest { mNotificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "test channel", NotificationManager.IMPORTANCE_DEFAULT); SystemUiSystemPropertiesFlags.TEST_RESOLVER = new FlagResolver() { @Override public boolean isEnabled(Flag flag) { if (flag.mSysPropKey.equals(RANKING_UPDATE_ASHMEM.mSysPropKey)) { return mRankingUpdateAshmem; } return new SystemUiSystemPropertiesFlags.DebugResolver().isEnabled(flag); } @Override public int getIntValue(Flag flag) { return 0; } @Override public String getStringValue(Flag flag) { return null; } }; if (mRankingUpdateAshmem) { mSetFlagsRule.enableFlags(Flags.FLAG_RANKING_UPDATE_ASHMEM); } else { mSetFlagsRule.disableFlags(Flags.FLAG_RANKING_UPDATE_ASHMEM); } @After public void tearDown() { SystemUiSystemPropertiesFlags.TEST_RESOLVER = null; } /** Loading Loading @@ -497,8 +475,7 @@ public class NotificationRankingUpdateTest { parcel.setDataPosition(0); NotificationRankingUpdate nru1 = NotificationRankingUpdate.CREATOR.createFromParcel(parcel); // The rankingUpdate file descriptor is only non-null in the new path. if (SystemUiSystemPropertiesFlags.getResolver().isEnabled( SystemUiSystemPropertiesFlags.NotificationFlags.RANKING_UPDATE_ASHMEM)) { if (Flags.rankingUpdateAshmem()) { assertTrue(nru1.isFdNotNullAndClosed()); } detailedAssertEquals(nru, nru1); Loading Loading @@ -636,7 +613,7 @@ public class NotificationRankingUpdateTest { @Test public void testRankingUpdate_writesSmartActionToParcel() { if (!mRankingUpdateAshmem) { if (!Flags.rankingUpdateAshmem()) { return; } ArrayList<Notification.Action> actions = new ArrayList<>(); Loading Loading @@ -674,7 +651,7 @@ public class NotificationRankingUpdateTest { @Test public void testRankingUpdate_handlesEmptySmartActionList() { if (!mRankingUpdateAshmem) { if (!Flags.rankingUpdateAshmem()) { return; } ArrayList<Notification.Action> actions = new ArrayList<>(); Loading @@ -697,7 +674,7 @@ public class NotificationRankingUpdateTest { @Test public void testRankingUpdate_handlesNullSmartActionList() { if (!mRankingUpdateAshmem) { if (!Flags.rankingUpdateAshmem()) { return; } NotificationListenerService.Ranking ranking = Loading Loading
AconfigFlags.bp +14 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ aconfig_srcjars = [ ":android.os.flags-aconfig-java{.generated_srcjars}", ":android.os.vibrator.flags-aconfig-java{.generated_srcjars}", ":android.security.flags-aconfig-java{.generated_srcjars}", ":android.service.notification.flags-aconfig-java{.generated_srcjars}", ":android.view.flags-aconfig-java{.generated_srcjars}", ":android.view.accessibility.flags-aconfig-java{.generated_srcjars}", ":camera_platform_flags_core_java_lib{.generated_srcjars}", Loading Loading @@ -544,3 +545,16 @@ cc_aconfig_library { name: "device_policy_aconfig_flags_c_lib", aconfig_declarations: "device_policy_aconfig_flags", } // Notifications aconfig_declarations { name: "android.service.notification.flags-aconfig", package: "android.service.notification", srcs: ["core/java/android/service/notification/flags.aconfig"], } java_aconfig_library { name: "android.service.notification.flags-aconfig-java", aconfig_declarations: "android.service.notification.flags-aconfig", defaults: ["framework-minus-apex-aconfig-java-defaults"], }
core/java/android/service/notification/NotificationRankingUpdate.java +2 −6 Original line number Diff line number Diff line Loading @@ -28,8 +28,6 @@ import android.system.OsConstants; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.List; Loading Loading @@ -59,8 +57,7 @@ public class NotificationRankingUpdate implements Parcelable { * @hide */ public NotificationRankingUpdate(Parcel in) { if (SystemUiSystemPropertiesFlags.getResolver().isEnabled( SystemUiSystemPropertiesFlags.NotificationFlags.RANKING_UPDATE_ASHMEM)) { if (Flags.rankingUpdateAshmem()) { // Recover the ranking map from the SharedMemory and store it in mapParcel. final Parcel mapParcel = Parcel.obtain(); ByteBuffer buffer = null; Loading Loading @@ -176,8 +173,7 @@ public class NotificationRankingUpdate implements Parcelable { */ @Override public void writeToParcel(@NonNull Parcel out, int flags) { if (SystemUiSystemPropertiesFlags.getResolver().isEnabled( SystemUiSystemPropertiesFlags.NotificationFlags.RANKING_UPDATE_ASHMEM)) { if (Flags.rankingUpdateAshmem()) { final Parcel mapParcel = Parcel.obtain(); ArrayList<NotificationListenerService.Ranking> marshalableRankings = new ArrayList<>(); Bundle smartActionsBundle = new Bundle(); Loading
core/java/android/service/notification/flags.aconfig 0 → 100644 +9 −0 Original line number Diff line number Diff line package: "android.service.notification" flag { name: "ranking_update_ashmem" namespace: "systemui" description: "This flag controls moving ranking update contents into ashmem" bug: "284297289" }
core/tests/coretests/src/android/service/notification/NotificationRankingUpdateTest.java +13 −36 Original line number Diff line number Diff line Loading @@ -20,8 +20,6 @@ import static android.service.notification.NotificationListenerService.Ranking.U import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_NEUTRAL; import static android.service.notification.NotificationListenerService.Ranking.USER_SENTIMENT_POSITIVE; import static com.android.internal.config.sysui.SystemUiSystemPropertiesFlags.NotificationFlags.RANKING_UPDATE_ASHMEM; import static junit.framework.Assert.assertEquals; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertNotNull; Loading @@ -42,16 +40,12 @@ import android.content.pm.ShortcutInfo; import android.os.Bundle; import android.os.Parcel; import android.os.SharedMemory; import android.platform.test.flag.junit.SetFlagsRule; import android.testing.TestableContext; import androidx.test.InstrumentationRegistry; import androidx.test.filters.SmallTest; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags.Flag; import com.android.internal.config.sysui.SystemUiSystemPropertiesFlags.FlagResolver; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; Loading @@ -71,6 +65,9 @@ public class NotificationRankingUpdateTest { private NotificationChannel mNotificationChannel; @Rule public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); // TODO(b/284297289): remove this flag set once resolved. @Parameterized.Parameters(name = "rankingUpdateAshmem={0}") public static Boolean[] getRankingUpdateAshmem() { Loading Loading @@ -424,30 +421,11 @@ public class NotificationRankingUpdateTest { mNotificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "test channel", NotificationManager.IMPORTANCE_DEFAULT); SystemUiSystemPropertiesFlags.TEST_RESOLVER = new FlagResolver() { @Override public boolean isEnabled(Flag flag) { if (flag.mSysPropKey.equals(RANKING_UPDATE_ASHMEM.mSysPropKey)) { return mRankingUpdateAshmem; } return new SystemUiSystemPropertiesFlags.DebugResolver().isEnabled(flag); } @Override public int getIntValue(Flag flag) { return 0; } @Override public String getStringValue(Flag flag) { return null; } }; if (mRankingUpdateAshmem) { mSetFlagsRule.enableFlags(Flags.FLAG_RANKING_UPDATE_ASHMEM); } else { mSetFlagsRule.disableFlags(Flags.FLAG_RANKING_UPDATE_ASHMEM); } @After public void tearDown() { SystemUiSystemPropertiesFlags.TEST_RESOLVER = null; } /** Loading Loading @@ -497,8 +475,7 @@ public class NotificationRankingUpdateTest { parcel.setDataPosition(0); NotificationRankingUpdate nru1 = NotificationRankingUpdate.CREATOR.createFromParcel(parcel); // The rankingUpdate file descriptor is only non-null in the new path. if (SystemUiSystemPropertiesFlags.getResolver().isEnabled( SystemUiSystemPropertiesFlags.NotificationFlags.RANKING_UPDATE_ASHMEM)) { if (Flags.rankingUpdateAshmem()) { assertTrue(nru1.isFdNotNullAndClosed()); } detailedAssertEquals(nru, nru1); Loading Loading @@ -636,7 +613,7 @@ public class NotificationRankingUpdateTest { @Test public void testRankingUpdate_writesSmartActionToParcel() { if (!mRankingUpdateAshmem) { if (!Flags.rankingUpdateAshmem()) { return; } ArrayList<Notification.Action> actions = new ArrayList<>(); Loading Loading @@ -674,7 +651,7 @@ public class NotificationRankingUpdateTest { @Test public void testRankingUpdate_handlesEmptySmartActionList() { if (!mRankingUpdateAshmem) { if (!Flags.rankingUpdateAshmem()) { return; } ArrayList<Notification.Action> actions = new ArrayList<>(); Loading @@ -697,7 +674,7 @@ public class NotificationRankingUpdateTest { @Test public void testRankingUpdate_handlesNullSmartActionList() { if (!mRankingUpdateAshmem) { if (!Flags.rankingUpdateAshmem()) { return; } NotificationListenerService.Ranking ranking = Loading