- if ((themeHue >= 0) && (themeHue < 360) && ((themeHue % HueRing.hueStepDegrees) == 0)) {
- themeId = themeIDs[themeHue / HueRing.hueStepDegrees];
+ if ((themeHue >= 0) && (themeHue < 360)) {
+ int index;
+ if ((themeHue % HueRing.hueStepDegrees) != 0) {
+ Logger.warn("profiles",
+ String.format(Locale.US, "Adjusting unexpected hue %d", themeHue));
+ index = Math.round(1f * themeHue / HueRing.hueStepDegrees);
+ }
+ else
+ index = themeHue / HueRing.hueStepDegrees;
+
+ themeId = themeIDs[index];