docs: private void preparePrefer30sMap() {
          // We'll split up the visible output and the non-visible output such that each visible
          // output will correspond to a range of 14 associated input degrees, and each non-visible
          // output will correspond to a range of 4 associate input degrees, so visible numbers
          // are more than 3 times easier to get than non-visible numbers:
          // {354-359,0-7}:0, {8-11}:6, {12-15}:12, {16-19}:18, {20-23}:24, {24-37}:30, etc.
          //
          // If an output of 30 degrees should correspond to a range of 14 associated degrees, then
          // we'll need any input between 24 - 37 to snap to 30. Working out from there, 20-23 should
          // snap to 24, while 38-41 should snap to 36. This is somewhat counter-intuitive, that you
          // can be touching 36 degrees but have the selection snapped to 30 degrees; however, this
          // inconsistency isn't noticeable at such fine-grained degrees, and it affords us the
          // ability to aggressively prefer the visible values by a factor of more than 3:1, which
          // greatly contributes to the selectability of these values.
  
          // Our input will be 0 through 360.
          mSnapPrefer30sMap = new int[361];
  
          // The first output is 0, and each following output will increment by 6 {0, 6, 12, ...}.
          int snappedOutputDegrees = 0;
          // Count of how many inputs we've designated to the specified output.
          int count = 1;
          // How many input we expect for a specified output. This will be 14 for output divisible
          // by 30, and 4 for the remaining output. We'll special case the outputs of 0 and 360, so
          // the caller can decide which they need.
          int expectedCount = 8;
          // Iterate through the input.
          for (int degrees = 0; degrees < 361; degrees++) {
              // Save the input-output mapping.
              mSnapPrefer30sMap[degrees] = snappedOutputDegrees;
              // If this is the last input for the specified output, calculate the next output and
              // the next expected count.
              if (count == expectedCount) {
                  snappedOutputDegrees += 6;
                  if (snappedOutputDegrees == 360) {
                      expectedCount = 7;
                  } else if (snappedOutputDegrees % 30 == 0) {
                      expectedCount = 14;
                  } else {
                      expectedCount = 4;
                  }
                  count = 1;
              } else {
                  count++;
              }
          }
      }