The 2017 commit has these code changes:
private int getNumLevels() {
if (mConfig.inflateSignalStrengths) {
return SignalStrength.NUM_SIGNAL_STRENGTH_BINS + 1;
}
return SignalStrength.NUM_SIGNAL_STRENGTH_BINS;
}
...
} else if (mCurrentState.connected) {
int level = mCurrentState.level;
if (mConfig.inflateSignalStrengths) {
level++;
}
return SignalDrawable.getState(level, getNumLevels(),
mCurrentState.inetCondition == 0);
If the flag is true, bump up BOTH the reported level as well as the total number of bins.If the flag is false, use reported level and default number of bins.
Since both numerator and denominator are bumped up, is it really malicious?
Based on this commit at least, personally, I feel such logic could be due to a decision to shift from levels starting from 0 to levels starting from 1 at the UI level.
Or perhaps to make levels consistent between different operators, some of whom were using 0-based while others used 1-based.
I haven't gone through later commits or latest versions. So my opinion's limited just to this original 2017 change.