Loading iconloaderlib/src/com/android/launcher3/icons/DotRenderer.java +28 −6 Original line number Diff line number Diff line Loading @@ -140,18 +140,32 @@ public class DotRenderer { float offsetY = Math.max(0, canvasBounds.top - (dotCenterY + mBitmapOffset)); // We draw the dot relative to its center. canvas.translate(dotCenterX + offsetX, dotCenterY + offsetY); canvas.scale(params.scale, params.scale); float dx = dotCenterX + offsetX; float dy = dotCenterY + offsetY - 15f; if (numNotifications > 9 && numNotifications < 100) { canvas.translate(dx - 3f, dy); } else if (numNotifications > 99 && numNotifications < 1000) { canvas.translate(dx + 6f, dy); } else { canvas.translate(dx - 12f, dy); } mCirclePaint.setColor(Color.BLACK); canvas.drawBitmap(mBackgroundWithShadow, mBitmapOffset, mBitmapOffset, mCirclePaint); mCirclePaint.setColor(params.color); if (numNotifications > 9 && numNotifications < 100) { canvas.drawRoundRect(new RectF(-mCircleRadius - 10, -mCircleRadius, mCircleRadius + 10, mCircleRadius), 50, 50, mCirclePaint); } else if (numNotifications > 99 && numNotifications < 1000) { canvas.drawRoundRect(new RectF(-mCircleRadius - 20, -mCircleRadius, mCircleRadius + 20, mCircleRadius), 50, 50, mCirclePaint); } else { canvas.drawCircle(0, 0, mCircleRadius, mCirclePaint); } if (mDisplayCount && numNotifications > 0) { // Draw the numNotifications text mTextPaint.setColor(getCounterTextColor(Color.WHITE)); String text = String.valueOf(Math.min(numNotifications, MAX_COUNT)); mTextPaint.setTextSize(42f); mTextPaint.setTypeface(Typeface.DEFAULT_BOLD); String text = numToNotation(numNotifications); mTextPaint.getTextBounds(text, 0, text.length(), mTextRect); float x = (-mTextRect.width() / 2f - mTextRect.left) * getAdjustment(numNotifications); float y = mTextRect.height() / 2f - mTextRect.bottom; Loading @@ -161,6 +175,14 @@ public class DotRenderer { canvas.restore(); } private String numToNotation(int num) { if (num < 1000) { return String.valueOf(num); } else { return num / 1000 + "k"; } } /** * Returns the color to use for the counter text based on the dot's background color. * Loading Loading
iconloaderlib/src/com/android/launcher3/icons/DotRenderer.java +28 −6 Original line number Diff line number Diff line Loading @@ -140,18 +140,32 @@ public class DotRenderer { float offsetY = Math.max(0, canvasBounds.top - (dotCenterY + mBitmapOffset)); // We draw the dot relative to its center. canvas.translate(dotCenterX + offsetX, dotCenterY + offsetY); canvas.scale(params.scale, params.scale); float dx = dotCenterX + offsetX; float dy = dotCenterY + offsetY - 15f; if (numNotifications > 9 && numNotifications < 100) { canvas.translate(dx - 3f, dy); } else if (numNotifications > 99 && numNotifications < 1000) { canvas.translate(dx + 6f, dy); } else { canvas.translate(dx - 12f, dy); } mCirclePaint.setColor(Color.BLACK); canvas.drawBitmap(mBackgroundWithShadow, mBitmapOffset, mBitmapOffset, mCirclePaint); mCirclePaint.setColor(params.color); if (numNotifications > 9 && numNotifications < 100) { canvas.drawRoundRect(new RectF(-mCircleRadius - 10, -mCircleRadius, mCircleRadius + 10, mCircleRadius), 50, 50, mCirclePaint); } else if (numNotifications > 99 && numNotifications < 1000) { canvas.drawRoundRect(new RectF(-mCircleRadius - 20, -mCircleRadius, mCircleRadius + 20, mCircleRadius), 50, 50, mCirclePaint); } else { canvas.drawCircle(0, 0, mCircleRadius, mCirclePaint); } if (mDisplayCount && numNotifications > 0) { // Draw the numNotifications text mTextPaint.setColor(getCounterTextColor(Color.WHITE)); String text = String.valueOf(Math.min(numNotifications, MAX_COUNT)); mTextPaint.setTextSize(42f); mTextPaint.setTypeface(Typeface.DEFAULT_BOLD); String text = numToNotation(numNotifications); mTextPaint.getTextBounds(text, 0, text.length(), mTextRect); float x = (-mTextRect.width() / 2f - mTextRect.left) * getAdjustment(numNotifications); float y = mTextRect.height() / 2f - mTextRect.bottom; Loading @@ -161,6 +175,14 @@ public class DotRenderer { canvas.restore(); } private String numToNotation(int num) { if (num < 1000) { return String.valueOf(num); } else { return num / 1000 + "k"; } } /** * Returns the color to use for the counter text based on the dot's background color. * Loading