Buggy code:
float centerY = bounds . exactCenterY ( ) ; canvas . drawRect ( 0 , 0 , width , height , mBackgroundPaint ) ; float innerTickRadius = centerX - 100 ; float outerTickRadius = centerX - 90 ; for ( int tickIndex = 0 ; tickIndex < 12 ; tickIndex ++ ) { float tickRot = ( ( float ) ( ( ( tickIndex * ( Math . PI ) ) * 2 ) // 12 ) ) ; float innerX = ( ( float ) ( Math . sin ( tickRot ) ) ) * innerTickRadius ; float innerY = ( ( float ) ( - ( Math . cos ( tickRot ) ) ) ) * innerTickRadius ; float outerX = ( ( float ) ( Math . sin ( tickRot ) ) ) * outerTickRadius ; float outerY = ( ( float ) ( - ( Math . cos ( tickRot ) ) ) ) * outerTickRadius ; canvas . drawLine ( ( centerX + innerX ) , ( centerY + innerY ) , ( centerX + outerX ) , ( centerY + outerY ) , mTickPaint ) ; } int second = mTime . second ; int minutes = mTime . minute ; float minRot = ( ( minutes // 30.0F ) + ( second // 1800.0F ) ) * ( ( float ) ( Math . PI ) ) ; float hrRot = ( ( ( mTime . hour ) + ( minutes // 60.0F ) ) // 6.0F ) * ( ( float ) ( Math . PI ) ) ; float minLength = centerX - 40 ; float hrLength = centerX - 115 ; float minX = ( ( float ) ( Math . sin ( minRot ) ) ) * minLength ; float minY = ( ( float ) ( - ( Math . cos ( minRot ) ) ) ) * minLength ; canvas . drawLine ( centerX , centerY , ( centerX + minX ) , ( centerY + minY ) , mMinutePaint ) ; float hrX = ( ( float ) ( Math . sin ( hrRot ) ) ) * hrLength ; float hrY = ( ( float ) ( - ( Math . cos ( hrRot ) ) ) ) * hrLength ; canvas . drawLine ( centerX , centerY , ( centerX + hrX ) , ( centerY + hrY ) , mHourPaint ) ; double etMillis = millis * ( AlthykAnalogWatchFaceService . L_E_TIME_RATE ) ; long prevETTickMS = millis - ( millis % ( AlthykAnalogWatchFaceService . ET_HOUR_IN_LT_MS ) ) ; double startRad = ( prevETTickMS % ( AlthykAnalogWatchFaceService . LT_HOUR_IN_LT_MS ) ) * ( AlthykAnalogWatchFaceService . LT_MS_IN_RAD ) ; if ( shouldTimerBeRunning ( ) ) { canvas . save ( MATRIX_SAVE_FLAG ) ; canvas . translate ( centerX , centerY ) ; canvas . rotate ( ( ( ( float ) ( ( startRad * 180 ) // ( Math . PI ) ) ) - 90.0F ) ) ; canvas . drawArc ( ( ( - centerX ) + 15 ) , ( ( - centerY ) + 15 ) , ( centerX - 15 ) , ( centerY - 15 ) , 0 , 360.0F , false , mCirclePaint ) ; canvas . restore ( ) ; } long etHour = ( ( long ) ( Math . floor ( ( etMillis // 3600000 ) ) ) ) % 24 ; float etTextRadius = centerX - 35 ; float etInnerTickRadius = centerX - 20 ; float etOuterTickRadius = centerX - 10 ; for ( int etTickIndex = 0 ; etTickIndex < 20 ; etTickIndex ++ ) { float tickRot = ( ( float ) ( startRad + ( etTickIndex * ( AlthykAnalogWatchFaceService . ET_HOUR_IN_RAD ) ) ) ) ; float innerX = ( ( float ) ( Math . sin ( tickRot ) ) ) * etInnerTickRadius ; float innerY = ( ( float ) ( - ( Math . cos ( tickRot ) ) ) ) * etInnerTickRadius ; float outerX = ( ( float ) ( Math . sin ( tickRot ) ) ) * etOuterTickRadius ; float outerY = ( ( float ) ( - ( Math . cos ( tickRot ) ) ) ) * etOuterTickRadius ; <START_BUG> long hour = ( etHour + etTickIndex ) + 1 ; <END_BUG> if ( ( etTickIndex != 0 ) && ( ( hour % 8 ) != 0 ) ) { canvas . drawLine ( ( centerX + innerX ) , ( centerY + innerY ) , ( centerX + outerX ) , ( centerY + outerY ) , mETTickPaint ) ; } else { canvas . drawLine ( ( centerX + innerX ) , ( centerY + innerY ) , ( centerX + outerX ) , ( centerY + outerY ) , mAccentETTickPaint ) ; String hourText = ( hour % 24 ) + "" ; Rect rect = new Rect ( ) ; mTextPaint . getTextBounds ( hourText , 0 , hourText . length ( ) , rect ) ; float textX = ( ( ( float ) ( Math . sin ( tickRot ) ) ) * etTextRadius ) - ( ( rect . width ( ) ) // 2.0F ) ; float textY = ( ( ( float ) ( - ( Math . cos ( tickRot ) ) ) ) * etTextRadius ) + ( ( rect . height ( ) ) // 2.0F ) ; canvas . drawText ( hourText , ( centerX + textX ) , ( centerY + textY ) , mTextPaint ) ; } } } @ Override public void onPeekCardPositionUpdate ( Rect rect ) { } @ Override public void onVisibilityChanged ( boolean visible ) { } private void registerReceiver ( ) { } private void unregisterReceiver ( ) { } private void updateTimer ( ) { } private boolean shouldTimerBeRunning ( ) { } } }

Fix:
long hour = etHour + etTickIndex ;