private void addButtons(final LinearLayout ll, CommandPlayer p) {
   addButton(ll, "New route was calculated (15350m)", builder(p).newRouteCalculated(15350));
   addButton(
       ll,
       "After 1050m turn slightly left",
       builder(p).turn(AbstractPrologCommandPlayer.A_LEFT_SL, 1050));
   addButton(ll, "Turn left", builder(p).turn(AbstractPrologCommandPlayer.A_LEFT));
   addButton(
       ll,
       "Prepare to turn right after 320m",
       builder(p).prepareTurn(AbstractPrologCommandPlayer.A_RIGHT, 320));
   addButton(
       ll,
       "After 370m turn sharply right",
       builder(p).turn(AbstractPrologCommandPlayer.A_RIGHT_SH, 370));
   addButton(
       ll,
       "Prepare to turn slighlty left after 850m then bear right",
       builder(p).prepareTurn(AbstractPrologCommandPlayer.A_LEFT_SL, 850).then().bearRight());
   addButton(
       ll,
       "Turn sharply right then bear left",
       builder(p).turn(AbstractPrologCommandPlayer.A_RIGHT_SH).then().bearLeft());
   addButton(ll, "Prepare to make a U-turn after 400m", builder(p).prepareMakeUT(400));
   addButton(ll, "After 640m make a U-turn", builder(p).makeUT(640));
   addButton(ll, "Make a U-turn", builder(p).makeUT());
   addButton(ll, "When possible, make a U-turn", builder(p).makeUTwp());
   addButton(ll, "Prepare to enter a roundabout after 750m", builder(p).prepareRoundAbout(750));
   addButton(
       ll,
       "After 450m enter the roundabout and take the 1st exit",
       builder(p).roundAbout(450, 0, 1));
   addButton(ll, "Roundabout: Take the 3rd exit", builder(p).roundAbout(0, 3));
   addButton(ll, "GPS signal lost", builder(p).gpsLocationLost());
   addButton(ll, "Route recalculated (23150m)", builder(p).routeRecalculated(23150));
   addButton(ll, "Continue straight ahead", builder(p).goAhead());
   addButton(ll, "Follow the road for 2350m", builder(p).goAhead(2350));
   addButton(
       ll,
       "Follow the road for 800m and arrive at destination",
       builder(p).goAhead(800).andArriveAtDestination());
   addButton(ll, "Arrive at destination", builder(p).arrivedAtDestination());
   ll.forceLayout();
 }
  private void addButtons(
      final LinearLayout ll,
      CommandPlayer p,
      final String osmandVoice,
      final String osmandVoiceLang) {
    addButton(ll, "       Route calculated and number tests:", builder(p));
    addButton(
        ll,
        "(1.1)  New route calculated, 150m, 230sec (00:03:50)",
        builder(p).newRouteCalculated(150, 230));
    addButton(
        ll,
        "(1.2)  New route calculated, 1350m, 3680sec (01:01:20)",
        builder(p).newRouteCalculated(1350, 3680));
    addButton(
        ll,
        "(1.3)  New route calculated 3700m, 7320sec (02:02)",
        builder(p).newRouteCalculated(3700, 7320));
    addButton(
        ll,
        "(1.4)  New route calculated 9100m, 10980sec (03:03)",
        builder(p).newRouteCalculated(9100, 10980));
    addButton(
        ll,
        "(2.1)  Route recalculated 11500m, 18600sec (05:10)",
        builder(p).routeRecalculated(11500, 18600));
    addButton(
        ll,
        "(2.2)  Route recalculated 19633m, 26700sec (07:25)",
        builder(p).routeRecalculated(19633, 26700));
    addButton(
        ll,
        "(2.3)  Route recalculated 89750m, 55800sec (15:30)",
        builder(p).routeRecalculated(89750, 55800));
    addButton(
        ll,
        "(2.4)  Route recalculated 125900m, 92700sec (25:45)",
        builder(p).routeRecalculated(125900, 92700));

    addButton(ll, "       All turn types: prepareTurn, makeTurnIn, turn:", builder(p));
    addButton(
        ll,
        "(3.1)  After 1520m turn slightly left",
        builder(p).prepareTurn(AbstractPrologCommandPlayer.A_LEFT_SL, 1520, street(p, "")));
    addButton(
        ll,
        "(3.2)  In 450m turn sharply left onto 'Hauptstra" + "\u00df" + "e', then bear right",
        builder(p)
            .turn(AbstractPrologCommandPlayer.A_LEFT_SH, 450, street(p, "Hauptstraße"))
            .then()
            .bearRight(street(p, "")));
    addButton(
        ll,
        "(3.3)  Turn left, then in 100m turn slightly right",
        builder(p)
            .turn(AbstractPrologCommandPlayer.A_LEFT, street(p, ""))
            .then()
            .turn(AbstractPrologCommandPlayer.A_RIGHT_SL, 100, street(p, "")));
    addButton(
        ll,
        "(3.4)  After 3100m turn right onto 'SR 80' toward 'Rome'",
        builder(p)
            .prepareTurn(
                AbstractPrologCommandPlayer.A_RIGHT, 3100, street(p, "", "SR 80", "Rome")));
    addButton(
        ll,
        "(3.5)  In 370m turn slightly right onto 'Route 23' 'Main Street', then bear left",
        builder(p)
            .turn(AbstractPrologCommandPlayer.A_RIGHT_SL, 370, street(p, "Main Street", "Route 23"))
            .then()
            .bearLeft(street(p, "")));
    addButton(
        ll,
        "(3.6)  Turn sharply right onto 'Main Street'",
        builder(p).turn(AbstractPrologCommandPlayer.A_RIGHT_SH, street(p, "Main Street")));

    addButton(ll, "       Keep left/right: prepareTurn, makeTurnIn, turn:", builder(p));
    addButton(
        ll,
        "(4.1)  After 1810m keep left ' '",
        builder(p).prepareTurn(AbstractPrologCommandPlayer.A_LEFT_KEEP, 1810, street(p, "")));
    addButton(
        ll,
        "(4.2)  In 400m keep left ' ' then in 80m keep right onto 'A1'",
        builder(p)
            .turn(AbstractPrologCommandPlayer.A_LEFT_KEEP, 400, street(p, ""))
            .then()
            .turn(AbstractPrologCommandPlayer.A_RIGHT_KEEP, 80, street(p, "", "A1")));
    addButton(
        ll,
        "(4.3)  Keep right on 'Highway 60'",
        builder(p)
            .turn(
                AbstractPrologCommandPlayer.A_RIGHT_KEEP,
                street(p, "Highway 60", "", "", "Highway 60")));
    addButton(
        ll,
        "(4.4)  Turn left onto 'Broadway', then in 100m keep right and arrive at your destination 'Town Hall'",
        builder(p)
            .turn(AbstractPrologCommandPlayer.A_LEFT, street(p, "Broadway"))
            .then()
            .turn(AbstractPrologCommandPlayer.A_RIGHT_KEEP, 100, street(p, ""))
            .andArriveAtDestination("Town Hall"));

    addButton(ll, "       Roundabouts: prepareTurn, makeTurnIn, turn:", builder(p));
    addButton(
        ll,
        "(5.1)  After 1250m enter a roundabout",
        builder(p).prepareRoundAbout(1250, 3, street(p, "", "I 15", "Los Angeles")));
    addButton(
        ll,
        "(5.2)  In 450m enter the roundabout and take the 1st exit onto 'I 15' toward 'Los Angeles'",
        builder(p).roundAbout(450, 0, 1, street(p, "", "I 15", "Los Angeles")));
    addButton(
        ll,
        "(5.3)  Roundabout: Take the 2nd exit onto 'Highway 60'",
        builder(p).roundAbout(0, 2, street(p, "Highway 60")));

    addButton(ll, "       U-turns: prepareTurn, makeTurnIn, turn, when possible:", builder(p));
    addButton(ll, "(6.1)  After 640m make a U-turn", builder(p).prepareMakeUT(640, street(p, "")));
    addButton(ll, "(6.2)  In 400m make a U-turn", builder(p).makeUT(400, street(p, "")));
    addButton(
        ll,
        "(6.3)  Make a U-turn on 'Riviera'",
        builder(p).makeUT(street(p, "Riviera", "", "", "Riviera")));
    addButton(ll, "(6.4)  When possible, make a U-turn", builder(p).makeUTwp());

    addButton(ll, "       Go straight, follow the road, approaching:", builder(p));
    addButton(ll, "(7.1)  Straight ahead", builder(p).goAhead());
    addButton(ll, "(7.2)  Continue for 2350m to ' '", builder(p).goAhead(2350, street(p, "")));
    addButton(
        ll,
        "(7.3)  Continue for 360m to 'Broadway' and arrive at your intermediate destination ' '",
        builder(p).goAhead(360, street(p, "Broadway")).andArriveAtIntermediatePoint(""));
    addButton(
        ll,
        "(7.4)  Continue for 800m to 'A33' and arrive at your destination ' '",
        builder(p).goAhead(800, street(p, "", "A33")).andArriveAtDestination(""));
    addButton(
        ll,
        "(7.5)  Continue for 200m and arrive at your GPX waypoint 'Trailhead'",
        builder(p).goAhead(200, null).andArriveAtWayPoint("Trailhead"));
    addButton(
        ll,
        "(7.6)  Continue for 400m and arrive at your favorite 'Brewery'",
        builder(p).goAhead(400, null).andArriveAtFavorite("Brewery"));
    addButton(
        ll,
        "(7.7)  Continue for 600m and arrive at your POI 'Museum'",
        builder(p).goAhead(600, null).andArriveAtPoi("Museum"));

    addButton(ll, "       Arriving and passing points:", builder(p));
    addButton(
        ll, "(8.1)  Arrive at your destination 'Home'", builder(p).arrivedAtDestination("Home"));
    addButton(
        ll,
        "(8.2)  Arrive at your intermediate destination 'Friend'",
        builder(p).arrivedAtIntermediatePoint("Friend"));
    addButton(
        ll, "(8.3)  Passing GPX waypoint 'Trailhead'", builder(p).arrivedAtWayPoint("Trailhead"));
    addButton(ll, "(8.4)  Passing favorite 'Brewery'", builder(p).arrivedAtFavorite("Brewery"));
    addButton(ll, "(8.5)  Passing POI 'Museum'", builder(p).arrivedAtPoi("Museum"));

    addButton(ll, "       Attention prompts:", builder(p));
    addButton(
        ll,
        "(9.1)  You are exceeding the speed limit '50' (18 m/s)",
        builder(p).speedAlarm(50, 18f));
    addButton(ll, "(9.2)  Attention, speed camera", builder(p).attention("SPEED_CAMERA"));
    addButton(ll, "(9.3)  Attention, border control", builder(p).attention("BORDER_CONTROL"));
    addButton(ll, "(9.4)  Attention, railroad crossing", builder(p).attention("RAILWAY"));
    addButton(ll, "(9.5)  Attention, traffic calming", builder(p).attention("TRAFFIC_CALMING"));
    addButton(ll, "(9.6)  Attention, toll booth", builder(p).attention("TOLL_BOOTH"));
    addButton(ll, "(9.7)  Attention, stop sign", builder(p).attention("STOP"));
    addButton(ll, "(9.8)  Attention, pedestrian crosswalk", builder(p).attention("PEDESTRIAN"));

    addButton(ll, "       Other prompts:", builder(p));
    addButton(ll, "(10.1) GPS signal lost", builder(p).gpsLocationLost());
    addButton(ll, "(10.2) GPS signal recovered", builder(p).gpsLocationRecover());
    addButton(ll, "(10.3) You have been off the route for 1050m", builder(p).offRoute(1050));
    addButton(ll, "(10.4) You are back on the route", builder(p).backOnRoute());

    addButton(ll, "       System checks:", builder(p));
    addButton(
        ll,
        "(11.1)\nDisplay BT SCO availability (Phone call audio only)",
        builder(p).attention(""));
    addButton(
        ll,
        "(11.2)\nTap to change Phone call audio delay (if car stereo cuts off prompts). Default is 1500 ms.",
        builder(p).attention(""));
    addButton(
        ll,
        "(11.3)\nOsmAnd voice: "
            + osmandVoice
            + "\nOsmAnd voice language: "
            + osmandVoiceLang
            + "\n\nTap to view system's language availability status and voice actually used",
        builder(p));
    ll.forceLayout();
  }