Make sure all game modes are looped.

Previously when switched to use bitfield, we use bit count of 1 to check
all game modes. This patch makes sure all game modes are properly
checked.

Bug: b/188729014
Test: atest GameManagerServiceTests
Change-Id: Ia7a9cb925ba9b26f7ff7136ec60758e28a467573
diff --git a/services/core/java/com/android/server/app/GameManagerService.java b/services/core/java/com/android/server/app/GameManagerService.java
index 1aeeda0..f70b0fb 100644
--- a/services/core/java/com/android/server/app/GameManagerService.java
+++ b/services/core/java/com/android/server/app/GameManagerService.java
@@ -387,12 +387,12 @@
          * Get an array of a package's available game modes.
          */
         public @GameMode int[] getAvailableGameModes() {
-
-            int modesBitfield = getAvailableGameModesBitfield();
-            int sigBits = Integer.bitCount(modesBitfield);
-            int[] modes = new int[sigBits];
+            final int modesBitfield = getAvailableGameModesBitfield();
+            int[] modes = new int[Integer.bitCount(modesBitfield)];
             int i = 0;
-            for (int mode = 0; mode < sigBits; ++mode) {
+            final int gameModeInHighestBit =
+                    Integer.numberOfTrailingZeros(Integer.highestOneBit(modesBitfield));
+            for (int mode = 0; mode <= gameModeInHighestBit; ++mode) {
                 if (((modesBitfield >> mode) & 1) != 0) {
                     modes[i++] = mode;
                 }
diff --git a/services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java b/services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java
index e7a4c92..4d86c87 100644
--- a/services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java
+++ b/services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java
@@ -412,7 +412,7 @@
             reportedModes.add(mode);
         }
         assertEquals(requiredModes.length, reportedModes.size());
-        for (int requiredMode : reportedModes) {
+        for (int requiredMode : requiredModes) {
             assertTrue("Required game mode not supported: " + requiredMode,
                     reportedModes.contains(requiredMode));
         }