mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
[android] Show roundabout exit number in Android Auto
Signed-off-by: Charlie-83 <11279546+Charlie-83@users.noreply.github.com>
This commit is contained in:
committed by
jeanbaptisteC
parent
a57ac029a1
commit
19eeca80fc
@@ -1,5 +1,11 @@
|
|||||||
package app.organicmaps.car.util;
|
package app.organicmaps.car.util;
|
||||||
|
|
||||||
|
import android.graphics.Bitmap;
|
||||||
|
import android.graphics.BitmapFactory;
|
||||||
|
import android.graphics.Canvas;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.graphics.Paint;
|
||||||
|
import android.graphics.Rect;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.car.app.CarContext;
|
import androidx.car.app.CarContext;
|
||||||
import androidx.car.app.model.CarIcon;
|
import androidx.car.app.model.CarIcon;
|
||||||
@@ -74,7 +80,31 @@ public final class RoutingHelpers
|
|||||||
final Maneuver.Builder builder = new Maneuver.Builder(maneuverType);
|
final Maneuver.Builder builder = new Maneuver.Builder(maneuverType);
|
||||||
if (maneuverType == Maneuver.TYPE_ROUNDABOUT_ENTER_AND_EXIT_CCW)
|
if (maneuverType == Maneuver.TYPE_ROUNDABOUT_ENTER_AND_EXIT_CCW)
|
||||||
builder.setRoundaboutExitNumber(roundaboutExitNum > 0 ? roundaboutExitNum : 1);
|
builder.setRoundaboutExitNumber(roundaboutExitNum > 0 ? roundaboutExitNum : 1);
|
||||||
builder.setIcon(new CarIcon.Builder(IconCompat.createWithResource(context, carDirection.getTurnRes())).build());
|
builder.setIcon(new CarIcon.Builder(createManeuverIcon(context, carDirection, roundaboutExitNum)).build());
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
private static IconCompat createManeuverIcon(@NonNull final CarContext context, @NonNull CarDirection carDirection, int roundaboutExitNum)
|
||||||
|
{
|
||||||
|
if (!CarDirection.isRoundAbout(carDirection) || roundaboutExitNum == 0)
|
||||||
|
{
|
||||||
|
return IconCompat.createWithResource(context, carDirection.getTurnRes());
|
||||||
|
}
|
||||||
|
|
||||||
|
Bitmap original = BitmapFactory.decodeResource(context.getResources(), carDirection.getTurnRes());
|
||||||
|
Bitmap mutableBitmap = original.copy(Bitmap.Config.ARGB_8888, true);
|
||||||
|
Canvas canvas = new Canvas(mutableBitmap);
|
||||||
|
|
||||||
|
Paint paint = new Paint();
|
||||||
|
paint.setAntiAlias(true);
|
||||||
|
paint.setColor(Color.WHITE);
|
||||||
|
paint.setTextAlign(Paint.Align.CENTER);
|
||||||
|
paint.setFakeBoldText(true);
|
||||||
|
|
||||||
|
paint.setTextSize(27);
|
||||||
|
canvas.drawText(String.valueOf(roundaboutExitNum), 30, 43, paint);
|
||||||
|
|
||||||
|
return IconCompat.createWithBitmap(mutableBitmap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user